1. 请说明以下程序运行结果
var x;
console.log(x === undefined)
console.log(y === undefined)
-
A. true, 程序报错Uncaught ReferenceError: y is not defined
-
B. true, true
-
C. false, false
-
Answer A
2. 请说明以下程序运行结果
var y = 1;
if (function f() {}) {
y += typeof f;
}
console.log(y);
-
A. 1
-
B. 1undefined
-
C. 程序报错
-
Answer B
3. 以下哪种方式能够清空一个数组
var arrayList = ['a', 'b', 'c', 'd', 'e', 'f'];
-
A. arrayList = [];
-
B. arrayList.length = 0;
-
C. arrayList.splice(0, arrayList.length);
-
D. 以上全部都对
-
Answer D
4. 请说明以下程序运行结果
var output = (function(x) {
delete x;
return x;
})(0);
console.log(output);
-
A. 0
-
B. 1
-
C. undefined
-
Answer A
5. 请说明以下程序运行结果
var x = 1;
var output = (function() {
delete x;
return x;
})();
console.log(output);
-
A. 0
-
B. 1
-
C. undefined
-
Answer B
6. 请说明以下程序运行结果
var x = { foo : 1};
var output = (function() {
delete x.foo;
return x.foo;
})();
console.log(output);
-
A. 0
-
B. 1
-
C. undefined
-
Answer C
7. 请说明以下程序运行结果
var Employee = {
company: 'xyz'
}
var emp1 = Object.create(Employee);
delete emp1.company
console.log(emp1.company);
-
A. xyz
-
B. ''
-
C. undefined
-
Answer A
8. 请说明以下程序运行结果
var trees = ["xyz", "xxxx", "test", "ryan", "apple"];
delete trees[3];
console.log(trees.length);
-
A. 3
-
B. 4
-
C. 5
-
Answer C
9. 请说明以下程序运行结果
var bar = true;
console.log(bar + 0);
console.log(bar + "xyz");
console.log(bar + true);
console.log(bar + false);
-
A. 1, truexyz, 2, 1
-
B. 0, truexyz, truetrue, truefalse
-
C. true0, truexyz, truetrue, truefalse
-
Answer A
10. 下面符合一个有效的javascript变量定义规则的是?
-
A. $a1$
-
B. with
-
C. a bc
-
D. 2a
-
Answer A
11. 下面有关javascript系统方法的描述,错误的是?
-
A. parseFloat方法:该方法将一个字符串转换成对应的小数
-
B. isNaN方法:该方法用于检测参数是否为数值型,如果是,返回true,否则,返回false。
-
C. escape方法: 该方法返回对一个字符串编码后的结果字符串
-
D. eval方法:该方法将某个参数字符串作为一个JavaScript执行
-
Answer C
12. ES6中的箭头函数与普通function区别描述错误的是
-
A. 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
-
B. 不可以当作构造函数,不可以使用new命令,否则会抛出一个错误。
-
C. 不可以使用arguments对象,该对象在函数体内不存在。
-
D. 可以使用yield命令,用作 Generator 函数。
-
Answer D
13. 请说明以下程序运行结果
console.log(0.1 + 0.2 == 0.3)
-
A. false
-
B. true
-
Answer A
14. 请说明以下程序运行结果
console.log(false == '0')
console.log(false === '0')
-
A. true, false
-
B. true, true
-
C. false, false
-
Answer A
15. 请说明以下程序运行结果
var a={},
b={key:'b'},
c={key:'c'};
a[b]=123;
a[c]=456;
console.log(a[b]);
-
A. 123
-
B. 456
-
C. 123456
-
Answer B
16. 请说明以下程序运行结果
var length = 10;
function fn() {
console.log(this.length);
}
var obj = {
length: 5,
method: function(fn) {
fn();
arguments[0]();
}
};
obj.method(fn, 1);
-
A. 10, 5
-
B. 10, 1
-
C. 10, 2
-
Answer C
17. 请说明以下程序运行结果
(function () {
try {
throw new Error();
} catch (x) {
var x = 1, y = 2;
console.log(x);
}
console.log(x);
console.log(y);
})();
-
A. 1, 2
-
B. 1, undefined, 2
-
C. 程序报错
-
Answer B
18. 请说明以下程序运行结果
for (let i = 0; i < 5; i++) {
setTimeout(function() { console.log(i); }, i * 1000 );
}
-
A. 0, 1, 2, 3, 4
-
B. 5, 5, 5, 5, 5
-
C. 程序报错
-
Answer A
19. 请说明以下程序运行结果
for (var i = 0; i < 5; i++) {
setTimeout(function() { console.log(i); }, i * 1000 );
}
-
A. 0, 1, 2, 3, 4
-
B. 5, 5, 5, 5, 5
-
C. 程序报错
-
Answer B
20. 请说明以下程序运行结果
console.log(1 < 2 < 3);
console.log(3 > 2 > 1);
-
A. true, false
-
B. true, true
-
C. false, true
-
D. false, false
-
Answer A
21. 请说明以下程序运行结果
var start = new Date();
var end = 0;
setTimeout(function() {
console.log(new Date() - start);
}, 500);
while (new Date() - start <= 1000) {}
-
A. 500
-
B. 1004
-
C. 1000
-
D. 以上都不正确
-
Answer DD
22. Node环境下请说明以下程序运行结果
setTimeout(() => console.log(1));
setImmediate(() => console.log(2));
process.nextTick(() => console.log(3));
Promise.resolve().then(() => console.log(4));
(() => console.log(5))();
-
A. 5, 4, 3, 1, 2
-
B. 3, 4, 5, 2, 1
-
C. 5, 3, 4, 1, 2
-
D. 3, 5, 1, 4, 2
-
Answer C
23. 关于javascript 基本类型正确的是
-
A. string, number, undefined, null, boolean
-
B. string, number, null, boolean, array
-
C. string, number, undefined, boolean, object
-
D. string, number, NaN, null, boolean
-
Answer A
24. 关于javascript 方法调用以下说法正确的是
-
A. javascript是传引用调用
-
B. javascript 函数都有隐藏的 arguments 参数
-
C. 关于javascript传参,如果参数是数组类型则是传引用调用,否则为传值调用
-
D. 关于javascript传参,如果参数是Object类型则是传引用调用,否则为传值调用
-
Answer A
25. 以下哪一项属于ES6 stage-3的特性
-
A. const, let 定义常量及变量
-
B. Promise
-
C. 箭头函数
-
D. async/await处理异步
-
Answer D
26. 以下程序运行结果为
var a = 1;
function b(){
var a;
console.log(a);
a = 2;
}
-
A. 1
-
B. 2
-
C. undefined
-
D. 以上都不对
-
Answer C
27. 以下程序运行结果为
var a = 1;
var obj = {
a: 2,
getA: function(){
console.log(this.a)
}
}
obj.getA()
var _getA = obj.getA()
_getA()
-
A. 1, 1
-
B. 2, 1
-
C. 1, 2
-
D. 以上都不对
-
Answer B
29. 以下哪个方法不属于ES6 Array 的新加入的。
-
A. of()
-
B. from()
-
C. concat()
-
D. fill()
-
Answer C
30. javascript 异步发展史顺序
- A. callback -> promise -> generator(yied/next) -> async/await
- B. callback -> generator(yied/next) -> promise -> async/await
- C. callback -> async/await -> generator(yied/next) -> promise
- C. callback -> generator(yied/next) -> async/await -> promise
- Answer A
31. ES6环境,在代码可读性的角度,以下哪一种是解决javascript多层异步回调的最好方式
-
A. callback嵌套
-
B. promise
-
C. generator(yied/next)
-
D. async/await
-
Answer D
32. 在ES6环境下解决javascript多个异步请求并发描述正确的是
-
A. 使用callback嵌套
-
B. 使用promise.all
-
C. 使用多层async/await
-
Answer B
33. 在浏览器环境下,javascript原型链的根节点是什么
-
A. null
-
B. Object
-
C. window
-
D. Document
-
Answer A
34. 关于javascript以下描述错误的是
-
A. function都有一个prototype属性
-
B. Object都有一个隐藏的__proto__属性
-
C. function都有一个隐藏的arguments参数
-
D. Array都有一个prototype属性
-
Answer D
35. 以下哪一种不是es6中的原始数据类型
-
A. Symbol
-
B. Object
-
C. Array
-
D. String
-
Answer C
36. 以下程序运行结果为
let s1 = Symbol();
let s2 = Symbol();
console.log(s1 === s2)
let s1 = Symbol('foo');
let s2 = Symbol('foo');
console.log(s1 === s2)
-
A. false, false
-
B. false, true
-
C. true, true
-
D. 以上都不对
-
Answer A
37. javascript是单线程语言还是多线程?
-
A. 单线程
-
B. 多线程
-
Answer A
38. 关于js中小数计算精度不准确的问题,请给写一个function给出解决方案。
39. es6中为什么要引入Symbol类型
40 请简单的描述一下javascript闭包
41 请简单描述一下javascript中的事件委托,事件委托是通过什么机制实现的
42 javascript中那些事件没有冒泡机制,请举例。
43 请描述一下angular1.x 与angular2+ 的本质区别
44 请描述vue2, react, angular2+ 三个框架的优缺点
45 请使用ES7的语法对以下两个数组进行,并集,交集,全集操作
let arrA = [1, 2, 3, 4, 5, 6]
let arrB = [3, 4, 5, 6, 7, 8]
46 请使用ES6的语法对以下两个数组进行,并集,交集,全集操作
let arrA = [1, 2, 3, 4, 5, 6]
let arrB = [3, 4, 5, 6, 7, 8]
47 请使用es6的语法操作以下数组, 将3号位复制到0号位
let arr = [1, 2, 3, 4, 5]
48 请使用es5的语法修改以下程序存在的bug
var arr = [10, 32, 65, 2];
for (var i = 0; i < arr.length; i++) {
setTimeout(function() {
console.log('The index of this number is: ' + i);
}, 3000);
}
49 请简单描述redux框架的作用
50. 以下程序运行结果为
function mul(x) {
return function(y) {
return function(z) {
return function(w) {
return function(p) {
return x * y * z * w * p;
};
};
};
};
}
console.log(mul(2)(3)(4)(5)(6));
-
A. 720
-
B. undefined
-
C. Type Error
-
D. Reference Error
-
Answer A
51. 以下程序运行结果为
(function() {
console.log(typeof displayFunc);
var displayFunc = function(){
console.log("Hi I am inside displayFunc");
}
}());
-
A. function
-
B. undefined
-
C. 'Hi I am inside displayFunc'
-
D. ReferenceError: displayFunc is not defined
-
Answer B
52. 以下程序运行结果为
(function() {
var array = new Array('100');
console.log(array);
console.log(array.length);
}());
-
A. [undefined × 100] 100
-
B. undefined undefined
-
C. ["100"] 1
-
D. ReferenceError: array is not defined
-
Answer C
53. 以下程序运行结果为
(function() {
var array1 = [];
var array2 = new Array(100);
var array3 = new Array(['1',2,'3',4,5.6]);
console.log(array1);
console.log(array2);
console.log(array3);
console.log(array3.length);
}());
-
A. [] [] [Array[5]] 1
-
B. [] [undefined × 100] Array[5] 5
-
C. [] [] ['1',2,'3',4,5.6] 5
-
D. [] [] [Array[5]] 5
-
Answer A
54. 请描述react的组件生命周期钩子方法与作用。
55. 请描述Vue2的组件生命周期钩子方法与作用。
56. 关于javascript中的setTimeout(function, timer)方法第二个时间参数描述错误的是
- A. timer是可选参数
- B. 如果timer设置为0,这该function会变为同步方法立即执行
- C. timer值在不同浏览器环境下有不同的上限
- D. function不一定会在设置的timer时间结束后执行。
57. 为什么在query中可以使用链式调用,比如$( "div" ).css( "width", "300px" ).add( "p" ).css( "background-color", "blue" );
58. 以下程序运行结果为:
function a(){
return
{
message: 'hello'
}
}
a()
-
A. undefined
-
B. {message: 'hello'}
-
C. Uncaught TypeError
-
D. {}
-
Answer A
59. 以下程序运行结果为:
function foo() {
return () => {
return () => {
return () => {
console.log('id:', this.id);
};
};
};
}
var f = foo.call({id: 1});
var t1 = f.call({id: 2})()();
var t2 = f().call({id: 3})();
var t3 = f()().call({id: 4});
-
A. id: 1, id: 1, id: 1
-
B. id: 2, id: 3, id: 4
-
C. id: 1, id: 2, id: 3
-
D. 以上都不正确
-
Answer A
60.请说明下ES6中的双冒号运算符,以及他的作用。
61. ES5中相等运算符(==)和严格相等运算符(===)描述错误的是
-
A. ==会自动转换数据类型
-
B. NaN === NaN 返回false
-
C. -0 === +0 返回ture
-
D. null === null 返回false
-
Answer D
62. 请简单描述一下react与vue2中所使用的vDom内部原理。
63. 以下关于ES6 声明变量的方式描述正确的是
-
A. var命令和function命令
-
B. let和const命令
-
C. import命令和class命令
-
D. 以上都正确
-
Answer D
64. 关于rxjs你了解多少
-
A. 听过
-
B. 简单使用过
-
C. 精通
-
D. 精通并熟悉原理
-
Answer D
65. 以下关于ES5 顶级对象描述正确的是
-
A. 浏览器里面,顶层对象是window,但 Node 和 Web Worker 没有window
-
B. 浏览器和 Web Worker 里面,self也指向顶层对象,但是 Node 没有self
-
C. Node 里面,顶层对象是global,但其他环境都不支持。
-
D. 以上都正确
-
Answer D