zoukankan      html  css  js  c++  java
  • JavaScript 包装对象

    万物皆对象

    在JavaScript里,万物皆对象。但是某些对象有别于其它对象,我们可以用 typeof 来获取一个对象的类型,它总是返回一个字符串。

    typeof 123; // 'number'
    typeof NaN; // 'number'
    typeof 'str'; // 'string'
    typeof true; // 'boolean'
    typeof undefined; // 'undefined'
    typeof Math.abs; // 'function'
    typeof null; // 'object'
    typeof []; // 'object'
    typeof {}; // 'object'

    可见,number、string、boolean、undefined 和 function 有别于其它对象。此外我们还要注意,null 和 Array 的类型也为 object,因此使用 typeof 无法区分它们。

     

    包装对象

     通过包装对象我们可以把 number、boolean 和 string都包装为 object。包装对象使用 new 来创建:

    var str = new String('123');
    var num = new Number(123);
    var bool = new Boolean(1);
    console.log(typeof str);    //object
    console.log(typeof num);    //object
    console.log(typeof bool);    //object
    console.log(str)    //[String: '123']

    注意一般不要去使用包装对象。

    如果在使用String、Boolean和Number时没有加new,它们就会被当作强制类型转换函数,转换成对应的类型,注意不是包装类型。

    var str = String(123);
    console.log(typeof str);    //string
    console.log(str);    //123

    总结

    • 不要使用new Number()new Boolean()new String()创建包装对象;

    • parseInt()parseFloat()来转换任意类型到number

    • String()来转换任意类型到string,或者直接调用某个对象的toString()方法;

    • 通常不必把任意类型转换为boolean再判断,因为可以直接写if (myVar) {...}

    • typeof操作符可以判断出numberbooleanstringfunctionundefined

    • 判断Array要使用Array.isArray(arr)

    • 判断null请使用myVar === null

    • 判断某个全局变量是否存在用typeof window.myVar === 'undefined'

    • 函数内部判断某个变量是否存在用typeof myVar === 'undefined'

    • 任何对象都有toString()方法,nullundefined除外。
    • number对象调用toString()要使用 () 括起来。
    123.toString();    //SyntaxError
    (123).toString();    //123

    参考:廖雪峰 标准对象

  • 相关阅读:
    你一定想知道的关于FPGA的那些事
    浅谈乘法器的用法
    “FPGA+云"助力高性能计算
    Lattice并购案&我国FPGA发展路径
    双口RAM,值得研究
    FPGA图像加速解决方案来了
    中断中需要面对的问题(二)
    中断中需要面对的问题(一)
    Spring MVC 笔记--配置基于JavaConfig
    Spring IOC/ AOP 笔记
  • 原文地址:https://www.cnblogs.com/huwt/p/10738748.html
Copyright © 2011-2022 走看看