- 声明提前
变量在声明之前已经可以使用了 - js中的所有的变量声明都提升到函数体内的顶部 ,如下图
实际运行的情况是如下
function f1() {
-- var scope ;console.log(scope) ;
var scope = 'local' ;
console.log(scope)
}
f1();
备注:
声明提前了,而赋值语句没有改变位置
由于第一个变量scope在函数中第一次使用之前已经声明了,所以可以使用,
但是由于没有赋值,所以打印出来的值为undefined - 函数的两种创建方式
函数声明语法
js中的函数声明提升到外部脚本,或外部作用域的顶部
所以上面的代码类型于
function f1(name) {
console.log(name );
}
f1('name') ;
备注
相当于将函数定义提前了
函数表达式创建法
如下图
相当于
var f2 ;
f2('name') ;
f2 = function(name) {
console.log('什么节能快要到了!') ;
}
变量声明提前了,赋值语句没有变位置,因为函数没有定义,所以报错
2018-03-30 21:12:30