美文网首页
js 判断类型的4种方式

js 判断类型的4种方式

作者: 饱饱想要灵感 | 来源:发表于2023-11-29 10:50 被阅读0次

    1. 使用 Object.prototype.toString

    这是一个准确的类型判断方式,可以判断出所有类型。

    let str = "hello";
    console.log(Object.prototype.toString.call(str) === "[object String]");  // 输出 true
    
    let num = 123;
    console.log(Object.prototype.toString.call(num) === "[object Number]");  // 输出 true
    
    let bool = true;
    console.log(Object.prototype.toString.call(bool) === "[object Boolean]");  // 输出 true
    
    let undefinedVariable;
    console.log(Object.prototype.toString.call(undefinedVariable) === "[object Undefined]");  // 输出 true
    
    let nullVariable = null;
    console.log(Object.prototype.toString.call(nullVariable) === "[object Null]");  // 输出 true
    
    let obj = {};
    console.log(Object.prototype.toString.call(obj) === "[object Object]");  // 输出 true
    
    let arr = [];
    console.log(Object.prototype.toString.call(arr) === "[object Array]");  // 输出 true
    
    let func = function() {};
    console.log(Object.prototype.toString.call(func) === "[object Function]");  // 输出 true
    
    let date = new Date();
    console.log(Object.prototype.toString.call(date) === "[object Date]");  // 输出 true
    
    let error = new Error();
    console.log(Object.prototype.toString.call(error) === "[object Error]");  // 输出 true
    
    let regexp = /abc/;
    console.log(Object.prototype.toString.call(regexp) === "[object RegExp]");  // 输出 true
    

    2. 使用 typeof 运算符

    let num = 123;
    console.log(typeof num);  // 输出 "number"
    
    let str = "hello";
    console.log(typeof str);  // 输出 "string"
    
    let bool = true;
    console.log(typeof bool);  // 输出 "boolean"
    
    let obj = {};
    console.log(typeof obj);  // 输出 "object"
    
    let arr = [];
    console.log(typeof arr);  // 输出 "object"
    
    let n = null;
    console.log(typeof n);  // 输出 "object"
    
    let un;
    console.log(typeof un);  // 输出 "undefined"
    
    let func = function() {};
    console.log(typeof func);  // 输出 "function"
    

    你会注意到,typeof 对于数组、null和对象都会返回 "object",所以这种方法并不总是能帮助我们准确判断类型。

    3. 使用 instanceof 运算符

    instanceof 可以用来判断一个对象是否为某个构造函数的实例,对于自定义的对象类型,这是一个很好的判断方式。

    let arr = [];
    console.log(arr instanceof Array);  // 输出 true
    
    let str = new String("hello");
    console.log(str instanceof String);  // 输出 true
    

    4. 使用 constructor 属性

    constructor 属性返回对创建此对象的数组函数的引用。

    let num = 123;
    console.log(num.constructor === Number);  // 输出 true
    
    let str = "hello";
    console.log(str.constructor === String);  // 输出 true
    
    let bool = true;
    console.log(bool.constructor === Boolean);  // 输出 true
    
    let obj = {};
    console.log(obj.constructor === Object);  // 输出 true
    
    let arr = [];
    console.log(arr.constructor === Array);  // 输出 true
    
    let func = function() {};
    console.log(func.constructor === Function);  // 输出 true
    

    相关文章

      网友评论

          本文标题:js 判断类型的4种方式

          本文链接:https://www.haomeiwen.com/subject/huffgdtx.html