每日一题 2020-11-22
以下函数内部会打印出什么?
function test () {
console.log(a);
console.log(b);
console.log(c);
console.log(d);
if (false) {
var c = function () {};
var a = 10;
}
if (true) {
var d = function () {};
var b = 20;
}
console.log(a);
console.log(b);
console.log(c);
console.log(d);
}
test()
答案: undefined undefined undefined undefined undefined 20 undefined function (){}
解析:
函数执行前会先寻找 变量申明和函数申明 并对其进行提升到函数顶部(仅限使用 var 申明)
false 不会执行,所以 ac 还是为 undefined
function test () {
var c = undefined
var a = undefined
var d = undefined
var b = undefined
console.log(a);
console.log(b);
console.log(c);
console.log(d);
if (false) {
c = function () {};
a = 10;
}
if (true) {
d = function () {};
b = 20;
}
console.log(a);
console.log(b);
console.log(c);
console.log(d);
}
test()
注: JS中一定为假的值有且仅有如下
- undefined
- null
- ''
- 0 ( +0 || -0 )
- false
- NaN

浙公网安备 33010602011771号