学习nodeJs
参考:从浏览器到js到nodejs
你真的知道js的语法吗
作用域问题先看这段代码
1234567{ a = 1; function a() { }; a = 2; console.log(a); // 输出:2}console.log(a); // 输出:1
是不是很不解???常规思路都是输出2啊。没关系,在了解了JS块级作用域之后你就懂了
全局作用域和functionwindow为全局对象,在任何一个地方,如果一个变量a = 1(没有任何修饰,如var、let、const),那么也可以理解为window.a = 1var声明的变量的作用域在funtion中,否则在上层的function,若上层没有function,那么就会延伸到window中
eval('代码作用域'):默认eval执行的代码作用域同上。但是如果在eval之前开启严格模式use strict;那么eval里面的变量不会外溢。除非显示给外部对象赋值,如eval('window.bbb=48')
在Ecma5之前只有函数和全局作用域,也就是全局window或者f ...