We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
作用域简单来说是一套规则,给编译器和引擎进行变量查找是运行用的。作用域一般来说有全局作用域(全局对象)和局部作用域(函数),局部的分阶段(函数内部大括号包围if for等语法执行的阶段)。
阶段历程:es3之前只有函数作用域,es3到es5出现了块作用域但是只出现在try{}catch{}的catch中,但是存在if for循环及代码块中var变量定义的变量能在外部访问的问题,所以在es6中let、const定义的变量在代码块中有块级作用域。项目中es6语法代码往前编译兼容浏览器es5语法,如果再往前转比如es3前就会看到let转var的时候比如if块就被转为try{}catch{}
es3
es5
es6
let
const
更详细说发mqyqingfeng/Blog#6
JavaScript为了简化a !=null || a != undefined这种写法,没有值检测
let a = { obj : 1} a.child = a = 1
代码从右往左复制先是a = 1最后a.child = 1 如下图1.child不报错,为undefined,可以访问Number原型链的属性
结论:在严格模式下给数字挂属性赋值报错,在宽松模式下给数字挂属性赋值不处理,给数字挂一个不存在的属性访问值为undefined,因为会访问Number.prototype
为什么在react自定义严格模式不报错 解:react为了程序性能最优(页面不崩变空白),把自定义的严格模式给去除了
The text was updated successfully, but these errors were encountered:
No branches or pull requests
JSON序列化注意事项
什么是作用域
作用域简单来说是一套规则,给编译器和引擎进行变量查找是运行用的。作用域一般来说有全局作用域(全局对象)和局部作用域(函数),局部的分阶段(函数内部大括号包围if for等语法执行的阶段)。
阶段历程:
es3
之前只有函数作用域,es3
到es5
出现了块作用域但是只出现在try{}catch{}的catch中,但是存在if for循环及代码块中var变量定义的变量能在外部访问的问题,所以在es6
中let
、const
定义的变量在代码块中有块级作用域。项目中es6
语法代码往前编译兼容浏览器es5
语法,如果再往前转比如es3
前就会看到let转var的时候比如if块就被转为try{}catch{}为什么undefined== null 为true,与空字符串对比为false
JavaScript为了简化a !=null || a != undefined这种写法,没有值检测
一道代码题引发的思考
代码从右往左复制先是a = 1最后a.child = 1
如下图1.child不报错,为undefined,可以访问Number原型链的属性
结论:在严格模式下给数字挂属性赋值报错,在宽松模式下给数字挂属性赋值不处理,给数字挂一个不存在的属性访问值为undefined,因为会访问Number.prototype
垃圾回收机制(待补充)
The text was updated successfully, but these errors were encountered: