前段时间去了一家公司进行面试,由于太紧张,很多问题并没有解答出来,之后把这些问题归类总结一下
当进行两等比较时:会先检查两个操作数数据类型,如果相同则进行三等比较,如果不同则愿意为你进行一次类型转换,转换成相同类型后再进行比较,而三等比较时,如果类型不同,直接返回false。
比较过程:
1、 双等==:
null
,一个是undefined
,那么相等2、三等===:
isNaN()
来判断)。 true
,或是 false
,那么相等。null
,或是 undefined
,那么相等。添加:
1、push(element): 从数组添加,push方法返回数组的长度
2、unshift(element): 从头部添加
删除:
1、pop(): 从尾部弹出
2、shift(): 从头部弹出
splice:
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
1、splice(index,howmany,item1,.....,itemX)
index: 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX: 可选。向数组添加的新项目。
2、splice(起点, 长度)
: 删除
3、splice(起点, 长度, 添加元素)
: 插入
4、splice(起点, 长度, 替换元素)
: 替换
concat: concat(数组)
,连接数组
join: join('分隔符')
,生成字符串(字符串split)
sort: 排序
1、sort(): 只认字符串
2、sort(function() {}): 可对数字排序
初始化Promise,传入的函数会立即执行。
promise有三个状态,pending、resolved、rejected,promise的状态一旦有等待pedding变为resolved或rejected,那么当前的promise会被标记完成,后面则不会再次改变该状态。promise有 then 和 catch 两个方法, then(res, err)
有两个参数,但第二个参数是不会被用到的。catch(err)
用来处理异常
第一,reject是用来抛出异常的,catch是用来处理异常的;
第二:reject是Promise的方法,而then和catch是Promise实例的方法Promise.prototype.then
和 Promise.prototype.catch
。
then 的第二个参数和catch捕获错误信息的时候会就近原则,如果是promise内部报错,reject抛出错误后,then的第二个参数和catch方法都存在的情况下,只有then的第二个参数能捕获到,如果then的第二个参数不存在,则catch方法会捕获到。
async 是对promise的封装,async返回一个promise函数,await相当于promise的then,await后面报错会终止执行,可以用
try {
xxx();
} catch (err) {
console.log(err)
}
来捕获
必须先申明Async,不然await是不起作用的
存到localstorage里
当时这个问题没有回答出来,在工作和个人项目中并没有遇到类似的问题,所以没有学习到拦截器这个知识点,通过这次面试知道可以通过axios的拦截器来判断token。
有用过,父传子可以通过props来向子组件传值,子传父,无法向Vue的emit一样可以直接往父组件传值,需要在父组件写一个方法来实现,子传父这个问题由于当时太紧张没想起来
这里问的是css的margin纵向重叠,答案是15px
这个当时我回答的是,用七牛云作为图片服务器,网站中的图片使用七牛云加速访问,使用骨架屏在页面没加载完成显示,其实还能回答的更多,使用css雪碧图,压缩js代码,使用CDN,剔除重复的css和js等
只要您的客户存在使用不同浏览器(ie,firefox,chrome等)的可能,那你就不得不从完美的理想状态回到现实,因为不同核心的浏览器对CSS的解析效果呈现各异,导致您所期望的效果跟浏览器的“理解”效果有偏差
这个当时没怎么回答上,后面面试结束后,突然想到几点
1、使用css reset 重置HTML和css各个元素等在不同浏览器的默认属性值
2、被点击过后的超链接不再具有hover和active属性
// 解决办法:按lvha的顺序书写css样式:
":link": a标签还未被访问的状态;
":visited": a标签已被访问过的状态;
":hover": 鼠标悬停在a标签上的状态;
":active": a标签被鼠标按着时的状态;
我现在公司的项目和自己的并没有要兼容IE浏览器,所以很多关于低版本的IE兼容性问题并没有遇到过
这个项目我用的是织梦的后台管理系统搭建的,但是织梦并没有短信服务平台的插件,所以我对接了阿里云的短信验证平台,我用的是阿里云的阿里大于的短信接口,随机了四位数字作为验证码,我当时在数据库新建了一个张表,用来存接收下来的验证码及发送时间,前端获取到后和输入框里的验证码进行比对,正确后返回登录成功,失败显示验证码输入错误的提示信息