TOP

全局、局部变量

  一直以来这个概念混沌不清,时而以为{}中的都是局部,时而以为{}不能限制变量范围;

  在JavaScript语法中,出现{}的语句情况如下:

//空块作用域
{}

//条件语句
if(){} else{}
switch(){}
while(){}

//循环
for(){}

//对象 
var obj = {}; 

//函数 
funciton fun(){}

  只有在函数中声明的变量才是局部变量,在其他块作用域中声明的都是全局变量(ES5语法 var)

{
    var one = "空 作用域块";
}

if([]){
    var two = "if 作用域块";
}

function fun(){
    var three = "函数 作用域块";
}

console.log(one) 
console.log(two)
console.log(three) //报错,变量为定义

  在ES6 中可以通过 let 在任意块作用域中声明局部变量;

  let 使得{}具有了真正的块作用域的效果;

{
    let two ="two"
}

 console.log(two)
//输出结果
VM610:1 Uncaught ReferenceError: two is not defined

 

posted @ 2016-08-28 00:31  RocketV2  阅读(145)  评论(0)    收藏  举报