javascript表达式和运算符的问题

// 挑战一
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))))))

这样注释对吗?第二题和第六题如何解释?

fancyL
浏览 1769回答 3
3回答

林逸舟丶

详解请看之前给你的回答。别随意开新题目。

chwech

只做对3题, 宝宝不开心. 还有第5题为什么不是true ?

QQ_随意

第二題函數返回值是1,所以typeof 是 number第六題,&&遇到假的就返回,||遇到真的就返回
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript