码迷,mamicode.com
首页 > 其他好文 > 详细

2、变量var关键字

时间:2016-05-03 00:18:58      阅读:181      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!