深圳市XX科技前端开发面试

面试时间: 2020年12月15日下午3.00点-3.30点
面试形式: 语音面试(一面)

  1. 自我介绍
    参考模板:
    你好,我是XX,毕业于XX大学。现就职于XX公司,有X年开发经验,公司主要使用技术栈为React+AntDesign+Redux进行开发

  2. ES6新特性
    const 和let
    箭头函数
    函数的参数默认值
    对象和数组的结构
    模板的导入和导出
    模板字符串

  3. const和let不同

区别constlet
变量还是常量常量变量
初始化一旦声明,必须进行初始, 否则报错不必须
修改不可修改值和类型可以修改
保存复合数据类型保存的是内存,可以添加属性,修改值,但是内存不能修改
  1. 使用闭包需要注意什么?
    闭包三个特性:函数嵌套函数;内部函数使用外部函数的参数和变量;参数和变量不会被垃圾回收机制回收
    缺点:常驻内存,增加内存使用量;使用不当造成内存泄露。使用时注意不用的变量要及时清理掉。

  2. 使用箭头函数时需要注意什么
    箭头函数没有this,需要通过查找作用域来确定this的值,意味着,如果箭头函数被非箭头函数包含,this绑定的就是最近一层非箭头函数的this
    箭头函数没有arguments对象,但可以访问外围函数的arguments对象
    不能通过new关键字调用,同样没有new.target和原型

  3. this指向
    默认绑定(非严格模式下,this指向全局对象,严格模式下,this指向undefined)
    隐式指向(函数引用有上下文对象时,比如obj.foo(), foo内的指向指向obj)
    显示指向(通过call,apply直接指定this绑定对象)
    new指向
    箭头函数绑定(this的指向由外层作用域决定)

  4. ES6模块导入和导出理解
    ES6模块的设计思想:尽量静态化,使得编译时能确认依赖关系
    模块功能组成:import(输入其他模块提供的功能) export(规定模块的对外接口)
    export:
    输出的变量或者函数都有自己的名字,可以重命名
    不能放在代码块内,否则报错
    import:
    导入的值只读,不能修改输入的接口
    import from 后可以跟绝对路径或者相对路径
    js模块导入可以省略文件后缀名.js
    整体加载用*
    export default:
    export default只能使用一次,export可以使用多次
    export 和 export default可以一起使用

  5. CSS3写一个div水平居中
    text-align: center; margin: 0 auto;

  6. 异步请求方法
    Promise , async/await
    Promise:
    对象状态不受外部影响,有三种状态,pending进行中,resolved已成功,rejected已失败。只有异步操作的结果才能决定是哪种状态
    一旦状态改变,就不会在变,状态改变只有两种: pending到resolved,pending到rejected
    async/await:
    async是generator函数的语法糖
    await后面接一个promise返回并执行(await放在try catch中接受promise的rejected状态)
    优点:方便级联调用,同步代码编写方式

  7. MVVM理解
    MVVM指的是modal view viewmodal
    modal代表数据模型,数据和业务逻辑在此定义
    view ui视图,负责数据的展示
    viewmodal与view对应的modal
    modal和view并未直接关联,通过vm来关联的,modal和vm之间有双向数据绑定的关系,因此model数据改变时,触发view的页面更新,view中由于用户操作导致数据变化会更新到modal中
    简单来说,vm是model和view的链接器,view和modal通过vm实现双向数据绑定
    体现在react: 单向数据流,本身只是一个函数ui = render(data) 加上状态管理,实现MVVM
    对应关系:
    modal:对应组件方法或者生命周期函数中实现的业务逻辑和this.state保存的本地数据
    vm:对应组件中jxs,就是虚拟dom的语法糖,react负责维护虚拟dom和进行diff算法,react-dom将虚拟dom渲染成真是dom
    view:对应框架在浏览器中基于虚拟dom生成真实DOM(不需要手写)及css
    绑定器:对应jsx中绑定命令和数据 {this.props.XXX}

  8. ES6中forEach, for…of , for…in区别

区别for…infor…offorEach
Object可用,包含原型链属性可用,
Array可用,不能保证遍历顺序,且会遍历出自定义属性可用,item为数组每一项的值,可用,
Set可用,可用,
Map可用,可用,
版本ES5ES6, 注意兼容性JS
得到结果对象的key,数组的下标
总结遍历(当前对象及其原型上)每一个属性名称遍历(当前对象上)每一个属性值
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值