首页 > 携程前端面经
头像
一条池子里的鱼
编辑于 2020-10-17 02:50
+ 关注

携程前端面经

五道题目
1.比较经典的,类似于
for(let i=0;i<10;i++){
    setTimeout(function(){
        console.log(i)
    },1000)
}
如何输出0 1 2 3...答的let,闭包,第三个参数
问为什么let可以输出这个,答的作用域,面试官让详细解释,我不知道是要怎么样详细解释
2.引用类型考察
let a={m:10,n:30}
let b=a;
let c=b;
b.m=20;
let d={...b}
c={n:40}

console.log(a.m) //20
console.log(a===b) //true
console.log(a===c) //false
console.log(b===d) //false(...运算符第一层深拷贝,如果某项还是引用类型会互相影响)
console.log(b===c) //false
3. 千分位补充逗号,且保留两位小数
let str='1234567'
function convertMoney(str){
    let strarr=str.split('.');
    let first=strarr[0];
    let second=strarr[1] || '00';
    let idx=0;
    let res=[]
    for(let i=first.length-1;i>=0;i--){
       idx++;
       res.unshift(first[i])
       if(idx %3==0){
          res.unshift(',')
       }
       console.log(res)
    }
    let results=res.join('')+'.'+ second;
    return results
}
console.log(convertMoney(str))
也可以用正则,网上的答案
let str='1234567'
function convertMoney(str){
    let reg=/\d{1,3}(?=(\d{3})+$)/g;
    let newarr=str.replace(reg,'$&,')
    return newarr
}
console.log(convertMoney(str))
4.按照index排序
采纳评论区大佬答案。。
let arr=[
    {value:'北京',index:'beijing'},
    {value:'上海',index:'shanghai'},
    {value:'北海道',index:'beihaidao'},
    {value:'日本',index:'ribeng'}
]

let newarr=arr.sort(function(a,b){
    if(a.index > b.index) {
        return 1
    } else if(a.index < b.index) {
        return -1
    } else {
        return 0
    }
})


5.把数字提取出来
平时做正则容易出错,比较怂还是用charCodeAt()了
let str='ahbc345lkiol876kkk67';
let res=[];
let temp=[];
for(let i=0;i<str.length;i++){
    if(str[i].charCodeAt()>='0'.charCodeAt() && str[i].charCodeAt()<='9'.charCodeAt() ){
        temp.push(str[i])
    }else{
        res.push(temp)
        temp=[]
    }
}
res.push(temp)
console.log(res.filter(item=>item!=0))
可以用正则
let str='ahbc345lkiol876kkk67';
let reg=/\d+/g
let newreg=str.match(reg)
console.log(newreg)

不太会搞这些,有错的或者有更好的方法欢迎大家指出来我学习一下
****************************
更新
二面,最近面试太忙可能和其它面试记混了,尽量还原
1.手写防抖节流
2.为什么不用es6写,es6转换原理
3.redux的流程
4.为什么redux数据管理框架可以和react这种UI框架结合起来(提示与provider和contexts有关)
5.手写一个简单的闭包
6.闭包概念,使用到闭包的例子说明
7.有没有看过源码
8.react-thunk
9.有没有用过ts
10.简单介绍一下webpack
11.简单说明loaders和plugin的不同
12.https传输的内容需不需要另外加密

没啥后续了,应该是挂了

迷惑,8月27一面,今儿都10月12了,来个三面链接?!!!!!!!


更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐