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()
})

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值