对象的创建方式有哪些:
1 字面量
2 构造函数模式
3 工厂模式
4 原型模式
5 创建实例模式;
jsonp和ajax的优缺点;
如何对网站的内容和资源进行优化:
1 图片压缩
2 文件压缩
3 使用cdn托管
4 使用缓存
5 meta标签优化
6 反向链接 网站外链优化;
jQuery的几种选择器
1 层叠原则器;
2 基本过滤选择器
3 内容过滤选择器
4 可视化过滤选择器
5 属性过滤选择器
6 子元素过滤选择器
7 表单元素过滤选择器
8id 类 类型 元素
几条JavaScript的基本规范
1 不要在同一行声明多个变量
2 使用对象字面量代替newArray这种形式
3 使用===/!==来比较true/false 或者数值;
4 不要使用全局函数
5 switch语句必须带有defalt分支;
6 函数应该有返回值
7 for循环必须使用大括号
8 if语句必须使用大括号;
9 for in 循环中应该使用var关键字明确限定作用域从而避免作用域污染
react的生命周期
1 初始阶段
getDefaultProps
getInitialState
componentWillMount
render
componentDidMount
2运行阶段
componentWillReceiveProps
componentWillUpdate
shouldComponentUpdate
render
componentDidUpdate
3销毁阶段
componentDidUnmount
虚拟DOM
虚拟DOM相当于在js和真是的DOM之间加了一个缓存,利用dom diff算法避免了没有必要的dom操作,从而提高了性能;
具体实现的步骤;
1 用JavaScript对象结构表示DOM树的结构然后利用这个树构建一个真正的DOM树,插到文档当中
2 当状态改变的时候,重新构造一棵新的对橡树,然后利用新的树和旧的树进行比较,记录两颗树的差异;
3 把状态改变的额时候进行记录的差异的树应用到步骤一中所构建的真正的树上,视图就更新了;
diff算法:
1 把树形结构按照层级分解,只比较同级元素;
2给列表结构每个单元添加唯一的key属性方便比较;
3React只会匹配相同的class(组件名)的component
4合并操作,调用component的setState方法的时候。每一个时间循环结束 React重新绘制
5选择性子树渲染 开发人员可以重写shouldComponentUpdate提高diff的性能
jQuery源码中指的借鉴的
1 使用模块化思想,模块之间保持独立,不会导致多个开发人员合作时产生的冲突。
2 在设计程序时,要结构清晰,高内聚低耦合。
3 利用多态的方式,实现发法的重载,提高代码的复用率
4 jQuery的链式调用以及回溯
5jQuery.fn.extend与jQuery.extend方法实现扩展静态方法或实例方法;
懒加载的原理:
意义:;懒加载的主要目的是作为服务器前端的优化,减少请求次数或延迟请求数。
实现原理: 先加载一部分数据,当触发某个条件时利用异步加载剩余的数据,新得到的数据不 响原有数据的显示同时最大程度上减少服务器端的资源消耗。
实现方式:
1第一种是纯粹的延迟加载,使用setTimeOut或setInterval进行加载延迟
2第二种是条件加载 符合某些条件,或触发了某些事件才开始进行异步加载。
3第三种是可是区加载,即仅加载用户可以看到的区域,这个主要由监控滚动条来实现,一般会在距用户看到某个图片前一段距离便开始加载,这样能保证用户下拉正好能看到图片。