我的面试日记
栏目: JavaScript · 发布时间: 5年前
内容简介:4、[1, 2, 3, 4, 5, 2, 3, 4, 2, 3, 4, 2, 3, 4] 数组去重,只要是数组迭代方法,皆可去重,除了数组的迭代方法还有 ES6 的 set 数据结构;
这些都是我和朋友在面试中,公司的一些笔试题,分享出来,为了自己和大家查看起来更方便。
2019.05.27 北京 笔试题
1、web 开发中会话跟踪的方法有哪些?
2、HTTP methods?
3、从浏览器地址输入 url 到显示页面的步骤(以http为例)?
4、如何进行网站性能优化?
5、容器包含若干浮动元素时如何清理(包含)浮动?
6、css hack 原理及常用hack?
7、垂直居中的方法?
8、重绘和回流(重排)是什么,如何避免?
9、PNG,GIF,JPG的区别及如何选?
10、JavaScript 跨域通信?
11、对象到字符串的转换步骤?
12、函数内部的 arguments 变量有哪些特性,有哪些属性,如何将他转换为数组?
13、评价一下三种方法实现继承的的优缺点,并改进。
14、focus/blur 与 focusin/focusout 的区别与联系。
15、sessionStorage ,localStorage, cookie 区别?
16、JavaScript 有哪几种方法定义函数?
17、什么是闭包,闭包有什么用?
18、let 与 var 的区别,以及 箭头函数 与 function 的区别?
19、HTTP 状态码 101、200、301、302、304的具体含义。
20、什么是防御性编程?与其相对的 let it crash 又是什么?
笔试题2
1、请写出判断变量类型的几种方法,并谈谈这几种方法的差异或者局限;
2、请写一下你记得的字符串操作方法,并说一下该方法的作用;
3、请写一下你记得的数组的操作方法,并简明说明一下该方法的作用;
4、[1, 2, 3, 4, 5, 2, 3, 4, 2, 3, 4, 2, 3, 4] 数组去重,只要是数组迭代方法,皆可去重,除了数组的迭代方法还有 ES6 的 set 数据结构;
5、原生实现一个 ES5 的 bind( )
6、简述一下 src 与 href 的区别;
7、sessionStorage、localStorage 和 cookie 之间的区别;
8、简述 Ajax 工作原理;
9、简述一下浏览器的渲染流程;
10、设想以下场景:公司有个项目,该项目需要做成单页应用,此时在不使用其他框架的情况下,说一下你该如何实现这个单页应用;
11、简单说一下 vue 的双向绑定原理;
12、简单说一下对于 node 的了解,了解其中的哪些模块,哪些方法,或是其他;
13、继承的方式;
14、常用跨域方式;
15、请写出几个经典的 this 使用场景
16、如何理解闭包?使用闭包时的注意点有哪些?
17、谈一谈你所了解到的垃圾回收机制;
18、let、const、var 有什么区别?
19、怎样添加,移除,移动,创建,复制,查找 DOM 节点?
笔试题3
1、输出结果
console.log(Number(true))//1 console.log(Number(null))//0 console.log(Number(undefined))//NaN console.log(typeof NaN)//number console.log(0.1 + 0.2 == 0.3, 0.5 + 0.1 == 0.6);//false true console.log(true == 1);//true console.log(true === 1);//false复制代码
2、写出 JS 中的数据类型
3、请把以下对象变为数组; var data = [a: 1, b: 2, c: 3]
4、请写出以下结果
fn (); //2 function fn () { console.log(1) }; fn() //2 var fn = 10; fn (); //Uncaught TypeError: fn is not a function 到这里,程序终止,不往下执行了 function fn() { console.log(2) }; fn(); 复制代码
5、请自选一种方法来实现 fn(1)(2) == 3 的方法;
6、请写出下面的输出结果,最好说明一下原因;
function Fn() { var num = 10; this.x =100; this.getx = function () { console.log(x) } } var f1 = new Fn; console.log(f1.num);//undefined console.log(num);//Uncaught ReferenceError: num is not defined,到这里,程序终止,不往下执行了 console.log(f1.getx);复制代码
7、请简述一下 JS 绑定事件的方法,这些方法与 live 有什么不同之处?
8、请写出下面的结果,为什么?
for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i) }, 1000*i) } 答案:一共 5个5,瞬时出现一个5,然后1秒出现一个5,因为开始 i 为 0 思考: (function () { console.log(1); setTimeout(function () { console.log(2); }, 1000); setTimeout(function () { console.log(3) }, 0); console.log(4); })() console.log(5) 答案:结果为1 4 5 3 2,其中1 4 5 3 时顺时出来,2 是在1秒之后出来,原因是 setTimeout( ) 是异步的, 执行的机制是 将指定的代码移出本轮事件循环,等到下一轮事件循环,先执行 同步的任务 ; 复制代码
9、请简单叙述你所知道的 ES6 新属性;
10、下面的代码将输出什么?
console.log(1 + "2"+"2");//122 console.log(1 + +"2" +"2");//32 console.log(1 + -"1" + "2");//02 console.log(+ "1" + "1" + "2");//112 console.log("A" - "B" + "2");//NaN2 console.log("A" - "B" + 2);//NaN console.log("0||1=" +(0||1));//0||1=1 console.log("0||1=" +(1||2));//0||1=1 console.log("0&&1=" +(1&&2));//0&&1=2 console.log("0&&1=" +(1&&2))//0&&1=2复制代码
11、数组去重:请用你所知道的实现下面的数组去重;
fn([0, 1, 2, '1', '1', 3, '3']) =>[0, 1, 2, '1',, 3, '3'] 复制代码
12、以下代码将输出什么?
var a = {}, b = {key: "b"}, c = {key: "c"}; a[b] = 123; a[c] = 456; console.log(a[b]);//456复制代码
面试题4
1、说说Vue双向绑定的原理/MVVM的理解 *n
2、 Vue与React的区别 *n
3、 谈谈你对闭包的理解 *n
4、 你项目中遇到最困难的问题是什么 *n
5、 你觉得你拿得出手的东西 *n
6、 Promise 核心原理/工作机制 *3
7、有封装过哪些组件,有什么心得? *3
8 、vue路由生命周期都有哪些,销毁钩子函数里你通常会做些什么 *2
9、 Webpack、Gulp打包的原理是什么、有什么不同 *2
10、谈谈类的继承
11、原型链和作用域链
12、常用的伪类伪元素
13、vuex 为什么要用 action去调用 metation
14、谈谈你所熟悉的设计模式
15、谈谈你对虚拟DOM的理解
16、谈谈你对NodeJS的了解
17、谈谈你对匿名函数的了解
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML Dog
Patrick Griffiths / New Riders Press / 2006-11-22 / USD 49.99
For readers who want to design Web pages that load quickly, are easy to update, accessible to all, work on all browsers and can be quickly adapted to different media, this comprehensive guide represen......一起来看看 《HTML Dog》 这本书的介绍吧!