没有合适的资源?快使用搜索试试~ 我知道了~
前端57道面试题及答案.docx
资源推荐
资源详情
资源评论
var、let、const之间的区别
1、var声明变量可以重复声明,而let不可以重复声明
2、var是不受限于块级的,而let是受限于块级
3、var会与window相映射(会挂一个属性),而let不与window相映射
4、var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
5、const声明之后必须赋值,否则会报错。
6、const定义不可变的量,改变了就会报错
7、const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错
解构赋值
数组解构
let [a,b,c] = [1,2,3] //a=1,b=2,c=3
let [d,[e],f]=[1,[2],3] //嵌套数组解构d=1,e=2,f=3
let [g,…h]=[1,2,3] //数组拆分g=1,h=[2,3]
let [i,,j]=[1,2,3] //不连续解构i=1,j=3
let [k,l]=[1,2,3] //不完全解构k=1,l=2
对象解构
let {a,b} ={a:'aaaa',b:'bbbb'} //a='aaaa'b='bbbb'
let obj ={d:'aaaa',e:{f:'bbbb'}}
let {d,e:{f}}=obj //嵌套解构d='aaaa'f='bbbb'
let g;
(g={g:'aaaa'}) //以声明变量解构g='aaaa'
let [h,i,j,k]='nice' //字符串解构h='n'i='i'j='c'k='e'
函数参数的定义
一般我们在定义函数的时候,如果函数有多个参数时,在es5语法中函数调用时参数必须——对应,否则
就会出现赋值错误的情况,来看一个例子:
function personInfo(name,age,address,gender){console.
log(name,age,address,gender)
]
personInfo('williamsha','man')
上面这个例子在对用户信息的时候需要传递四个参数,且需要一一对应,这样就会极易出现参数顺序传错
的情况,从而导致bug,接下来来看es6解构赋值是怎么解决这个问题的:
function personInfo({name,age,address,gender}){
console. log(name,age,address,gender)
}
personInfo({gender:'man',address:'changsha',name:'williams',age:18})
这么写我们只知道要传声明参数就行来,不需要知道参数的顺序也没关系
交换变量的值
在es5中我们需要交换两个变量的值需要借助临时变量的帮助,来看一个例子:
var a=1,b=2,c
C = a
a = b
b = c
console. log(a,b)
来看es6怎么实现:
let a=1,b=2;
[b,a] = [a,b]
console. log(a,b)
是不是比es5的写法更加方便呢
函数默认参数
在日常开发中,经常会有这种情况:函数的参数需要默认值,如果没有默认值在使用的时候就会报错,来看es5
中是怎么做的:
function savelnfo(name,age,address,gender){
name=name ||'williams'
age= age ||18
address =address ||'changsha'
gender=gender ||'man'
console. log(name,age,address,gender)
﹚
saveInfo()
在函数离main先对参数做一个默认值赋值,然后再使用避免使用的过程中报错,
function savelnfo({name='williams',age=18,address='changsha',gender='man'}={}){
console. log(name,age,address,gender)
﹞
saveInfo()
在函数定义的时候就定义了默认参数,这样就免了后面给参数赋值默认值的过程,是不是看起来简单多了
forEach、for in、for of三者区别
1、forEach更多的用来遍历数
2、for in一般常用来遍历对象或 json
3、for of数组对象都可以遍历,遍历对象需要通过和Object. keys()
4. for in循环出的是key,for of循环出的是value
2、不能够使用arguments对象
再来看es6中的使用的方法:
使用箭头函数应注意什么?
1、用了箭头函数,this就不是指向window,而是父级(指向是可变的)
3、不能用作构造函数,这就是说不能够使用new命令,否则会抛出一个错误
4、不可以使用yield命令,因此箭头函数不能用作Generator 函数
Set、Map的区别
应用场景Set用于数据重组,Map用于数据储存
Set:
1、成员不能重复
2、只有键值没有键名,类似数组
3、可以遍历,方法有add,delete,has
Map:
1✔本质上是健值对的集合,类似集合
2、可以遍历,可以跟各种数据格式转换
promise对象的用法,手写一个promise
promise是一个构造函数,下面是一个简单实例
var promise =new Promise((resolve,reject)=>{
if(操作成功){
resolve(value)
}else {
reject(error)
剩余39页未读,继续阅读
资源评论
苹果牛顿吃
- 粉丝: 19
- 资源: 2791
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功