JS 面试题 -奇葩说
1、console.log 怎么打印有颜色的字体
2、“15”+5 的结果是?“15”-5 的结果是?
3、1 + - + + + - + 1 结果是?
4、(function() { var x = y = 1;})(); console.log(x); //结果是?console.log(y);//结果是?
5、var arr1 = [1,2],arr2=[1,2],arr3 = arr1;
1)、arr1 === arr2; arr1 === arr3 结果是?
2)、[]==[]; [1,2]==[1,2] 结果是?
6、请问 (function(i){ return i || "Tuesday" },"Monday") 的结果是什么?
7、typeof(null) 结果是什么?void(0) 的结果?
8、假设数组 company 中存放多个人员的信息,每个人员信息由 名字 name 和年龄 age组成,如{name:"Marc",age:18},用JS按从年龄小到大排序
9、执行下面的函数,会输出什么?
function Fx(){
this.a = 1;
this.b = 2;
}
Fx.prototype.getInfo = function(){
console.log(this.a);
}
const fx = new Fx();
const obj = {
a:3,
getInfo: fx.getInfo
}
fx.getInfo();
obj.getInfo();
10、有数组 var arr= [1,2,3],哪些方法可以判断是 Array 类型?
11、setTimeout 和 setInterval()
12、说说 JS 的原型链,有什么特点?
13、什么是柯理化?写一个
14、什么是 https? https 一定安全吗?如何解决?
15、Localstorage、cookies、sessionStorage 区别
16、描述 webpack 打包的优化原理。
ES6
1、[1,2,3].fill(4)的结果是?
2、for..of 和 for...in 区别?
3、下列数组中找出 age =19 的元素,用 ES6 的 api:
let company = [ {name:"a",age:38}, {name:"b",age:24}, {name:"c",age:69}, {name:"d",age:19} ]
4、 有数组:var arr = [1, 2, 3, 4, 4]; 有哪些方法可以去除重复项,用 ES6 的 api:
5、
function demo(i,...j){
console.log(this.i,i,j.join(","));
};
1)、demo("a","b","c","d") ; console.log输出什么?
2)、demo.call({i:1},"e") ; console.log输出什么?
6、以下代码,怎么做到依次输出0到9?
var arr = [];
for (var i = 0; i < 10; i++) {
arr.push(function() { console.log(i) })
}
arr.forEach(function(fn) {
fn()
})
答案:
1、
console.log("%c颜色字体","color:red");
可 F12 参考百度首页
2、“155”,10
3、2
4、x is not defined,1
5、1). false,true 2).false,false
6、"Monday"
7、object,undefined
8、company.sort((a,b)=>a.age-b.age); console.log(company);
9、1,3
10、五种方法:
1)、arr instanceof Array;
2)、arr.constructor === Array
3)、Array.prototype.isPrototypeOf(arr)
4)、Array.isArray(arr)
5)、{}.toString.call(arr)==="[object Array]" //等同:Object.prototype.toString.call(arr)==="[object Array]"
11~16:待更新、、、
ES6:
1、[4, 4, 4]
2、for in是ES5标准,遍历key;for of是ES6标准,遍历value。
3、for (let i of company){ i.age === 19 && console.log(i)
4、
1)、Set
const set = new Set([1, 2, 3, 4, 4]);
console.log([...set]);
2)、Map
var arr = [1, 2, 3, 4, 4];
function unique (arr) {
const map = new Map();
return arr.filter((a) => !map.has(a) && map.set(a, 1));
}
console.log(unique(arr));
5、这一题考察的比较全面: this 指向,变量,call,类型转换,ES6 的扩展运算符号
结果:1). undefined "a" "b,c,d" 2). 1 "e" ""
6、
1). 闭包
var arr = [];
for (var i = 0; i < 10; i++) {
arr.push((function(val){
return function(){
console.log(val);
}
})(i))
}
arr.forEach(function(fn) {
fn()
})
2). ES6 let
var arr = [];
for (let i = 0; i < 10; i++) {
arr.push(function() { console.log(i) })
}
arr.forEach(function(fn) {
fn()
})
上一篇: 关于MyBatis的一切
下一篇: js语法