大三 百度前端实习一面

今天接到了百度的电话面试,面了将近40分钟。。。。赶紧记录一下

JS

1.JavaScript的数据类型

  • String
  • Number
  • Boolean
  • Null
  • Undefined
  • Object

2.this是怎么绑定的

- 在全局中,this指向全局对象
- 在函数中,1.简单调用指向全局对象,如果在严格模式下没有被执行环境定义就是undefined。2.用call/apply绑定对象传入的值会隐式转换成对象,this会从一个环境传到另一个环境;3.用bind()时,创建一个新的函数,新函数的this被指定为bind()的第一个参数,其余参数作为新函数的参数。4.箭头函数自动绑定
- 作为对象的方法,调用时指向调用该函数的对象,this绑定只受最靠近的成员引用的影响
- 构造函数,绑定到正在构造的新对象

3.cookie和session的区别
cookie用于客户端存储数据,有Domain、Path属性(标识哪一个网站发给浏览器的)Expires/MaxAge(标识生命周期)如果不设置生命周期就只有浏览器会话期间。cookie不保存在
session是服务器存储数据,类似于hashTable结构,默认20分钟服务器就会销毁这个hashTable,也可以使用数据库将HashTable序列化后保存起来,但随着时间增加,这个数据库会极速膨胀。

4.Web有哪些存储方式

  • localStorage
  • sessionStorage
  • globalStorage

另外还有cookie用于客户端存储,userData(IE持久化数据)
5.HTTP有哪些状态

6.浏览器的事件流
事件冒泡:从具体的元素开始向上传播,IE9、Firefox、Chrome、Safari会冒泡到window对象
事件捕获:在事件到达目标前捕获 从document开始逐级捕获到具体元素 ,不经常使用
DOM事件流

  • 事件捕获阶段 event.eventPhase==1

  • 处于目标阶段 event.eventPhase==2

  • 事件冒泡阶段 event.eventPhase==3

7.Promise有哪些API

  • then() catch()
  • Promise.resolve()
  • Promise.rejected()
  • Promise.all() Promise.race()

8.作用域

 var obj={ 
   name:'obj',
   showName:function(){
     console.log(this.name)
     }
   };
 var f=obj.showName;
 f()

输出是什么?
undefined

ES6k

1.let和const的区别

  • 二者都有块作用域、暂时性死区
  • 二者都不会变量提升
  • const是常量,不能改变它的字面量,但是如果是引用类型可以对成员进行操作。

2.es6新增的数据类型

  • Symbol
  • Set(在实践中有什么好处)
  • Map

3.还有哪些经常用的es6新特性

  • 数组解构
  • 对象解构

脑子抽了被提醒了才想起来。。。

React
1.React的生命周期?分别有哪些方法?作用是什么

  • 装载过程 Mount
    constructor:在创建组件类的实例时调用相应的构造函数。无状态的React组件不需要定义构造函数
    getInitialState和getDefaultProps:
    getInitialState的返回值用来初始化组件的this.state,但是只有在React.createClass方法创造的组件类才用;
    getDefaultProps的返回值作为props的初始值,只有在React.createClass方法创造的组件类才有用;
    render:返回一个jsx描述的结构,由React完成渲染。
    componentWillMount和componentDidMount
    分别在render函数调用之前和之后被调用。

  • 更新过程 Update
    componentWillReceiveProps(nextProps)
    只要是父组件的 render 函数被调用,在 render 函数里面被谊染的子组件就会经历更新过 程,不管父组件传给子组件的 props 有没有改变,都会触发子组件的 componentWillReceiveProps 函数
    **shouldComponentUpdate(nextProps, nextState) **:
    render 函数决定了该渲染什么, shouldComponentUpdate 决定了一个组件什么时候不需要渲染。更新过程中, React 库首先调用 shouldComponentUpdate 函数,如果返回 true,那就会继续更新过程,接下来调用 render 函数;如果 false,就 立刻停止更新过程,不会引发后续的渲染
    componentWillUpdate、 componentDidUpdate
    shouldComponentUpdate 函数返回 true, React 接下来就会依次调用对应 组件的 componentWillUpdate、 render 和 componentDidUpdate 。

  • 卸载过程 Unmount
    componentWillUnmount
    在组件卸载之前执行的方法,可以清理DOM元素。

还问了我componentWillUNmount时除了清理DOM元素,还可以做什么事,这个我没回答上来。

2.什么时候会触发React的组件渲染?

HTML

h5的新特性?

  • <canvas>

表单

  • <datalist> 选项列表

  • <keygen>用于表单的密钥对生成器字段

  • <output> 定义不同类型的输出,如脚本

多媒体

  • <audio>
  • <video>
  • <source>
  • <embed>
  • <track>

语义和结构方面的

  • <article>
  • <aside>
  • <nav>

CSS

1.盒模型
这个没回答上。。CSS基础太差了

2.有哪些定位

  • relative
  • absolute
  • inherit
  • fixed
  • static

项目

简单介绍一下自己的项目?
大概介绍了一下项目是干什么的,技术栈是什么,自己做了什么事。。遇到的困难和解决方法。。为什么项目用的React,是怎么决定的。。

项目中遇到了哪些困难,怎么解决的?

他最后又问了一下这个问题,回答得不好,给自己挖坑了。。。。

总结:
面试官特温柔,最后问他我还需要深入了解什么,他说我React框架大体掌握的不错,一些细节还需要多了解一下,源码和文档也可以多看看。。
另外,网络这一块比较薄弱,还需要多了解一下。。
JS基础也还不错,但是在以后也是需要不断复习的。。。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值