数据类型

created on 21/03/03

1、分类

  • 基本(值)类型
    • String:任意字符串
    • Number:任意的数字
    • Boolean:true/false
    • undefined:undefined
    • Null:null
    • Symbol:表示唯一的、不可变的值
  • 对象(引用)类型
    • Object:任意对象
    • Function:一种特别的对象(可以执行)
    • Array:一种特别的对象(数值下标,内部数据是有序的)

2、判断

  • typeof
    • 可以判断:undefined/数值/字符串/布尔值/function
    • 不能判断:null与object 、 object与array
  • instanceof
    • 判断对象的具体类型
  • ===
    • 可以判断:undefined,null
//1、值
var a;
console.log(a , typeof a , typeof a === 'undefined', a === undefined); //undefined "undefined" true true
a = 4;
console.log(typeof a === 'number'); //true
a = 'sjjcd';
console.log(typeof a === 'string'); //true
a = true;
console.log(typeof a === 'boolean'); //true
a = null;
console.log(typeof a, a === null); //object true typeof不能判断object与null
var arr = [];
console.log(typeof arr,arr === Array); //object false

//2、对象
var b1 = {
    b2: [1, 'abc',console.log],
    b3: function(){
        console.log('b3');
        return function(){
            return 'hsjdsdnc';
        }
    }
}
//a instanceof b:a是b的实例
//instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
console.log(b1 instanceof Object, b1 instanceof Array);  //true false
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 === 'array'); //false,typeof不能判断object与arry
console.log(typeof b1.b3 === 'function'); //true

console.log(typeof b1.b2[2]); //function
console.log(typeof b1.b2[2] === 'function',typeof b1.b2[2] === 'object'); //true false
b1.b2[2](4); //4
console.log(b1.b3()()); //b3  hsjdsdnc

3、undefined与null的区别?

  • undefined代表定义未赋值
  • null定义并赋值,值为null
var a;
console.log(a); //undefined
a = null;
console.log(a); //null

4、什么时候给变量赋值为null

  • 初始赋值,表明将要赋值为对象
  • 结束前,让对象成为垃圾对象(被垃圾回收器回收)
var b = null; //初始赋值为null,表明将要赋值为对象
//函数、数组都是对象
b = ['ascf', 12];
b = null; //让b指向的对象成为垃圾对象(被垃圾回收器回收)

5、严格区别变量类型与数据类型(了解)

  • 数据的类型
    • 基本类型
    • 对象类型
  • 变量的类型(变量内存值的类型)
    • 基本类型:保存基本类型的数据
    • 引用类型:保存地址值
      • var a = {} //a保存的是对象的内存地址值
posted @ 2021-07-01 13:29  STRIVE-PHY  阅读(38)  评论(0)    收藏  举报