代码片段1:
check('first');
function check(ars){
console.log(ars);
}
代码片段2:
check('second');
var check= function(ars){
console.log(ars);
}
以上两段代码分别执行的结果是()
first, second
Uncaught ReferenceError, Uncaught ReferenceError
Uncaught ReferenceError, second
first, Uncaught ReferenceError
check('first'); function check(ars){ console.log(ars); }这里使用的是函数声明,函数声明有提升现象,实际代码执行顺序如下:
function check(ars){ console.log(ars); } check('first');
check('second'); var check= function(ars){ console.log(ars); }这里使用的是函数表达式,函数表达式不会提升,实际代码执行顺序如下:
var check; check('second'); check= function(ars){ console.log(ars); }在未给check赋值的情况下调用,所以报错