本篇文章是js基础练习题第二十二天的答案及解析部分,纯题目部分请移步js基础练习题 第22天
正文
1.[] == false = ___________,[1] == true = ___________,[1, 2] == true = ___________,[0] == false = ___________。
隐式类型转换,会将数组和布尔值分别转换为Number类型进行比较。Number([]) = 0,Number([1]) = 1,Number([1, 2]) = NaN。
2.
[] == [] = ___________,{} == {} = ___________,"" == "" = ___________。对于是引用类型的变量,其总是不相等的,如Array、Object、RegExp等。
3.
'2' + 3 = ___________,'2' - 3 = ___________。+用在字符串中,其为拼接操作,即将Number转为String。而-是纯粹的算术运算符,其会将String转为Number。
4.
1 + - + + + - + 1 = ___________,1+-+++-+1 = ___________。第一个表达式,按照从右向左的顺序计算即可,即1+(-(+(+(+(-(+1))))));第二个表达式,错误的地方在于类似于1++这样的操作,自增/自减运算符不能作用在非变量上。
5.
Number.MIN_VALUE > 0 = ___________,Number.NaN > 0 = ___________。Number.MIN_VALUE是最小的大于0的值,Number.MIN_VALUE = 5e-324,NaN是一个特殊的值,其与任何值都不相等。
6.
1 < 2 < 3 = ___________,3 < 2 < 1 = ___________。隐式转换,(1 < 2) < 3即true < 3即 1 < 3,返回true;(3 < 2) < 1即false < 3即 0 < 3,返回true。
7.
1 == [1] = ___________,2 == [[2]] = ___________,0 == [[[0]]] = ___________。隐式转换。
8.
6.toString() = ___________,6..toString() = ___________,.6.toString() = ___________。整数不能调用toString方法,而小数可以,不管它有没有省略小数的前置或后置0。
9.
/123/ == /123/ = ___________,/123/ === /123/ = ___________。任意两个正则表达式都是不相等的。
10.
[1, 5] > [5] = ___________,[5] == [5] = ___________。对于第一个表达式,相当于[1, 5].join("") > [5].join("")即"15" > "5",由于采用的Unicode编码,故返回false。
11.
{}.prototype == Object.prototype = ___________,Object.getPrototypeOf({}) == Object.prototype = ___________。只有function具有prototype属性。
12.
1 | function f() {} |
a == b = ___________。Object.getPrototypeOf(f) = Function.prototype。
说明
题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
答案中,若有错误和需完善的地方,可在下方留言反馈哈~~
查看纯习题版,请点击js基础练习题 第22天
本文的大部分题目原型取自于JavaScript Puzzlers!。大家可前往查看原题,并且还可以在线做题,查看自己的完成情况。

