今天给各位分享前端面试题2021及答案下载的知识,其中也会对前端面试题库及答案进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
2021年我没答上或高频的前端面试题汇总
1.原生实现setstate
2.数据结构
3.react为什么是棵树
4.JSON深拷贝的优化
5.setState在setTimeout里面怎么才能批量更新
6.UseEffect的理解
7.UseMemo的作用
8.Promise怎么取消
9.Taro兼容问题
10.intenseOf检查数据类型有什么问题
11.hooks组件的优缺点
12.class组件的优缺点
13.HOC组件的优缺点
14.Constructor是如何实现Class的
15.react-dom是什么
16.react-redux的connect实现原理
17.redux的原理
18.redux和mobx的区别
19.redux和storage的区别
20.html5新增
21.css3新增
22.antd4较antd3的优化
23.antd3缺陷
24.优化webpack的编译
25.微前端
26.loader执行顺序
27.服务端渲染机制以及服务端渲染与客户端渲染的区别
28.chrome升级之后的兼容问题
29.Taro如何实现多端适配的
30.如何处理物理像素和逻辑像素比
31.事件循环过程
32.事件派发在什么时候
31.每次宏任务执行都会重绘吗
32.编写一个优秀的函数需要注意些什么
33.讲讲cicd
34.Object.observe是浅拷贝还是深拷贝
35.Taro的优缺点
36.Promise.resolve().then(123)返回结果
37.存储机制
38.css module
39.web worker和server worker
40.性能优化
41.css和html也遵循事件循环吗
42.懒加载原理
43.节流和防抖
前端面试题2021(JS篇(上))
(水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数。水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身 例如: 1~3 + 5~3 + 3~3 =153)
(质数就是在大于1的自然数中,除了1和它本身以外不在有其他因数的自然数)
a:11,b:10
A [] B [""] C [undefined] D [null]
A ['false'] B [false] C[0] D[]
A null B undefined C “hello” D“world”
A "llowo" B "llow" C "llo" D null
A "llowo" B "llow" C "llo" D null
A getYear()
B getMonth()
C getDay()
DgetDate()
A 基于对象
B 移动端优先
C 事件驱动
D 跨平台
A String
B Float
C Number
D Null
A 任意单个字符
B 任意单个字母
C 任意单个字母、数字、下划线
D 任意单个字母、数学、下划线、$符号
A javascript
B script
C scripting
D js
A var s = 'heloe'
B var n = 20
C var x = document.getElementsByTagName('box')
D var y = document.querySelectorAll('ul li')
A document.createElement
B document.createTextNode
C document.getElementById
B document.querySelector
A ele.innerText
B ele.innerHTML
C ele.textContent
D ele.htmlContent
插入排序的算法描述的是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到对应位置并插入
A.对数组里数据的排序可以用sort函数,如果排序效果非预期,可以给sort函数加一个排序的参数
B.reverse用于对数组数据的倒序排列
C.向数组的最后位置加一个新元素,可以用pop方法
D.unshift方法用于向数组删除第一个元素
A.window.status = "已经选中该文本框"
B.document.status = '已经选中该文本框'
C.window.screen = '已经选中该文本框'
D.document.screen = '已经选中该文本框'
A input type="button" value="new" onclick="open('new.html','_blank')" /
B. input type="button" value="new" onclick="window.location = 'new.html'" /
C.input type="button" value="new " onclick = "location.assign('new.html)"
D. form target = "_blank" action="new.html"
input type="submit" value="new" /
/form
A.script type="text/javascript"document.write(h1hello/h1)/script
B.script type="text/javascript"document.write("h1hello/h1")/script
C.script type="text/javascript"h1hello/h1/script
D.h1script type="text/javascript"document.write("hello")/script/h1
以下说法中正确的是(AD)
A.在页面的第二个文本框中输入内容后,当目标离开第二个文本框时,第一个文本框的内容不变
B.在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,将在第二个文本框中复制第一个文本框的内容
C.在页面的第二个文本框中输入内容后,当鼠标离开第二个文本框时候,将在第一个文本框中复制第二个文本框的内容
D.在页面的第一个文本框中输入内容后,当鼠标离开第一个文本框时,第二个文本框的内容不变
前端面试题2021(ES6篇)
A function fn(name,...args) {...}
B function fn(...args) {...}
C function fn(...args,name) {...}
D function fn(...name,...args) {...}
A class Person() {}
B class Person {}
C function Person() {}
D function Person{}
A 类型中的构造函数,用来在创建对象的同时初始化对象属性
B 创建指定类型的对象时,会自动调用执行
C 类型中的构造函数,需要手工调用执行
D 类型中的普通函数,需要手工调用执行
A let fn() = () - console.log('hello')
B let fn() = () = console.log('hello')
C let fn() = name - console.log('hello')
D let fn() = () = console.log('hello')
A let fn = name,age = console.log(name,log)
B let fn = (name,age) = console.log(name,log)
C let fn = name,age = {console.log(name,log)}
D let fn = (name,age) = {console.log(name,log)}
A let fn = (x,y) = {x++;y++;return x+y;}
B let fn = (x,y) = {x++;y++; x+y;}
C let fn = (x,y) = return x+y
D let fn = (x,y) = x+y
A 类表示类型的意思
B 对象是包含数据的、实际存在的物体
C 一个类型只能创建一个对象
D 多个对象可以属于一个类型
A 静态属性是声明在类型内部,类型方法外部的,使用let声明的变量
B 静态属性是声明在类型内部,类型方法外部的,使用static声明的变量
C 静态属性是属于类型的属性,所以只能被类型名称调用
D 静态属性是属于类型的属性,所以可以被类型名称和该类型创建的所有对象调用
A function fn(name) {name = name || 'default',...}
B function fn(name) {name = "default";...}
C function fn(name="default") {...}
D let funtion = (name = 'default') = {...}
A class Student extends Person {...}
B class Student(Person) {...}
C class Student extends Person() {...}
D class Student extends Person,Job{...}
2021前端面试题-JS篇
```
当查找一个对象的某个属性时,会先从它自身的属性上查找,
如果找不到的话会从它的_proto_属性上查找,就是这个构造函数的prototype属性,
如果还没找到就会继续在_proto_上查找,直到最顶层,找不到则为undefined,
像这样一层一层去查找形成一个链式的称为原型链
```
new一个函数,中间发生了什么
1.开辟一个内存空间,也就是创建一个空对象,obj={}或obj=new Object()
2.将这个新对象的_proto_属性指向它构造函数的prototype
3.将构造函数this绑定为这个新对象,在空对象上挂在属性和方法(call或apply方式)
4.返回这个新对象
相同:都是改变函数上下文this指向
不同:bind返回的是一个函数,不会立即执行
传参的不同 apply第二个参数为数组形式
call apply都是对函数的直接调用
1.作为普通函数直接调用,this指向window
2.作为对象方法去调用的话,this指向调用它的这个对象
3.箭头函数,没有this,this取决于外层离它最近的非箭头函数的this
4.构造函数的this,指向创建这个构造函数的实例对象
1.词法作用域(静态作用域)
js采用的就是词法作用域
只有函数可以限定作用域
函数允许函数访问外层作用域的变量
函数在定义的时候决定了函数作用域,词法作用域关心函数在何处被定义
2.动态作用域
函数在调用的时候决定了函数作用域,动态作用域关心函数在何处被调用
变量取值会到创建这个变量的函数作用域中去查找,如果找不到会向上查找,直到查找到全局作用域,这就形成了一个作用域链
1.节流
2.防抖
1.原型链继承
2.构造函数继承
3.组合继承(原型链继承+构造函数继承)
4.原型式继承
5.寄生继承
6.组合寄生继承
定义在一个函数内部的函数,这个内部函数有权访问外部函数作用域的变量
优点:
缺点:
js在运行中的任务,有一套收集,排队,执行的特殊机制,这种机制就是事件循环
遇到同步事件直接执行,遇到异步事件分为宏任务和微任务
如果微任务列表里有任务,先执行微任务再执行宏任务
块级作用域 暂时性死区 能否被修改
没有this call apply方法修改this无效
没有prototype属性
没有argument
不能使用new 不能用作构造函数,会报错
持续更新中.......
前端面试题2021及答案下载的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于前端面试题库及答案、前端面试题2021及答案下载的信息别忘了在本站进行查找喔。
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » 前端面试题2021及答案下载(前端面试题库及答案)