第一点,一句话走遍天下。
JavaScript中无块级作用域。
在Java等语言中存在块级作用域。即:大括号也是一个作用域。
补充:ES6中新增了let关键字,用于指定变量属于块级作用域。
第二点。
JavaScript采用函数作用域。
在JavaScript中每个函数作为一个作用域,在外部无法访问内部作用域中的变量。
第三点。
JavaScript作用域链。
由于JavaScript中的每个函数作为一个作用域,如果出现函数嵌套函数,则就会出现作用域链。
第四点。
JavaScript的作用域链执行之前已经创建。
JavaScript的作用域链在执行之前已经被创建,以后再执行的时候只需要按照作用域链去寻找即可。
第五点。
声明提前。
在JavaScript中如果不创建变量,直接去引用,则报错。在JavaScript中如果创建变量而不赋值,则该值为undefined。
本人实在是懒,有空补充下代码示范。其实我觉得写太多大家真的不愿意看啊,这样子也是很好的嘛~
谢谢你看了我,喵~
网友评论