专栏名称: Coderfei
前端
目录
相关文章推荐
程序员的那些事  ·  Rust ... ·  2 天前  
程序员的那些事  ·  《人民日报》批谷歌安卓系统:假开源、真垄断 ·  3 天前  
程序猿  ·  DeepSeek招人年薪最高154万 ·  4 天前  
程序猿  ·  本地部署 DeepSeek ... ·  3 天前  
程序员的那些事  ·  趣图:我和 DeepSeek 互换角色 ·  5 天前  
51好读  ›  专栏  ›  Coderfei

我的面试日记

Coderfei  · 掘金  ·  · 2019-06-01 11:56

正文

阅读 86

我的面试日记

这些都是我和朋友在面试中,公司的一些笔试题,分享出来,为了自己和大家查看起来更方便。
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"






请到「今天看啥」查看全文