js数据类型

created on 21-03-03

  1. 分类
    • 基本(值)类型
      • String:任意字符串
      • Number:任意的数字
      • Boolean:true/false
      • undefined:undefined
      • Null:null
    • 对象(引用)类型
      • 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
  1. 什么时候给变量赋值为null
    • 初始赋值,表明将要赋值为对象
    • 结束前,让对象成为垃圾对象(被垃圾回收器回收)
    var b = null; //初始赋值为null,表明将要赋值为对象
    //函数、数组都是对象
    b = ['ascf', 12];
    b = null; //让b指向的对象成为垃圾对象(被垃圾回收器回收)
  1. 严格区别变量类型与数据类型(了解)
    • 数据的类型
      • 基本类型
      • 对象类型
    • 变量的类型(变量内存值的类型)
      • 基本类型:保存基本类型的数据
      • 引用类型:保存地址值
        • var a = {} //a保存的是对象的内存地址值
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务