函数作用域:
函数中的变量可以在函数内部使用;
隐藏内部实现
作用:
规避冲突:避免同名标识符之间的冲突;
模块管理;
区分函数申明和表达式:如果function是声明中第一个词,则是函数声明,否则是函数表达式;
函数声明:function (){....}
函数表达式:(function() {....}) / setTimeout(function() {}, 1000)
函数表达式可以匿名,函数声明不可以匿名;
块级作用域
变量的申明应该距离使用的地法越近越好,最大限度本地化,避免造成全局污染;比如for 循环;
块级作用域内容
with;
try/catch: es3开始
let:
es6新内容;
将变量绑定在任意作用域中;
不会声明提升;
有利于垃圾回收;
const:
创建常量;