JavaScript中声明变量时 带var和不带var的区别
2017-03-23 17:09
579 查看
Javascript声明变量时
var aaa = 111;
和
aaa = 111;
两种方式一样吗?
废话少说,先上代码.
1. 使用var定义
结果是什么呢? 11
这个好理解, 函数内的var aaa声明是内部变量,这时结果是第一个aaa的值.
2. 不使用var定义
变动一下如下:
结果是什么呢? 22
再改:
结果怎样? 运行报错了! ReferenceError: aaa is not defined!
改:
运行不会报错,输出结果是 undefined.
结论1: 函数或者对象构造内声明的变量是私有的. 外部无法访问到. 包括原型继承后的对象.
可是如果这样:
结果是 33
点解?
这就是有var 和没有 var的声明的区别.
结论2: 不加var 在函数或者构造内就是赋值, 从函数内往上一层层寻找变量bbb,一直到顶层没有. 就在顶层声明一个 var bbb;
很可怕假如一个大的项目,在这里改变了bbb的值, 并没有添加var 碰巧整个项目全局变量有个同名bbb被改变,不加var不是只作用在这个函数或对象内. 出了错误很难找.
所以书写代码必须谨慎. 声明变量改加的就加不能怕麻烦. 结果是完全不同的.
本文转载:http://www.cnblogs.com/vincent2d/p/4886920.html
var aaa = 111;
和
aaa = 111;
两种方式一样吗?
废话少说,先上代码.
1. 使用var定义
var aaa = 11; function test4(){ var aaa = 22; console.log(aaa); } test4(); //22 console.log(aaa); //11
结果是什么呢? 11
这个好理解, 函数内的var aaa声明是内部变量,这时结果是第一个aaa的值.
2. 不使用var定义
变动一下如下:
var abc = 11; function test4(){ abc = 22; console.log(abc); } test4(); //22 console.log(abc); //22,注意这里
结果是什么呢? 22
再改:
function test4(){ var aaa = 22; } test4(); console.log(aaa); //aaa is not defined
结果怎样? 运行报错了! ReferenceError: aaa is not defined!
改:
function test4(){ var aaa = 22; } test4(); console.log(test4.aaa); //undefined
运行不会报错,输出结果是 undefined.
结论1: 函数或者对象构造内声明的变量是私有的. 外部无法访问到. 包括原型继承后的对象.
可是如果这样:
function test4(){ bbb = 33; } test4(); console.log(bbb); //33
结果是 33
点解?
这就是有var 和没有 var的声明的区别.
结论2: 不加var 在函数或者构造内就是赋值, 从函数内往上一层层寻找变量bbb,一直到顶层没有. 就在顶层声明一个 var bbb;
很可怕假如一个大的项目,在这里改变了bbb的值, 并没有添加var 碰巧整个项目全局变量有个同名bbb被改变,不加var不是只作用在这个函数或对象内. 出了错误很难找.
所以书写代码必须谨慎. 声明变量改加的就加不能怕麻烦. 结果是完全不同的.
本文转载:http://www.cnblogs.com/vincent2d/p/4886920.html
相关文章推荐
- JavaScript中变量声明有var和没var的区别示例介绍
- javascript 变量声明有var与无var 的区别
- JavaScript中变量声明有var和没var的区别示例介绍
- JavaScript_var和不用var声明变量的区别
- JavaScript中变量声明有var和没var的区别
- 浅谈 JavaScript 中定义变量时有无 var 声明的区别
- JavaScript 中定义变量时有无var声明的区别
- 浅谈JavaScript中定义变量时有无var声明的区别
- JavaScript中变量声明有var和没var的区别示例介绍
- JavaScript中变量声明有var和没var的区别
- javascript中的var定义的变量和没有var定义变量的区别
- javascript定义变量时,有var和没有var的区别
- javascript声明变量var和this的总结
- JavaScript中声明变量有无var
- JavaScript声明变量时为什么要加var关键字
- 关于JavaScript中var声明变量作用域的推断
- 关于JavaScript中var声明变量作用域的推断
- JavaScript声明变量时为什么要加var关键字
- Javascript变量声明:var语句
- 为什么JavaScript声明变量的时候鼓励加var关键字