前端面经每日一题day05
不知不觉已经第五天了,
面经题是在这个网站里面的找的 前端常见面试题总结 – 大厂面试每日一题
感兴趣可以看这网站。
如何在url
里面传递数组
首先我们需要知道的就是URL的key是可以重复的。下面是几种方式
a=3&a=4&a=5
a=3,4,5
a[]=3&a[]=4&a[]=5
a[0]=3&a[1]=4&a[2]=5
然后我们需要后端写一个querystring.parse
来对 上述的特定的数组格式解析。
Array(100).map(x => 1) 结果是多少
我们知道Array(100)会创建一个稀疏数组,map方法会跳过稀疏数组的空元素不操作,所以说不会遍历它的每一个元素赋值为1,结果还是一个空数组。
如何生成100个元素为1的数组呢?
Array.from
Array.from(Array(100),(x)=>1)
补充:我们知道Array.from的一个作用就是可以把类数组转化为数组,除此之外还有创建一个数组并且给元素相同的值,还可以把一个字符串转化为数组。如下所示
//把字符串转化为数组
let str='hello'
let arrstr=Array.from(str)
console.log(arrstr) // ['h', 'e', 'l', 'l', 'o']
//创建数组并赋值
let arr=Array.from({length:5},(item,index)=>index+1)
let arr1=Array.from(Array(5),(item,index)=>index+1)
console.log(arr,arr1) //[1, 2, 3, 4, 5]
fill
Array(100).fill(1)
补充:fill,是Array原型的一个方法,作用:将数组从起始到结束位置的值替换成指定值。直接修改数组
let arr=[1,2,3,4]
arr.fill(100,1,3) //不包括3,左闭右开
console.log(arr) //[1,100,100,4]
什么是可选链操作符
即?.
允许我们安全的访问深层嵌套的对象属性,而不必验证每一层是否存在。如下
const obj={a:[1,2],b:(){}}
//访问数组
obj?.a?.[1]
//访问方法
obj?.b?.()