`
lib
  • 浏览: 135634 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JavaScript的作用域(学习笔记二)

阅读更多

看看下面代码的执行结果:

 

<script>
	alert(a);
	a = "hello";

	alert(b);
	var b = "hello";
</script>

 答案如下:

 

  1.  alert(a)执行时报脚本错误:“a”未定义
  2.  alert(b)打印出:undefined

让我们来分析一下。

1、首先从alert(b)开始分析。本着JavaScript“先定义,后赋值”的原则,代码片段(1)

 

alert(b);
var b = "hello";

 在编译的时候,其实是按照下面的方式进行编译的:

 

var b;
alert(b);
b = "hello";

 JavaScript在编译的时候,凡是遇到var关键字的,都会在变量所处作用域内的最顶端先声明这个变量。这样,就很好理解为什么alert(b)的时候是undefined了。

 

2、接着在分析alert(a)。大家都知道,在JavaScript中,如果直接给一个从未声明过的变量赋值,那么,这个变量就会默认为是全局变量。既然是全局变量,为什么alert(a)的时候,会有错误?应该和alert(b)一样,打印出undefined啊?其实不然。因为 a = “hello”,前面没有var关键字,所以,在编译的时候,js编译器不认为这条语句有什么特殊性,就是一条普通的语句。说到这里,大家会明白,只有执行到 a = "hello"这一行时,js才会声明一个变量a,并给变量a赋值,在这之前,根本就没有a这个变量,先前的alert(a)肯定会报错的。

 

 

分享到:
评论

相关推荐

    javascript入门学习笔记

    理解闭包和作用域对于掌握JavaScript的高级特性至关重要。 三、DOM操作 在Web开发中,JavaScript常用于操作文档对象模型(DOM),通过DOM可以改变HTML元素的样式、内容或位置。熟悉DOM API,如getElementById、...

    JavaScript-学习笔记.pdf

    以上是JavaScript学习笔记中提到的一些核心知识点,通过对这些知识点的理解和熟练应用,可以为进一步学习和掌握JavaScript打下坚实的基础。在实际开发过程中,结合具体的项目需求,这些知识会得到更深入的拓展和应用...

    JavaScript 入门 新手学习笔记

    这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...

    JavaScript练习程序学习笔记.rar

    此外,还需了解函数表达式(匿名函数、箭头函数)和作用域(全局作用域、局部作用域、闭包)的概念。 在JavaScript中,对象是核心概念之一。它们由键值对组成,可以用来表示复杂的数据结构。原型和原型链是...

    js 笔记 javascript 学习笔记

    本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...

    javascript学习笔记整理知识点整理

    这份“javascript学习笔记整理知识点整理”是针对初学者的一份宝贵资料,涵盖了JavaScript的基础知识,旨在帮助新手快速入门并掌握这门语言的核心概念。 一、变量与数据类型 在JavaScript中,变量用于存储数据。...

    JavaScript学习笔记

    本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...

    javascript学习资料 + 笔记

    接着,深入学习JavaScript的对象和作用域。对象是JavaScript的核心特性,用于存储和组织数据,可以创建包含属性和方法的对象。作用域决定了变量在何处可以被访问,包括全局作用域、局部作用域以及ES6引入的块级作用...

    javascript学习笔记发放2

    在这篇学习笔记中,我们将深入探讨JavaScript中的数据操作和函数作用域。 首先,我们要明白JavaScript中的数据类型分为基本数据类型(如Number、String、Boolean、Null、Undefined和Symbol)和对象数据类型(如...

    Javascript学习笔记(传智播客视频学习笔记+代码)

    "Javascript学习笔记(传智播客视频学习笔记+代码)"是一份全面介绍JavaScript基础知识的学习资源,适用于初学者。这份笔记结合了传智播客的web前端培训视频内容,提供了丰富的理论讲解和实践代码,帮助读者从零开始...

    JavaScript-学习笔记.docx

    这篇学习笔记主要涉及了JavaScript的基础概念和一些高级特性,包括预编译、作用域、函数、对象原型、原型链、函数调用方式(如call、apply)、继承模式、对象克隆、数组操作、自定义类型判断以及错误处理机制。...

    javascript高级编程(学习笔记 包括 1 , 2 版)

    JavaScript 高级编程的学习笔记涵盖了ECMAScript中的基础概念,特别是关于变量、数据类型和运算符的使用。在ECMAScript中,变量可以存储两种基本类型的值:原始值(Primitive Values)和引用值(Reference Values)...

    JavaScript基础教程笔记

    ### JavaScript基础教程笔记知识点 #### 一、JavaScript简介 - **定义**:JavaScript是一种轻量级的编程语言,主要用于Web浏览器中的网页交互控制。 - **发展历史**:1995年由Netscape公司的Brendan Eich设计并...

    Javascript学习笔记

    #### 三、JavaScript作用域篇 作用域决定了变量的可见性和生命周期,JavaScript的作用域分为全局作用域和局部作用域。 ##### **1. 全局环境** 在浏览器环境中,全局作用域通常指的就是`window`对象。所有未被显式...

    前端JavaScript基础学习笔记案例

    个人在学习前端JavaScript时的学习笔记,内含JavaScript的中基础知识点,以及案例。里面有兼容市面上浏览器的方法 1.知识点包括:基础语法,字符串操作,object对象,DOM对象,BOM对象,offset,client,scroll对象...

    javascript面向对象学习笔记

    为了解决重复创建方法的问题,可以将方法移出构造函数,放到全局作用域,如`sayName`函数。这样虽然避免了重复创建,但全局函数失去了通用性,只能由对象调用,且不适用于有多个方法的情况。 接下来是原型模式,这...

    javascript权威指南 学习笔记之变量作用域分享

    在《JavaScript权威指南》第五版中,对变量作用域进行了深入的介绍,通过对作者的学习笔记梳理,我们可以系统地了解变量作用域相关的知识点。 首先,我们需要明确变量作用域的两个基本类型:全局作用域和局部作用域...

Global site tag (gtag.js) - Google Analytics