个人面试整理参考
这一篇呢比较杂乱 前面编号的是我自己整理的答案可能不是很准确,题目是朋友同学面试后整理的
然后下边的是W3Cfuncs 上面整理的一片博客(好像找不到了,汗(⊙﹏⊙)b),我面试的时候也起到了一定的作用。
转载请注明地址
谢谢
1、js的typeof返回哪些数据类型
其中js是阻塞式的加载,浏览器在加载js时,当浏览器在执行js代码时,不会做其他的事情,即的每次出现都会让页面等待脚本的解析和执行,js代码执行后,才会继续渲染页面。新一代浏览器虽然支持并行下载。但是js下载仍会阻塞其他资源的下载(比如图片)。所以应该把js放到页面的底部。
===js的优化:
1.要使用高效的选择器。
2.将选择器保存为局部变量
3.先操作再显示
====跨域:
协议,域名,端口号有一个不同就被称为跨域
====http与https:
====prototype与__proto__
(http://www.cnblogs.com/snandy/archive/2012/09/01/2664134.html)
prototype:每一个函数对象都有一个显示的prototype属性,它代表了对象的原型
__proto__:内部原型(IE6/7/8/9不支持),每个对象都有一个名为__proto__的内部隐藏属性,指向于它所对应的原型对象,
IE9中可以使用Object.getPrototypeOf(obj)获取对象的内部原型;
[原型链是基于__proto__才得以形成]
所有对象__proto__都指向其构造器的prototype,包括自定义的构造器
[注意:构造器可以直接用构造器的名字,也可以用实例对象的constructor属性获得]
var obj = {name: 'jack'}
var arr = [1,2,3]
var reg = /hello/g
var date = new Date
var err = new Error('exception')
//自定义一个构造器
function Person(name) {
this.name = name
}
var p = new Person('jack');
obj.__proto__ === Object.prototype // true
obj.__proto__ === obj.constructor.prototype // true
arr.__proto__ === Array.prototype // true
reg.__proto__ === RegExp.prototype // true
date.__proto__ === Date.prototype // true
err.__proto__ === Error.prototype // true
p.__proto__ === Person.prototype // true
p.__proto__ === p.constructor.prototype // true
可以看到p.__proto__与Person.prototype,p.constructor.prototype都是恒等的,即都指向同一个对象。
====作用域与作用域链
====模块化
===跳出循环体
break:跳出最内层循环或者退出一个switch语句
continue:跳出当前循环继续下一个循环
return:跳出循环,即使函数主体中还有其他语句,函数执行也会停止