js面试题系列,不断更新中,力争为广大前端就业者更好的应对面试,也增长本身做为一名前端的技术常识。javascript
一、建立一个空对象,而且 this 变量引用该对象,同时还继承了该函数的原型。css
二、属性和方法被加入到 this 引用的对象中。前端
三、新建立的对象由 this 所引用,而且最后隐式的返回 this 。java
var obj = {};
obj.__proto__ = Base.prototype;
Base.call(obj);
复制代码
1 defer(等dom加载以后加载)和async(异步加载),仅能够在支持的浏览器进行使用面试
2 动态建立DOM方式(建立script,插入到DOM中,加载完毕后callBack浏览器
3 按需异步载入js安全
内存泄漏指任何对象在您再也不拥有或须要它以后仍然存在。 垃圾回收器按期扫描对象,并计算引用了每一个对象的其余对象的数量。若是一个对象的引用数量为 0(没有其余对象引用过该对象),或对该对象的唯一引用是循环的,那么该对象的内存便可回收。 setTimeout 的第一个参数使用字符串而非函数的话,会引起内存泄漏。 闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)bash
1,工厂模式服务器
2,构造函数模式闭包
3,原型模式
4,混合构造函数和原型模式
5,动态原型模式
6,寄生构造函数模式
7,稳妥构造函数模式
1,原型链继承
2,借用构造函数继承
3,组合继承(原型+借用构造)
4,原型式继承
5,寄生式继承
6,寄生组合式继承
CommonJS是服务器端模块的规范,Node.js采用了这个规范。CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操做。AMD规范则是非同步加载模块,容许指定回调函数。 AMD推荐的风格经过返回一个对象作为模块对象,CommonJS的风格经过对module.exports或exports的属性赋值来达到暴露模块对象的目的
Angular它采用双向绑定(data-binding):View的变更,自动反映在 ViewModel,反之亦然。核心就是viewModel的设定,能够实现响应的数据变化 组成部分Model、View、ViewModel View:UI界面 ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model; Model:数据访问层
事件代理(Event Delegation),又称之为事件委托。是 JavaScript 中经常使用绑定事件的经常使用技巧。顾名思义,“事件代理”便是把本来须要绑定的事件委托给父元素,让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。使用事件代理的好处是能够提升性能。
js的执行引擎和渲染引擎是同步的,因此在js代码执行操做的时候渲染的部分不会发生变化,在操做完全部的样式以后才会在页面上进行样式的渲染。这也是为何若是有js代码的下载和执行会阻塞页面的渲染的缘由。