函数作用域和块级作用域

198 阅读1分钟

函数作用域:

函数中的变量可以在函数内部使用;

隐藏内部实现

作用:
    规避冲突:避免同名标识符之间的冲突;
    模块管理;
    

区分函数申明和表达式:如果function是声明中第一个词,则是函数声明,否则是函数表达式;

函数声明:function (){....}

函数表达式:(function() {....}) / setTimeout(function() {}, 1000)

函数表达式可以匿名,函数声明不可以匿名;

块级作用域

变量的申明应该距离使用的地法越近越好,最大限度本地化,避免造成全局污染;比如for 循环;

块级作用域内容

with;
try/catch: es3开始
let: 
    es6新内容;
    将变量绑定在任意作用域中;
    不会声明提升;
    有利于垃圾回收;
const:
    创建常量;