整理笔记8: typeof运算符和instanceof

156 阅读1分钟

typeof运算符

我是knockkey, 这是我坚持更新博客第2天. 博客目的: 学会判断类型

1. typeof运算符(返回字符串)

识别所有值类型

    //  判断所有值类型
    let a;
    console.log(typeof a);  //'undefined'

    const str = 'abc'
    console.log(typeof str);  //'string'

    const n = 100
    console.log(typeof n);  //'number'

    const b = true
    console.log(typeof b);  //'boolean'

    const big = 12n
    console.log(typeof big);  //'bigint'

    const s = Symbol('s')
    console.log(typeof s);  //'symbol'

识别函数

    console.log(typeof function () { });  //'function'

判断是否是引用类型(不可再细分)

    console.log(typeof null);  //'object'
    console.log(typeof ['a', 'b']);  //'object'
    console.log(typeof { x: 100 });  //'object'

注意一个小点

  • NaN: 指"不是一个数字"(not a number), 以后单独讲
    console.log(typeof NaN);  //number

2. instanceof判断一个变量是数组还是对象

instance运算符用于通过查找原型链来检测某个变量是否为某个类型数据的实例

    let arr = ['a', 'b', 'c', 'd']
    console.log(typeof arr);  //'Objetc'
    console.log(arr instanceof Array);  // true
    console.log(arr instanceof Object);  // true

    let obj = { name: "knockkey" }
    console.log(typeof obj);
    console.log(obj instanceof Array );  //false
    console.log(obj instanceof Object );  //true