记录一:变量的作用域:变量的作用域由函数限定,要么是全局的,要么是局部的。全局的变量处处都可以访问,局部变量只有在声明他的地方才可以访问。如果在函数中声明的局部变量忘记了些var关键字,那么就创建了全局变量。(使用严格模式,是否会报错?)
记录二:变量提升:当变量被声明时,声明会被提升到它所在函数的顶部,并被赋予undefined值。查找变量的过程:JavaScript引擎首先在局部作用域内检查变量是否被声明,如果没有在局部作用域内声明,那么久检查全局作用域,找到它的定义并返回它的值。如何理解下面的代码?
var s='asdfasdf'; function test(){console.log(s);var s;} test();//undefined记录三:执行环境和执行环境对象(看了好几遍,始终不明白。。。)
记录四:作用域链:
记录五:原型链:(_proto_、_proto_._proto_是什么鬼?)
记录六:匿名函数、自执行匿名函数
记录七:闭包