我的面试日记
栏目: 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、谈谈你对匿名函数的了解
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高可用架构(第1卷)
高可用架构社区 / 电子工业出版社 / 2017-11-1 / 108.00元
《高可用架构(第1卷)》由数十位一线架构师的实践与经验凝结而成,选材兼顾技术性、前瞻性与专业深度。各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。不仅架构师可以从中受益,其他IT、互联网技术从业者同样可以得到提升。一起来看看 《高可用架构(第1卷)》 这本书的介绍吧!