【1】JavaScript 基本深切——数据类型深切明白与总结

数据范例深切明白

数据范例分类

基础(值)范例(5种)

  • String:恣意字符串
  • Number:恣意的数字
  • booleantrue/false
  • nullnull
  • undefinedundefined

对象(援用)范例(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
    • 不能推断 nullobject, arrayobject

      typeof null // "object"
      
      typeof [] // "object"
  • instanceof:

    • 推断对象的详细范例
    • A instanceof B
  • ===:

    • 能够推断 undefined , null

undefinednull 的区分?

  • 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) // 依据范例建立的实例对象
    原文作者:MandyShen
    原文地址: https://segmentfault.com/a/1190000019061734
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞