你不知道的JavaScript--值得你挑战的JavaScript面试题(45题)

1,以下表达式的运行结果是:

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

A.["1","2","3"]

B.[1,2,3]

C.[0,1,2]

D.其他 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2,以下表达式的运行结果是:

[typeof null, null instanceof Object]

A.["object",false]

B.[null,false]

C.["object",true]

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3,以下表达式的运行结果是:

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

A.报错

B.[9,0]

C.[9,NaN]

D.[9,undefined]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4,以下表达式的运行结果是:

var val = ‘value‘;
console.info(‘Value id ‘+(val === ‘value‘)?‘Something‘:‘Nothing‘);

A.Something

B.Nothing

C.NaN

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

B.100

C.101

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

12,以下表达式的运行结果是:

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

A.[3,3,3]

B.[3,3,NaN]

C.[3,NaN,NaN]

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

13,以下表达式的运行结果是:

Array.isArray(Array.prototype)

A.true

B.false

C.报错

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

14,以下表达式的运行结果是:

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

A.true

B.false

C."else"

D.其他 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

15,以下表达式的运行结果是:

[]==[]

A.true

B.false

C.报错

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

16,以下表达式的运行结果是:

[(‘5‘+3),(‘5‘-3)]

A.["53",2]

B.[8,2]

C.报错

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

17,以下表达式的运行结果是:

1+-+++-+1

A.true

B.false

C.报错

D.其他 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

20,以下表达式的运行结果是:

var a = 111111111111111110000;
b = 1111;
console.info(a+b);

A.111111111111111111111

B.111111111111111110000

C.NaN

D.Infinity 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

21,以下表达式的运行结果是:

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

A.[]

B.undefined

C.报错

D.window
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

22,以下表达式的运行结果是:

Number.MIN_VALUE>0

A.true

B.false

C.报错

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

23,以下表达式的运行结果是:

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

A.[true,true]

B.[true,false]

C.报错

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

24,以下表达式的运行结果是:

2 == [[[2]]]

A.true

B.false

C.undefined

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

25,以下表达式的运行结果是:

[3.toString(),3..toString(),3...toString()]

A.["3",error,error]

B.["3","3.0",error]

C.[error,"3",error]

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

26,以下表达式的运行结果是:

(function(){
var x1 =y1 =1;
})();

console.info(y1);
console.info(x1);

A.1,1

B.error,error

C.1,error

D.其他
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

27,以下表达式的运行结果是:

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

A.true
B.false
C.error
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

28,以下表达式的运行结果是:

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

29,以下表达式的运行结果是:

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

A.true
B.false
C.error
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

30,以下表达式的运行结果是:

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

31,以下表达式的运行结果是:

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

32,以下表达式的运行结果是:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

33,以下表达式的运行结果是:

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

34,以下表达式的运行结果是:

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

A."Animal"
B.Object
C.an error
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

35,以下表达式的运行结果是:

var a = new Date("epoch")

A.Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
B.current time
C.error
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

36,以下表达式的运行结果是:

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

A.true, true
B.true, false
C.false, false
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

37,以下表达式的运行结果是:

What is the result of this expression? (or multiple ones)

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, true
B.false, false, false, false
C.true, true, false, true
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

38,以下表达式的运行结果是:

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

A.[false, true]
B.[true, true]
C.[false, false]
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

39,以下表达式的运行结果是:

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

A.true
B.false
C.null
D.other
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

40,以下表达式的运行结果是:

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

A.error
B.["", ""]
C.["foo", "foo"]
D.["foo", "bar"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

41,以下表达式的运行结果是:

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

A."1 2 3"
B."0 1 2"
C."NaN 2 3"
D."1 NaN 3"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

42,以下表达式的运行结果是:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

43,以下表达式的运行结果是:

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

A.[true, false]
B.error
C.[true, true]
D.[false, true]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

44,以下表达式的运行结果是:

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

A.[true, false]
B.error
C.[true, true]
D.[false, true]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

45,以下表达式的运行结果是:

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

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



转载 http://blog.csdn.net/i10630226/article/details/49765737
时间: 2024-08-02 10:57:00

你不知道的JavaScript--值得你挑战的JavaScript面试题(45题)的相关文章

你不知道的JavaScript--Item31 值得你挑战的JavaScript面试题(45题)

你不知道的JavaScript系列,已经有这么多篇博文了,今天找了一些题目,我觉得,下面这些是你"不可能全部会做 " 的javascript题目,不信你可以试试,答案在后面的博客给出,也许你是jser大神,欢迎挑战一下! 给答对一半以上的同学点10086个赞!!!!!!双十一的夜晚,和你们一起High起来!!!!!!!!!!!!!!!!!! 1,以下表达式的运行结果是: ["1","2","3"].map(parseInt)

RX学习笔记:FreeCodeCamp的JavaScript基本算法挑战

FreeCodeCamp的JavaScript基本算法挑战 https://www.freecodecamp.com 2016-07-03 JavaScript还不是非常熟悉,用已经会的知识来解这些题,估计有些算法会非常笨. 1.反转字符串 str.split("").reverse().join(""); 2.阶乘(阶乘0的结果需为1) function factorialize(num) { var n=1; for(var i=num;i>0;i--){

JavaScript学习总结(十六)——Javascript闭包(Closure)

原文地址: http://www.cnblogs.com/xdp-gacl/p/3703876.html 闭包(closure)是Javascript语言的一个难点,也是它的特色, 很多高级应用都要依靠闭包实现.很早就接触过闭包这个概念了,但是一直糊里糊涂的,没有能够弄明白JavaScript的闭包到底是什么,有什么用,今天 在网上看到了一篇讲JavaScript闭包的文章(原文链接), 讲得非常好,这下算是彻底明白了JavaScript的闭包到底是个神马东东以及闭包的用途了,在此写出来和大家分

JavaScript 工具库:Cloudgamer JavaScript Library v0.1 发布

JavaScript 工具库:Cloudgamer JavaScript Library v0.1 发布 研究了一年多的js,也差不多写一个自己的js库了.我写这个不算框架,只是一个小型的js工具库,所以我用的名字是Library.主要集合了我写js时一些常用的方法,并参考了prototype.js,jquery,google,百度,有啊等框架. 这个工具库的主要特点是: [跨浏览器]能在以下浏览器使用:IE6,IE7,IE8,Firefox 3.5.3,Chrome 3.0,Safari 4.

前端之JavaScript第一天学习(1)-JavaScript 简介

javaScript 是世界上最流行的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. JavaScript 很容易学习. JavaScript:写入 HTML 输出 <!DOCTYPE html> <html

轻松学习JavaScript二十九:JavaScript中的this详解

这几天在看很多的JS的代码,多次出现this关键字,有时候表示不理解,就仔细看了这一方面的知识. 在JavaScript语言中,this的定义是:this是包含它的函数作为方法被调用时所属的对象.说明:这句话有点咬 嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它:1包含它的函数.2作为方法被调用时.3所 属的对象.随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那 个对象. this是Javascript语言的一个关键字,它代

【JavaScript】【算法】JavaScript版排序算法

JavaScript版排序算法:冒泡排序.快速排序.插入排序.希尔排序(小数据时,希尔排序会比快排快哦) 1 //排序算法 2 window.onload = function(){ 3 var array = [0,1,2,44,4, 4 324,5,65,6,6, 5 34,4,5,6,2, 6 43,5,6,62,43, 7 5,1,4,51,56, 8 76,7,7,2,1, 9 45,4,6,7,8]; 10 //var array = [4,2,5,1,0,3]; 11 array

[连载]JavaScript讲义(03)--- JavaScript面向对象编程

[连载]JavaScript讲义(03)--- JavaScript面向对象编程,布布扣,bubuko.com

href=&quot;javascript:xxx(this);&quot;和onclick=&quot;javascript:xxx(this);&quot;的区别

href="javascript:xxx(this);"和onclick="javascript:xxx(this);" 一直以为这两种写法是等同的,今天在项目中使用时发现前者的this根本拿不到触发事件的A标签,而后者可以拿到 一般在做分页按钮时会用A标签来做,但是一般都会写<a href="#" onclick="turnPage(1,10)">之类的 href="#"会导致分页在跳转时页面