以下代码相当于var a = b = 3;
var a; b = 3; a = b;
var a = (b = 3)
关于自增运算符
- 正确的是
-
a++
是一个表达式,表达式的值就是 a 原始的值, 之后 a 本身在自增1 -
b = a++
相当于b = a; a++
-
b = ++a
相当于b = (a = a+1)
- 错误的是
-
b = a++
相当于a = a + 1; b = a;
用三元运算符改写以下代码
if (a > 10) {
b = a
} else {
b = a - 2
}
b= a > 10 ? a : a - 2
以下代码输出什么?
var d = (a = 3, b = 4)
console.log(d)
- 4
以下代码输出什么?
var d = a = 3, b = 4
console.log(d)
- 3
以下代码输出什么?
var a = typeof 3 + 4
console.log(a)
- number4
以下代码输出什么?
var a = typeof typeof 4+4
console.log(a)
- string4
NaN是什么? 有什么特别之处?
- 全局属性 NaN 的值表示不是一个数字(Not-A-Number)
- 作用
- 等号运算符
(== 和 ===)
不能被用来判断一个值是否是NaN
。必须使用Number.isNaN()
或isNaN()
函数。在执行自比较之中:NaN
,也只有NaN
,比较之中不等于它自己。
- 案例
-
NaN === NaN;
// false -
Number.NaN === NaN;
// false -
isNaN(NaN);
// true -
isNaN(Number.NaN)
; // true
function valueIsNaN(v) { return v !== v; }
valueIsNaN(1); // false
valueIsNaN(NaN); // true
valueIsNaN(Number.NaN); // true
==
与===
有什么区别?
-
===
严格相等,会比较两个值的类型和值 -
==
抽象相等,比较时,会先进行类型转换,然后再比较值
以下代码的输出结果是?为什么?
console.log(1+1);
console.log("2"+"4");
console.log(2+"4");
console.log(+"4");
-
console.log(1+1);
输出2 Number + Number -> 数字相加 -
console.log("2"+"4");
输出24 // String + String -> 字符串连接 -
console.log(2+"4");
输出24 // Number + String -> 字符串连接 -
console.log(+"4");
输出4 -
一元正号运算符位于其操作数前面,计算其操作数的数值,如果操作数不是一个数值,会尝试将其转换成一个数值。 尽管一元负号也能转换非数值类型,但是一元正号是转换其他对象到数值的最快方法,也是最推荐的做法,因为它不会对数值执行任何多余操作。它可以将字符串转换成整数和浮点数形式,也可以转换非字符串值 true,false 和 null。小数和十六进制格式字符串也可以转换成数值。负数形式字符串也可以转换成数值(对于十六进制不适用)。如果它不能解析一个值,则计算结果为 NaN.
1.jpg
以下代码输出什么?
var a = 1;
a+++a;
typeof a+2;
-
a+++a
输出3 -
typeof a+2
输出number2
网友评论