JavaScript变量
一、相关概念
- JavaScript的变量是松散类型的(可以用来保存任何类型的数据)
- 每个变量仅仅是一个用于保存值的占位符
二、如何声明变量
- 定义变量:
var 变量名;
- eg:
var message;
(定义一个名为message
的变量,该变量可以用来保存任何值。像这样未初始化的变量,会保存一个特殊的值undefined
)
三、变量的作用域
- 用var定义的变量将成为定义该变量的作用域中的局部变量
- 如果在函数中用
var
定义一个变量,那么这个变量在函数退出中就会被销毁 - 可以省略var操作符,从而可以创建一个全局变量
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15function test(){ var message="hi";//局部变量 } test(); alert(message);//错误! /*变量message是在函数中使用var定义的。当函数被调用时,就会创建该变量并未其赋值。而在此之后,这个变量会被立即销毁,因此在例中的下一行代码中就会导致错误*/ function test(){ message="hi";//全局变量 } test(); alert(message);//"hi" /*省略了var操作符,因而message就成了全局变量。调用一次test()函数后,这个变量就有了定义,之后就可以在函数外部的任何地方被访问到*/
四、全局变量和局部变量
- 定义:在函数外声明的变量都为全局变量,在函数内声明的为局部变量
- 局部变量和全局变量重名会覆盖全局变量
复制代码
1
2
3
4
5
6
7var a = 1; function test1() { var a = 2; alert(a); } test1();// 2
复制代码
1
2
3
4
5
6
7
8
9
10var a = 1; function test1() { var a;//局部变量与全局变量重名时会覆盖全局变量,此时的a只有声明却未定义 alert(a);//所以执行alert值为undefined a = 2; alert(a); } test1(); alert(a);//undefined 2 1
五、闭包
- 定义:闭包就是函数中嵌套一个内部函数,而这个内部函数可以引用外部函数的参数和变量,这些被内部函数引用的外部函数的参数和变量不会被垃圾回收机制所回收
复制代码
1
2
3
4
5
6
7
8
9
10
11
12function aaa(){ var a = 1; return function(){ a++; console.log(a); }; } var b = aaa(); b(); // 2 b(); // 3 /*第一次调用结束后,垃圾回收机制并没有对参数进行回收,该参数在调用结束后仍然停留在内存中,因此在第二次调用的时候直接在第一次调用的基础上对变量a进行累加*/
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23var aaa = (function(){ var b = 1; var c = 2; function bbb(){ b++; console.log(b); } function ccc(){ c+=2; console.log(c); } return { bb: bbb, cc: ccc }; })(); aaa.bb(); //2 aaa.bb(); //3 aaa.cc(); //4 aaa.cc(); //6
源于整理《JavaScript高级程序设计》
最后
以上就是从容期待最近收集整理的关于JavaScript变量的全部内容,更多相关JavaScript变量内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复