javascript-puzzlers - javascript的坑人题
发布于 7 年前 作者 dislido 3593 次浏览 来自 分享

原文链接

选出以下代码的执行结果

1

["1", "2", "3"].map(parseInt)

A.["1", "2", "3"]B.[1, 2, 3] C.[0, 1, 2] D.other

2

[typeof null, null instanceof Object]

A.["object", false]B.[null, false] C.["object", true] D.other

3

[ [3,2,1].reduce(Math.pow), [].reduce(Math.pow) ]

A.an errorB.[9, 0] C.[9, NaN] D.[9, undefined]

4

var val = 'smtg';
console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing');

A.Value is SomethingB.Value is Nothing C.NaN D.other

5

var name = 'World!';
(function () {
    if (typeof name === 'undefined') {
        var name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
        console.log('Hello ' + name);
    }
})();

A.Goodbye JackB.Hello Jack C.Hello undefined D.Hello World

6

var END = Math.pow(2, 53);
var START = END - 100;
var count = 0;
for (var i = START; i <= END; i++) {
    count++;
}
console.log(count);

A.0B.100 C.101 D.other

7

var ary = [0,1,2];
ary[10] = 10;
ary.filter(function(x) { return x === undefined;});

A.[undefined × 7]B.[0, 1, 2, 10] C.[] D.[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.other

9

function showCase(value) {
    switch(value) {
    case 'A':
        console.log('Case A');
        break;
    case 'B':
        console.log('Case B');
        break;
    case undefined:
        console.log('undefined');
        break;
    default:
        console.log('Do not know!');
    }
}
showCase(new String('A'));

A.Case AB.Case B C.Do not know! D.undefined

10

function showCase2(value) {
    switch(value) {
    case 'A':
        console.log('Case A');
        break;
    case 'B':
        console.log('Case B');
        break;
    case undefined:
        console.log('undefined');
        break;
    default:
        console.log('Do not know!');
    }
}
showCase2(String('A'));

A.Case AB.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', -9, 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]

12

parseInt(3, 8)
parseInt(3, 2)
parseInt(3, 0)

A.3, 3, 3B.3, 3, NaN C.3, NaN, NaN D.other

13

Array.isArray( Array.prototype )

A.trueB.false C.error D.other

14

var a = [0];
if ([0]) {
  console.log(a == true);
} else {
  console.log("wut");
}

A.trueB.false C."wut" D.other

15

[]==[]

A.trueB.false C.error D.other

16

'5' + 3
'5' - 3

A."53", 2B.8, 2 C.error D.other

17

1 + - + + + - + 1

A.2B.1 C.error D.other

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.other

19

function sidEffecting(ary) {
  ary[0] = ary[2];
}
function bar(a,b,c) {
  c = 10
  sidEffecting(arguments);
  return a + b + c;
}
bar(1,1,1)

A.3B.12 C.error D.other

20

var a = 111111111111111110000,
    b = 1111;
a + b;

A.111111111111111111111B.111111111111111110000 C.NaN D.Infinity

21

var x = [].reverse;
x();

A.[]B.undefined C.error D.window

22

Number.MIN_VALUE > 0

A.falseB.true C.error D.other

23

[1 < 2 < 3, 3 < 2 < 1]

A.[true, true]B.[true, false] C.error D.other

24

// the most classic wtf
2 == [[[2]]]

A.trueB.false C.undefined D.other

25

3.toString()
3..toString()
3...toString()

A."3", error, errorB."3", "3.0", error C.error, "3", error D.other

26

(function(){
  var x = y = 1;
})();
console.log(y);
console.log(x);

A.1, 1B.error, error C.1, error D.other

27

var a = /123/,
    b = /123/;
a == b
a === b

A.true, trueB.true, false C.false, false D.other

28

var a = [1, 2, 3],
    b = [1, 2, 3],
    c = [1, 2, 4]
a ==  b
a === b
a >   c
a <   c

A.false, false, false, trueB.false, false, false, false C.true, true, false, true D.other

29

var a = {}, b = Object.prototype;
[a.prototype === b, Object.getPrototypeOf(a) === b]

A.[false, true]B.[true, true] C.[false, false] D.other

30

function f() {}
var a = f.prototype, b = Object.getPrototypeOf(f);
a === b

A.trueB.false C.null D.other

31

function foo() { }
var oldName = foo.name;
foo.name = "bar";
[oldName, foo.name]

A.errorB.["", ""] C.["foo", "foo"] D.["foo", "bar"]

32

"1 2 3".replace(/\d/g, parseInt)

A."1 2 3"B."0 1 2" C."NaN 2 3" D."1 NaN 3"

33

function f() {}
var parent = Object.getPrototypeOf(f);
f.name // ?
parent.name // ?
typeof eval(f.name) // ?
typeof eval(parent.name) //  ?

A."f", "Empty", "function", "function"B."f", undefined, "function", error C."f", "Empty", "function", error D.other

34

var lowerCaseOnly =  /^[a-z]+$/;
[lowerCaseOnly.test(null), lowerCaseOnly.test()]

A.[true, false]B.error C.[true, true] D.[false, true]

35

[,,,].join(", ")

A.", , , "B."undefined, undefined, undefined, undefined" C.", , " D.""

36

var a = {class: "Animal", name: 'Fido'};
a.class

A."Animal"B.Object C.an error D.other

37

var a = new Date("epoch")

A.Thu Jan 01 1970 01:00:00 GMT+0100 (CET)B.current time C.error D.other

38

var a = Function.length,
    b = new Function().length
a === b

A.trueB.false C.error D.other

39

var a = Date(0);
var b = new Date(0);
var c = new Date();
[a === b, b === c, a === c]

A.[true, true, true]B.[false, false, false] C.[false, true, false] D.[true, false, false]

40

var min = Math.min(), max = Math.max()
min < max

A.trueB.false C.error D.other

41

function captureOne(re, str) {
  var match = re.exec(str);
  return match && match[1];
}
var numRe  = /num=(\d+)/ig,
    wordRe = /word=(\w+)/i,
    a1 = captureOne(numRe,  "num=1"),
    a2 = captureOne(wordRe, "word=1"),
    a3 = captureOne(numRe,  "NUM=2"),
    a4 = captureOne(wordRe,  "WORD=2");
[a1 === a2, a3 === a4]

A.[true, true]B.[false, false] C.[true, false] D.[false, true]

42

var a = new Date("2014-03-19"),
    b = new Date(2014, 03, 19);
[a.getDay() === b.getDay(), a.getMonth() === b.getMonth()]

A.[true, true]B.[true, false] C.[false, true] D.[false, false]

43

if ('http://giftwrapped.com/picture.jpg'.match('.gif')) {
  'a gif file'
} else {
  'not a gif file'
}

A.'a gif file'B.'not a gif file' C.error D.other

44

function foo(a) {
    var a;
    return a;
}
function bar(a) {
    var a = 'bye';
    return a;
}
[foo('hello'), bar('hello')]

A.["hello", "hello"]B.["hello", "bye"] C.["bye", "bye"] D.other

1 回复

答案: DAADA DCCCA CDABB AADDB DBAAC CCAAB CDCCC DDBBB CDAB

回到顶部