JS 面试题 -奇葩说

原创 uptown 随笔 js 216阅读 7 天前 举报

一、填空简答

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) 的结果?null instanceof Object 的结果?

8、假设数组 company 中存放多个人员的信息,每个人员信息由 名字 name 和年龄 age组成,如{name:"Marc",age:18},用JS按从年龄小到大排序

9、执行下面的函数,会输出什么?

10、有数组 var arr= [1,2,3],哪些方法可以判断是 Array 类型?

11、var a = b = c = d = 1; 那么 console.log(++a,--b,c++,d--) 分别是多少?

12、var n = "hello "; n.name = "world"; 那么 console.log(n + n.name) 会输出什么?

13、var min = Math.min(); var max = Math.max();那么 console.log(min < max) 结果是?

14、执行下面的函数,会输出什么?

15、执行下面的代码,会输出什么?

16、匿名函数和箭头函数有什么不同?

二、问答

1、setTimeout 和 setInterval()

2、说说 JS 的原型链,有什么特点?

3、什么是柯理化?写一个

4、什么是 https? https 一定安全吗?如何解决?

5、描述 webpack 打包的优化原理。

6、Localstorage、cookies、sessionStorage 区别

三、ES6 

1、[1,2,3].fill(4)的结果是?

2、for..of 和 for...in 区别?

3、下列数组中找出 age =19 的元素,用 ES6 的 api:

4、 有数组:var arr = [1, 2, 3, 4, 4]; 有哪些方法可以去除重复项,用 ES6 的 api:

5、

  1)、demo("a","b","c","d") ; console.log输出什么?

  2)、demo.call({i:1},"e") ; console.log输出什么?

6、以下代码,怎么做到依次输出0到9?

答案:
一、填空
1、

可 F12 参考百度首页

2、“155”,10
运算符要求两个操作数都是数字,如果不是,会强制转换成数字,所以结果就变成了:15 - 5 = 10

3、2

4、x is not defined,1

5、1). false,true    2).false,false

6、"Monday"

7、"object",undefined,false

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、2 0 1 1

12、hello undefined

13、false //实际 min>max,因为:
Math.min: 如果没有参数,结果为Infinity
Math.max:如果没有参数,结果为-Infinity。

14、undefined,1,2
undefined,undefined,2
考察全局/局部变量、变量提升、this 指向等

15、["1", empty × 2]

16、相比较匿名函数,箭头函数:
1).函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象
2).不可以当作构造函数,也就是说,不可以使用new命令,否则会报错
3).不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替

二、问答
1~5:待更新、、、
6、cookies是为了标识用户身份而存储在用户本地终端上的数据,始终在同源http请求中携带,即cookies在浏览器和服务器间来回传递,而sessionstorage和localstorage不会自动把数据发给服务器,仅在本地保存。

存储大小的限制不同。cookie保存的数据很小,不能超过4k,而sessionstorage和localstorage保存的数据大,可达到5M。

数据的有效期不同。cookie在设置的cookie过期时间之前一直有效,即使窗口或者浏览器关闭。sessionstorage仅在浏览器窗口关闭之前有效。localstorage始终有效,窗口和浏览器关闭也一直保存,用作长久数据保存。

作用域不同。cookie在所有的同源窗口都是共享;sessionstorage不在不同的浏览器共享,即使同一页面;localstorage在所有同源窗口都是共享

三、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

2)、Map

5、这一题考察的比较全面: this 指向,变量,call,类型转换,ES6 的扩展运算符号

结果:1). undefined "a" "b,c,d"    2). 1  "e" ""

6、

  1). 闭包

  2). ES6 let

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复