大概是6月11号,直接在Boss投简历,6月12号中午接到电话预约面试。一开始说是13号晚上7点;时间可能晚了有变化,中午来电话说改到9点到10点;怎么说呢,我是第一次面试我的目标公司,有没有通过,记录一下,是很宝贵的经验。(采访时间:2018-6-12晚上:9.00;时长:1小时11分;公司:6666,(一))(一)简介自我介绍其实很简单。.....(2)你平时是怎么学习前端的?me:学习前端,我主要是看书,然后是网站视频、博客、文档等学习理论,再通过代码实践。..H:前端的学习,一般都要经过实践。你自己做过项目吗?me:如果学习js基础阶段,主要是实现一些基本的特效和模块功能;当你在学习jQuery的时候,你做过一(3)个你做过的项目,讲过你在使用JQuery阶段的主要工作,做过一个比较简单的商场;接触React的时候,最近的项目是一个完全用React全家桶搭建的二手商场;主要工作是负责前端的大部分工作,包括界面规划、Terminal前后交互等;估计是一面之词,后面没有深入的问项目,直接转入实习经历。(4)看到你在淘宝艺术的实习经历,说说你在深圳一家小电商实习的经历吧。主要工作包括一些简单的PS图片处理;以及店铺美工优化的代码,因为淘宝和阿里平台的店铺装修都可以通过代码来写;但是会有相应的使用限制(简单说说你的日常工作)(五)React组件的创建方法和区别本质上是一个类,创建方法可以说使用了三种形式:React.createClass:这是最传统和最兼容的方法。与其他ES6创建方式相比,代码量太多;ES6类创建:React.Component用于创建ES6形式的React组件,目前React强烈推荐创建有状态组件,最终会替代React.createClass;相比React.createClass,可以更好的实现代码复用;无状态组件(直接函数定义):只传入props和context两个参数;没有状态,也没有生命周期;优缺点就不细说了,这里科普一下:1.Stateless函数式组件没有state组件的创建形式,为了让代码更易读,减少了很多冗余代码,简化为只有一个render方法,大大增强了编写组件的便利性。无状态组件不会像其他两个一样的方法在被调用时会创建一个新的实例;它在创建时始终维护一个实例,避免不必要的检测和内存分配,并进行内部优化;组件无法访问此对象。无状态组件没有实例化过程,因此组件中的对象this是无法访问的,例如:this.state等是无法访问的。组件无法访问生命周期方法2.React.createClass创建实例化的有状态组件,可以访问组件生命周期方法。一般需要管理组件的内部状态,使用生命周期的方法或者执行这个绑定来创建这种形式的组件。3.React.createClass和React.Component函数的区别在于,这个自绑定组件是由React.createClass创建的,这个组件的每个成员函数都被React自动绑定;React.Component创建的组件,其成员函数不会自动绑定要设置这个,需要开发者手动绑定绑定,否则this无法获取到当前组件实例对象。组件属性类型propTypes及其默认的props和state属性配置是不同的return{name:'li'}}render(){return
{this.props.name}
}})//VSclassItemComponentextendsReact.Component{staticpropTypes={name:PropTypes.string}复制代码;staticdefaultProps={name:''};constructor(props){super(props)this.state={isLogin:false}}render(){return
{this.props.name}
}}(六)说说React的生命周期.面试的时候React好像总会问到生命周期的问题。以前有人问过我。React的生命周期详解。?答:不一定。问题:为什么?回答:。...(当时没想过为什么?但是问了之后肯定有坑。)落落回答了一点概念;answer:React只是在调用render方法后构建了一个虚拟DOM,然后会经过Diff算法的reconciliation过程。创建最小差异树,然后通过最少的DOM操作将其构建成真实的DOM;渲染阻塞;这些过程只能由React内部控制。(8)问个简单的CSS基础,说说相对布局和绝对布局恩恩,好~不骗人,返回拼接数组;filter():接收一个函数作为参数,对数组中的每个元素执行该函数,并返回一个数组,该数组的元素在函数执行时返回true。map:返回函数执行后形成的数组;减少:累加器;slice()方法将从头到尾(不包括尾部)选择的一部分数组的浅拷贝返回给一个新的数组对象。elements执行提供的函数join()方法将数组(或类数组对象)的所有元素连接成一个字符串并返回该字符串。会改变原数组pop()删除尾元素并返回删除的元素;push()添加尾元素并返回数组的长度;shift()删除头部元素并返回删除的元素;unshift()添加网络头部的元素并返回Length;splice()增删改查(十)如何理解同源策略?同源限制主要是为了安全。如果没有同源限制,可以任意读取浏览器中的cookie等其他数据,可以任意操作不同域下的DOM,可以任意请求Ajax,存在严重的安全隐患;为了保护不同站点和用户的隐私和安全,浏览器制定了同源策略;所谓同源,就是协议、域名、端口号完全相同;一般情况下,JSONP(只支持GET请求)和跨域资源共享CORS(通过在服务器端设置Access-Control-Allow-Origin),在服务器端设置代理请求:服务器端不受same-限制originpolicy(11)浏览器向服务器发送请求的请求方式有哪些1)GET:获取数据(2)POST:提交数据(3)HEAD:请求头信息(4)PUT:上传一个文档到theserver(5)DELETE:删除远程服务器上的一个文件(6)OPTION(十二)你说你经常用get和post请求,说说发送请求数的区别,get发送一个TCP包,post二;从服务器获取请求数据,URL后数据相对不安全,post发送数据更安全;post数据传输的大小比get大;但两者都会有限制(浏览器和服务器都会限制)(13)状态码方面,301和302有什么区别?临时重定向;a永久重定向(十三)简单说一下在浏览器中输入一个RUL却显示页面的整个过程?(13)问一些简单的算法,就说说你知道的排序算法吧?冒泡排序选择排序插入排序归并排序快速排序(14)对于你的值(十进制)如何快速知道它在二进制中有多少个1,直接转二进制就知道了?解决?????耐心给我解释一下。当时有点明白,现在再研究一下(15)给你一块方块蛋糕,在中间任意位置挖出一个小方块,如何用一把刀把它切成相等的两半呢,不算太难,想想………………………………整个过程对CSS和Js没怎么问,感觉主要是framework,network,algorithm;和之前的面试题相比,题目不多,但是涉及面很多。我倾向于要求练习;然后面试官人很好,会指出不同点或者不足,一周左右解释结果,er~但是数据结构薄弱,补上弥补!过去大概能想到这么多经典的JavaScript面试题