// 挑战一
var x = 1;
//单独声明的时候,f的类型是function,作为if判断的时候,未得到声明,所以是undefined
if (!!function f() {
}) {
x += typeof f;
}
console.log(x); // "1undefined"
// 挑战二
(function f(f) {
console.log(typeof f()); // "number"
})(function () {
return 1;
});
// 挑战三
console.log(typeof 2 * 3); // NaN,对于运算结果不能转换成数字的,将返回 NaN
console.log(typeof 2 + 3); // "number3",数字字符串之前存在数字中的正负号(+/-)时,会被转换成数字
// 挑战四
var a = 0, b = 0;
console.log(a++ + b); // 0 一元运算符++优先级高于+
console.log(a); // 1
console.log(b); // 0
// 挑战五
var a, b, c;
a = b == c;
console.log(a); // false
// 挑战六
console.log(1 && 3); // 3
console.log(1 && "foo" || 0); // "foo"
console.log(1 || "foo" && 0); // 1
// 挑战七
var a = 1;
var b = (a = (2, 4, 6)) + a++
console.log(b); // 12 b=(6)+a++ ==12
// 挑战八
if (!("a" in window)) {
var a = 1;
}
console.log(a); // undefined,因为!结果为false,所以不会执行赋值语句,alert(a) 返回 undefined
// 挑战九
var val = 'smtg';
console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing'); // "Something"
// 挑战十
console.log(1 + -+++-+1); // 2,1+(-(+(+(+(-(+1))))))这样注释对吗?第二题和第六题如何解释?
添加回答
举报
0/150
提交
取消