30個你 “ 不可能全部會做 ” 的javascript題目
來源:程序員人生 發(fā)布時間:2015-07-27 08:05:38 閱讀次數:4578次
1,以下表達式的運行結果是:
["1","2","3"].map(parseInt)
A.["1","2","3"]
B.[1,2,3]
C.[0,1,2]
D.其他
==============答案:D,parseInt第2個參數范圍是:2⑶2,如果傳入0,則默許依照10處理。請自己查看parseInt函數定義
2,以下表達式的運行結果是:
[typeof null, null instanceof Object]
A.["object",false]
B.[null,false]
C.["object",true]
D.其他
================答案:A,關于instanceof的深入講授請參考:http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/
3,以下表達式的運行結果是:
[[3,2,1].reduce(Math.pow),[].reduce(Math.pow)]
A.報錯
B.[9,0]
C.[9,NaN]
D.[9,undefined]
===================答案:A,空數組用reduce會報錯,由于reduce在沒有傳入initValue時,會使用數組第1個元素做initValue,但是空數組沒有第1個元素
4,以下表達式的運行結果是:
var val = "value";
console.info("Value id "+(val === "value")?"Something":"Nothing");
A.Something
B.Nothing
C.NaN
D.其他
===========答案:A,JS的比較分為兩種,值類型比較和援用類型比較。值類型只比較值相等
5,以下表達式的運行結果是:
var name = "World";
(function(){
if(typeof name === "undefined"){
var name = "Jack";
console.info("Goodbye "+ name);
}else{
console.info("Hello " + name);
}
})();
A.Goodbye Jack
B.Hello Jack
C.Goodbye undefined
D.Hello undefined
=============答案:A,JS的變量作用于只有全局和函數級別,然后var聲明的變量會有1個hoisting的進程
6,以下表達式的運行結果是:
var START = END ⑴00;
var count = 0;
for(var i = START ; i <= END ;i++){
count ++;
}
console.info(count);
A.0
B.100
C.101
D.其他
================答案:D,會報錯,END未定義
7,以下表達式的運行結果是:
var arr = [0,1,2];
arr[10] = 10;
arr.filter(function(x){return x === undefined});
A.[undefined x 7]
B.[0,1,2,10]
C.[]
D.[undefined]
=============答案:C,filter不會處理數組中undefined的元素
8,以下表達式的運行結果是:
var two = 0.2;
var one = 0.1;
var eight = 0.8;
var six = 0.6;
[two -one == one,eight- six == two];
A.[true,true]
B.[false,false]
C.[true,false]
D.其他
==========答案:C,不知道為啥。結果為0.1和0.2浮點數會有區(qū)分?求解答
9,以下表達式的運行結果是:
function showCase(value){
switch(value){
case "A":
console.info("Case A");
break;
case "B":
console.info("Case B");
break;
case undefined :
console.info("undefined");
break;
default:
console.info("Do not know!");
}}
showCase(new String("A"));
A.Case A
B.Case B
C.Do not know
D.undefined
=============答案:C,switch使用===進行比較
10,以下表達式的運行結果是:
function showCase(value){
switch(value){
case "A":
console.info("Case A");
break;
case "B":
console.info("Case B");
break;
case undefined :
console.info("undefined");
break;
default:
console.info("Do not know!");
}}
showCase(String("A"));
A.Case A
B.Case B
C.Do not know
D.undefined
=============和上題重復
11,以下表達式的運行結果是:
function isOdd(num){
return num % 2 == 1;
}
function isEven(num){
return num % 2 == 0;
}
function isSane(num){
return isEven(num)||isOdd(num);
}
var values = [7,4,"13",⑼,Infinity];
values.map(isSane);
A.[true,true,true, true,true]
B.[true,true,true,true,false]
C.[true,true,true,false,false]
D.[true,true,false,false,false]
===================答案:C,負數求余為負數
12,以下表達式的運行結果是:
[parseInt(3,8),parseInt(3,2),parseInt(3,0)]
A.[3,3,3]
B.[3,3,NaN]
C.[3,NaN,NaN]
D.其他
============答案:D,[3, NaN, 3],參考第1題解答
13,以下表達式的運行結果是:
Array.isArray(Array.prototype)
A.true
B.false
C.報錯
D.其他
==================答案:A
14,以下表達式的運行結果是:
var a = [0];
if([0]){
console.info(a == true);
}else{
console.info("else");
}
A.true
B.false
C."else"
D.其他
==============答案:B,數組是援用類型,用==比較是不是是同1個對象
15,以下表達式的運行結果是:
[]==[]
A.true
B.false
C.報錯
D.其他
============答案:B,參考上1題
16,以下表達式的運行結果是:
[("5"+3),("5"⑶)]
A.["53",2]
B.[8,2]
C.報錯
D.其他
==============答案:A,無需解釋
17,以下表達式的運行結果是:
1+-+++-+1
A.true
B.false
C.報錯
D.其他
==============答案:C,變態(tài)的題
18,以下表達式的運行結果是:
var arr = Array(3);
arr[0] = 2
arr.map(function(elem){return "1";});
A.[2,1,1]
B.["1","1","1"]
C.[2,"1","1"]
D.其他
===============答案:D,map不處理undefined的元素。結果應當是:["1",undefined,undefined]
19,以下表達式的運行結果是:
function sidEffecting(arr){
arr[0] = arr[2];
}
function bar(a,b,c){
c = 10;
sidEffecting(arguments);
return a+b+c;
}
bar(1,1,1);
A.3
B.12
C.報錯
D.其他
=============答案:21,自己想去
20,以下表達式的運行結果是:
var a = 111111111111111110000;
b = 1111;
console.info(a+b);
A.111111111111111111111
B.111111111111111110000
C.NaN
D.Infinity
===================答案:B,不知道具體緣由,猜想整數越界?
21,以下表達式的運行結果是:
ar x = [].reverse;
x();
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈