前端问题
1. js的typeof返回哪些数据类型?
object number function boolean undefined string
其中typeof isNaN //Function
2. 面向对象编程与面向过程编程的区别
思维方式的区别
面向过程:按步骤(顺序)来编程。如:C语言
面向对象:找到角色,确定职责,以功能驱动
3. this的指向问题
ele.onclick = function(){
console.log(this);//指代ele元素
}
function Person(name){
this.name = name;
}
let per = new Person();//此时this指向per
let obj = {
print : Person
}
obj.print == Person;//true
window.Person();//此时调用Person函数的是window,this指向window
obj.print();//调用Person函数的是obj,this指向obj
setInterval(Person,200);//调用Person函数的是window,this指向window
Person.call(document);//等价于document.Person,this指向document
//手动实现一个bind
Function.prototype.bind = function(target){
var fn = this;//指向调用bind方法的函数,想让它永久指向target
return function(){
fn.apply(target, arguments);
}
}this指代的是 【当前对象】,即此刻正在执行这个函数的对象,谁调用这个函数,this指向谁
- 函数.call(指定任何对象);//可以直接执行函数
- let 新函数 = 函数.bind(obj);//不执行函数,新函数的this,会永久指向obj,this被绑定了
4. 普通函数与箭头函数的区别
let test = () => {
}
let obj = {
id:99,
hello : ()=>{
console.log(this);//window
console.log(this.id);
},
print : function(){
console.log(this.id);//99
setTimeout(function(){
console.log(this.id);
},300)
},
print2 : function(){
setTimeout(() => {
console.log(this.id);
},300)
}
}
obj.hello();//undefined
obj.print();//undefined,此时调用setTimeout的是window,它没有id属性,所以输出undefined
obj.print2();//99,把setTimeout中的回调函数变成箭头函数,它没有自己的this,指向上一级的this,所以输出99- 箭头函数不能当作构造函数,不能new,因为它自身没有this,【如何断定箭头函数this的指向:当箭头函数不存在】
5. eval函数的作用?
eval("var a=100; alert(a);");
//html
<textarea id='textarea'>
</textarea>
//js
eval(textarea.value);//可以根据用户输入的字符串运行相应程序将字符串转换为js程序执行
存在安全问题
但是在模块化中常用,动态执行代码
<script src='xx.js' type='text/html' charset='utf-8'> //type类型不是text/javascript,js文件在加载成功后不会立即被执行,此时得到的是一串字符串 </script> eval(xx.js)
严格模式和非严格模式 eval区别
6. 函数防抖和节流
//函数防抖
7. 作用域链
8.
9.
1. h5新增的标签有哪些?为什么要加强语义化
2. 为什么要清除浮动?如何清除浮动?
3. 行内元素,块级元素有哪些?它们的区别
4. 有哪几种存储数据的方式,有什么不同
5. 下面程序输出的是什么?如何修改能够输出1-10.
for(var i = 0; i < 10; i++){
setTimeout(function(){
console.log(i)
},10)
}6. vue实现双向绑定的原理是什么?
7. vue组件之间是怎么传值的?(父子组件,兄弟组件)
8. 让A、B两个按钮实现按点击次序执行请求
9. 怎么实现文本不换行?超出部分显示省略号
white-space:nowrap;/*强制在一行显示*/ overflow:hidden;/*超出部分隐藏*/ text-overflow:ellipsis;/*文本超出部分用省略号代替*/
10. vue的生命周期有哪些?它们有什么不同?
11. 怎么实现跨域?jsonp的原理是什么?
吉利
12. h5的标签有哪些
13. 盒子的定位,让子盒子在父盒子的最右侧应该怎么做?(浮动定位弹性盒子)
14. ES6的新特性有哪些?let/const/var的区别
15. 什么是闭包?
16. vue的生命周期
17. vue中的this在哪个生命周期可以被调用
18. js的基本数据类型(包括es6新增的symbol)
19. 怎么判断数据类型?
20. 怎么给数组去重?
某厂复试
21. 学过哪些基础框架?
22. vue的源码看过吗?怎么实现数据劫持?(vue怎么实现双向数据绑定的原理)
23. vue的生命周期
24. 分别在什么时候用到created,mounted
25. 用过es6,es7吗?列举一些常用的
26. Promise async await用过吗
27. 箭头函数和一般函数的区别
28. 有没有了解过后端语言
29. jQuery中绑定事件用的on和bind有什么区别?
30. 前端常用的性能优化的方法?
31. 打开一个页面,加载较慢,应该怎么做?
32. 闭包是什么?举例说明
33. 问面试官的问题:现在在做的项目是什么,用的是什么框架?
34. vue中组件的data为什么是函数形式
35. vue-cli如何使用json数据模拟
海康
36. 闭包是什么,其优缺点有哪些?
37. 怎么让子盒子上下居中
38. js的本地存储机制
39. cookie中的session?
40. 跨域怎么实现
41. this的指向问题,改变this的指向
42. vue项目中用了什么UI框架
43. npm中的warn了解吗
44. node.js
45. 描述自己的项目
46. 列举自己的优缺点(3个),自己的特色是什么
某厂面试题
47. es6有哪些新特性
48. H5中的canvas绘图了解过吗?
Nodejs,webpack了解过吗
49. html第一行 !doctype的作用
50. css3的动画特性,可以用js实现,为什么还要用css实现??
51. Ajax请求中数据重新处理和***
52. bootstrap中栏栅一行24个如何做到?
53. js实现轮播图的实现逻辑
54. git的常用代码操作
55. 除了看视频,还能怎么学习前端?
56. 简单说一下get/post的区别
57. 列举h5的新特性,css3的新特性
58. 了解过SEO搜索引擎优化吗?
59. const定义常量不能改变,定义的对象能改变吗?
61. let和var在全局定义的时候有什么区别
62. js的三大事件(捕获、冒泡)如何执行
华为电话面试
63. 原生js中继承怎么实现的
64. es6中新增的类和方法?(class和继承)怎么实现继承的
65. jQuery和vue有什么区别
66. vue中父子、兄弟组件(订阅者模式bus)如何传值
67. 设计模式有了解吗
68. vue中的vuex和Axios的使用
69. es6 const/let/var的区别
70. 闭包是什么?用let怎么实现
71. js的垃圾回收机制
72. 使用js时,如何调bug
网易



查看3道真题和解析