首页 > 其他 > 详细

2、变量var关键字

时间:2016-05-03 00:16:18      阅读:148      评论:0      收藏:0      [点我收藏+]

我们在看js声明变量的时候,经常会发现有的变量前会带var 但又的则没有,那么这究竟有什么区别呢?

如果这种情况发生在函数里的话, 加var定义的变量是局部变量,不加var定义的就成了全局变量。

//使用var
 var y="dsh";
 function test(){
      var y="wx";
 }
 test();
 console.log(y);

[Web浏览器] "dsh"

 

//不使用var
 var y="dsh";
 function test(){
     y="wx";
 }
 test();
 console.log(y);

[Web浏览器] "wx"

 

在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.
这也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量不可以。

var x="dsh";
      y="wx";
delete x;
delete y;
console.log(x);
console.log(y);

[Web浏览器] "dsh"
[Web浏览器] "Uncaught ReferenceError: y is not defined"

 

使用var 定义变量还会提升变量声明,但不用var的变量则不会

console.log(x);//提升变量x为undefined
console.log(y);//不提升,y没有定义过。y is not defined
var x="dsh";
    y="wx";

[Web浏览器] "undefined" 
[Web浏览器] "Uncaught ReferenceError: y is not defined"

 

在ES5的‘use strict‘模式下,如果变量没有使用var定义,就会报错。

2、变量var关键字

原文:http://www.cnblogs.com/flyings/p/5453459.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!