数据范例深切明白
数据范例分类
基础(值)范例(5种)
-
String
:恣意字符串 -
Number
:恣意的数字 -
boolean
:true
/false
-
null
:null
-
undefined
:undefined
对象(援用)范例(3种)
-
Object
:恣意对象 -
Array
:一种迥殊的对象(数值下标,内部数据是有序的) -
Function
:一种迥殊的对象(能够实行)
数据范例推断(3种体式格局)
typeof
:返回数据范例的字符串表达
var a
console.log(a) // undefined
console.log(typeof a) // "undefined"
console.log(a === undefined) // true
console.log(typeof a === undefined) // false
console.log(typeof a === "undefined") // true
console.log(undefined === "undefined") // false
a = 4
console.log(typeof a) // "number"
console.log(typeof a === Number) // false
console.log(typeof a === "number") // true
a = "hahha"
console.log(typeof a) // "string"
a = false
console.log(typeof a) // "boolean"
a = null
console.log(typeof a) // object
console.log(a === null) // true
注重:typeof
返回的是数据范例的字符串表达形式。
typeof true //"boolean"
typeof "hahha" //"string"
typeof 12 //"number"
typeof null //"object"
typeof ccc //"undefined"
typeof function(){} //"function"
typeof {} //"object"
instanceof
:范例的实例
首先要明白
instanceof
的寄义:
-
instance
是例子的意义,A instanceof B
实际上是推断A
是不是是B
的一个实例。明白了这一点,就不难推断范例了。
var b1 = {
b2: [1, "hehe", console.log],
b3: function () {
console.log("b3")
return function () {
return "Mandy"
}
}
}
console.log(b1 instanceof Object) // true
console.log(b1.b2 instanceof Array, b1.b2 instanceof Object) // true true
console.log(b1.b3 instanceof Function, b1.b3 instanceof Object) //true true
console.log(typeof b1.b2) // "object"
console.log(typeof b1.b3) // "function"
console.log(typeof b1.b2[1]) // "string"
console.log(typeof b1.b2[2]) // "function"
b1.b2[2](555) // 555
console.log(b1.b3()()) // "b3" "Mandy"
注重:
- 函数既是
Function
范例,也是Object
范例 - 数组既是
Array
范例,也是Object
范例
===
- 能够推断
undefined
和null
ccc === "undefined" // true
null === null // true
总结
typeof
:- 能够推断
undefined
/ 数值 / 字符串 / 布尔值 /function
不能推断
null
与object
,array
与object
typeof null // "object" typeof [] // "object"
- 能够推断
instanceof
:- 推断对象的详细范例
A instanceof B
===
:- 能够推断
undefined
,null
- 能够推断
undefined
与 null
的区分?
-
undefined
代表定义了,未赋值 -
null
代表定义了,而且赋值了,只是赋的值为null
// undefined与null的区分?
var a
console.log(a) // undefined
a = null
console.log(a) // null
什么时候给变量赋值为null
?
- 初始赋值,表明将要赋值为对象。由于
typeof null === "Object"
- 完毕前,让对象成为渣滓对象(被渣滓接纳器接纳)
//肇端
var b = null // 初始赋值为null, 表明将要赋值为对象
//肯定对象就赋值
b = ['atguigu', 12]
//末了
b = null // 让b指向的对象成为渣滓对象(被渣滓接纳器接纳)
严厉区分变量范例 与 数据范例?
数据的范例:
- 基础范例
- 对象范例
变量的范例(变量内存值的范例)
- 基础(值)范例:保留的就是基础范例的数据
- 援用范例:保留的是地点值
明白实例 与 范例
// 实例: 实例对象
// 范例: 范例对象
function Person (name, age) {// 组织函数 范例
this.name = name
this.age = age
}
var p = new Person('tom', 12) // 依据范例建立的实例对象