· 6·
C、报错
D、其它
答案:A。
解释:Array.prototype 是一个 Array,附带了很多属性,Chrome打印结果如图(题1-1):
题1-1 Chrome打印Array.prototype部分截图
14,
以下表达式的运行结果是什么?
var a = [0]; if ([0]) {
console.log(a == true); } else {
console.log(\}
A、true B、false C、”wut” D、其它
答案:B。
解释:[0] 被认为是真的,但跟 true 又不等同
15,
以下表达式的运行结果是什么?
[]==[]
A、true B、false C、报错 D、其它
答案:B。
解释:“==“很有趣吧,如果两边同为对象,但是引用指向不同,故为”false“
16,
以下表达式的运行结果是什么?
·7·
'5' + 3 '5' - 3
A、”53”, 2 B、8, 2 C、报错 D、其它
答案:A。
解释:“Strings”知道怎么用”+“, 但是遇到”-“就会会被转化为数字
17,
以下表达式的运行结果是什么?
1 + - + + + - + 1
A、2 B、1 C、报错 D、其它
答案:A。 解释:有趣的特性
18,
以下表达式的运行结果是什么?
var ary = Array(3); ary[0]=2
ary.map(function(elem) { return '1'; });
A、[2, 1, 1]
B、[“1”, “1”, “1”] C、[2, “1”, “1”] D、其它
答案:D。
解释:结果是[\因为map 只能被初始化过的数组成员调用
19,
以下表达式的运行结果是什么?
function sidEffecting(ary) { ary[0] = ary[2]; }
function bar(a,b,c) { c = 10
sidEffecting(arguments); return a + b + c;
· 8·
}
bar(1,1,1)
A、3 B、12 C、报错 D、其它
答案:D。
解释:结果是 21, 在javascript中变量中 arguments 是个对象,所以arguments 和局部变量所引用的内容是一样的
20,
以下表达式的运行结果是什么?
var a = 111111111111111110000, b = 1111; a + b;
A、111111111111111111111 B、111111111111111110000 C、NaN D、Infinity
答案:B。
解释:不精确的JavaScript数字即会影响小数,也会影响大数
21,
以下表达式的运行结果是什么?
var x = [].reverse; x();
A、[]
B、undefined C、报错 D、window
答案:D。
解释: reverse函数有一个显式的接收者作为this, 函数返回这个this, 此处x的this是window, 全局对象
22,
以下表达式的运行结果是什么?
Number.MIN_VALUE > 0
A、false B、true C、报错
D、其它
答案:B。
解释: Number.MIN_VALUE是能表示的最小的大于0的值
·9·
23,
以下表达式的运行结果是什么?
[1 < 2 < 3, 3 < 2 < 1]
A、[true, true] B、[true, false] C、报错 D、其它
答案:A。
解释: 考隐式转换,我的理解1<2为true转换为1比较1<3肯定为true;3<2为false转换为0比较0<1为true
24,
以下表达式的运行结果是什么?
// the most classic wtf 2 == [[[2]]]
A、true B、false
C、undefined D、其它
答案:A。
解释:每一个对象都被转换成了string,最终成了 \
25,
以下表达式的运行结果是什么?
3.toString() 3..toString() 3...toString()
A、”3”, error, error B、”3”, “3.0”, error C、error, “3”, error D、其它
答案:C。
解释:3.x 是一个合法的语法,结果为\带上尾数xtoString是合法的, 但空字符串不是
· 10·
26,
以下表达式的运行结果是什么?
(function(){
var x = y = 1; })();
console.log(y); console.log(x);
A、1, 1
B、error, error C、1, error D、其它
答案:C。
解释:y自动声明为全局变量
27, 列举一下IE与FF脚本兼容性的问题,例如 :
(1) window.event:
表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象 (2) 获取事件源
IE用srcElement获取事件源,而FF用target获取事件源 (3) 添加,去除事件
IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function) FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”,
function, true)
(4) 获取标签的自定义属性 IE:div1.value或div1[“value”] FF:可用div1.getAttribute(“value”)
(5) document.getElementByName()和document.all[name]
IE;document.getElementByName()和document.all[name]均不能获取div元素 FF:可以
(6) input.type的属性 IE:input.type只读 FF:input.type可读写
(7) innerText textContent outerHTML IE:支持innerText, outerHTML FF:支持textContent
(8) 是否可用id代替HTML元素 IE:可以用id来代替HTML元素 FF:不可以