前端面试题
计算机网络
通信三要素
通信的主体、通信的内容、通信的方式
TCP三次握手与四次挥手
HTTP
HTML
CSS
清除浮动的方式
JavaScript
ES6新特性
Promise(),async,await;
let,const
箭头函数
箭头函数特点
没有自己的this,this是外层作用域的this
不能实例化
没有arguments参数
数组
数组方法
Array.isArray()
forEach()
filter()
splice()
Array.prototype.fill():可以快速生成含n个1的数组
遍历数组的方法
forEach()、for...in,for...of
数组排序
数组去重
重绘与回流
什么情况下
事件执行过程
栈,队列,异步,同步,异步,宏任务,微任务
哪些是同步任务,
常见的异步任务有:定时器回调任务,AJAX请求、读写文件操作
JS数据存储原理
哪些存在堆里,哪些存在栈里
原型链
构造函数有显示原型(prototype)和隐式原型()
null和undefined的区别
子元素居中的方法
-
flex布局
父元素设置display:flex;justify-content: center;
-
设置绝对定位
{ }
同源策略与跨域
节流阀/互斥锁
8大数据类型
基本数据类型:Number,String,Boolean,null,undefined,symbol,bigint(后两个为ES6新增)
引用数据类型:object
apply() call() bind()
详见:
https://www.bilibili.com/video/BV1XX4y1w7R6/?spm_id_from=333.337.search-card.all.click
https://www.bilibili.com/video/BV1944y1q7N4/?spm_id_from=333.337.search-card.all.click&vd_source=efd4241fdf9061e2f928f58914d04b92
作用:
- 改变函数的this, call() apply() bind()的第一个参数,将会成为调用函数的this
- 实现多重继承,但只能继承实例的属性和方法,不能完全继承原型上的属性和方法
异同 - 都是函数的方法
- 无法通过call apply 和 bind修改箭头函数的this(因为它本身没有this)
- apply() call()还可以调用函数,fn()与fn.apply()/fn.call()等效
- 而fn.bind()不能调用函数,fn()与
fn.bind() fn()
等效,所以用bind()指定this后别忘了调用函数或将返回值赋值给一个变量 - bind()返回一个新函数,不影响原来的函数。bind为返回的新函数绑定this和其他参数(绑定后不可修改)
- call()与apply()的区别就是第一个参数后的参数不同,call()后面的参数是单独用逗号隔开的,apply后面的参数是一个数组
- call("指定的this对象",参数1,参数2,参数3,···)
- apply("指定的this对象",arr) arr=[参数1,参数2,参数3,···]
let dog = { name: "旺财", eat(food1, food2) { console.log("我是" + this.name) console.log("我喜欢吃" + food1 + food2) } } let cat = { name: "喵喵" } //变量作为参数不需要加引号 dog.eat.apply(cat, ["鱼", "肉"]) dog.eat.call(cat, "鱼", "肉") let newFn = dog.eat.bind(cat, "鱼", "肉") newFn()
继承示例
function Animal(){ this.eat=function(){ console.log("吃东西") } } function Bird(){ this.fly=function(){ console.log("飞翔~"); } } function Cat(){ // 继承实例属性和方法 Animal.call(this) Bird.call(this) // Cat本身的属性和方法 this.say=function(){ console.log("喵呜~"); } } const cat=new Cat() cat.eat() cat.fly() cat.say()
本文作者:Code6E
本文链接:https://www.cnblogs.com/road2code/p/17074162.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步