今日面试三题
1.以下输出结果为true的有
A.' ' == false
B.' '== 0
C.' ' == []
D.' ' == {}
正确答案:A,B,C
解析:JS在做==运算时会将操作数转换为Number类型之后再操作,而 ’ ',false,0,[]都能转换为为数字类型0,而{}却转换不了,转换后为NaN,而NaN做任何运算返回都是false
2.以下运算结果不是number类型的是
A."a"-1
B.1/0
C.0 && "a"
D.new Number(1)
正确答案:D
解析:
以下为运行情况:
var a = ‘a’-1;
console.log(a,typeof a); //NaN “number”
var b = 1/0;
console.log(b,typeof b); //Infinity “number”
var c = 0 && ‘a’;
console.log(c,typeof c); //0 “number”
var d =new Number(1);
console.log(d,typeof d); //Number {[[PrimitiveValue]]: 1} “object”
五种简单数据类型为:Undefined/Null/Boolean/Number/String;
一种复杂数据类型为:Object。
其中Number数据类型除了包含普通的数值外,还包含超出范围的值Infinity和非数值NaN。
A. ‘a’-1 为NaN;
B. 1/0 为Infinity, 0/0返回NaN, 正数/0返回Infinity,负数/0返回-Infinity;
C. 0 && “a" 为0,&&为短路操作,且如果有一个操作数不是布尔值,则结果就不一定返回布尔值。 a && b,如果a能转换成false,则返回a。
D. new Number(1) 为基本包装类型的对象。
故答案为D。
3.在javascript里,下列选项中不属于数组方法的是
A.length()
B.sort()
C.concat()
D.reverse()
正确答案:A
解析:
length //是获取数组元素个数的属性
concat() //连接两个或者更多的数组,并返回结果
sort() //对数组元素进行排序
reverse() //对数组进行颠倒元素顺序