zoukankan      html  css  js  c++  java
  • 标准对象

    1:包装对象:numberbooleanstring都有包装对象

    包装对象用new创建:

    var n = new Number(123); // 123,生成了新的包装类型
    var b = new Boolean(true); // true,生成了新的包装类型
    var s = new String('str'); // 'str',生成了新的包装类型

    虽然包装对象看上去和原来的值一模一样,显示出来也是一模一样,但他们的类型已经变为object了!所以,包装对象和原始值用===比较会返回false

    typeof new Number(123); // 'object'
    new Number(123) === 123; // false
    所以闲的蛋疼也不要使用包装对象!尤其是针对string类型!!!

    2:

    总结一下,有这么几条规则需要遵守:

    • 不要使用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就没有!确实如此,这两个特殊值要除外,虽然null还伪装成了object类型。

    更细心的同学指出,number对象调用toString()报SyntaxError:

    123.toString(); // SyntaxError
    

    遇到这种情况,要特殊处理一下:

    123..toString(); // '123', 注意是两个点!
    (123).toString(); // '123'
     
  • 相关阅读:
    DFS+输出路线--poj2488--A Knight's Journey
    三:矩阵快速幂应用
    二:矩阵快速幂
    一:快速求幂
    动态规划空间复杂度的优化--滚动数组
    暴力--全排列+排列组合+组合(求子集)
    next_permutation 与 prev_permutation(全排列算法)
    BFS入门--POJ3278--抓羊
    java基础编程题
    计蒜客
  • 原文地址:https://www.cnblogs.com/dragonh/p/6288812.html
Copyright © 2011-2022 走看看