基础知识
WechatIMG181.jpeg
1JS中使用typeof能得到哪些类型
typeof undefind // undefind
typeof 'abc' //string
typeof 123 // number
typeof true //boolean
typeof{} // object
typeof [] //object
typeof null //object
typeof console.log //function
2何时使用=== 何时使用==
if(obj.a == null){
// 这里相当于 obj.a === null || obj.a === undefind,简写形式
这是jQuery的源码中推荐的写法,除了这个之外全部用===
}
==可以进行强制类型的转换 ===不会
3JS中有哪些内置函数
object array boolean number string function date regexp error
4JS变量按照存储方式区分为哪些类型,并描述其特点
变量类型
值类型
var a = 100
var b = a
a = 200
console.log(b) //100
引用类型
var a = {age:20}
var b = a
b.age = 21
console.log(a.age)//21
区别的原因:
在内存中来说,值类型是把每一个值都存在变量的位置,引用类型就是age赋值成一个对象,a\b都是一个指针,同时指向对象。
引用类型:对象、数组、函数
值类型和引用类型的区别,简单来说,值类型一旦赋值不会改变,但是引用类型只是一个变量指针,别的指针也可以改变
5如何理解JSON
json只不过四JS对象而已
JSON.stringify({a:10,b:20}) // 把对象变成字符串
JSON.parse('{"a":10,"b":20}')//把字符串变成对象
6原型和原型链
题目引入
如何准确判断一个变量是数组类型
写一个原型链继承的例子
描述new一个对象的过程
zepto源码中如何使用原型链
instanceof 类型判断
构造函数-扩展
var a = {} => var a = new Object()
var a = [] => var a = new Array()
function Foo(){} => var Foo = new Function ()
使用instanceof 判断一个函数是否是一个变量的构造函数
所有的引用类型(数组 对象 函数)都具有对象特性 即可自由扩展属性,除了null以外
所有的引用类型(数组 对象 函数)都具有一个proto属性(隐形属性),属性值是一个普通的对象
所有的函数,都有一个prototype(显示原型)属性,属性值也是一个普通的对象
当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去他的proto中去寻找
console.log(obj.proto === Object.prototype)
网友评论