zoukankan      html  css  js  c++  java
  • js中有包装类,java中也有包装类

    new Number() vs Number()

    What is the difference between new Number() and Number()? I get that new Number() creates a Number object and Number() is just a function, but when should I call which, and why?

    On a related note, Mozilla says:

    Do not use a Boolean object to convert a non-boolean value to a boolean value. Instead, use Boolean as a function to perform this task.
    
    x = Boolean(expression);     // preferred
    x = new Boolean(expression); // don't use

    Why is that? I thought the results were the same?

    -----------------------------------------------------------------------------------------------

    40down voteaccepted

    Boolean(expression) will simply convert the expression into a boolean primitive value, while new Boolean(expression) will create a wrapper object around the converted boolean value.

    The difference can be seen with this:

    // Note I'm using strict-equals
    new Boolean("true") === true; // false
    Boolean("true") === true; // true

    And also with this (thanks @hobbs):

    typeof new Boolean("true"); // "object"
    typeof Boolean("true"); // "boolean"

    Note: While the wrapper object will get converted to the primitive automatically when necessary (and vice versa), there is only one case I can think of where you would want to use new Boolean, or any of the other wrappers for primitives - if you want to attach properties to a single value. E.g:

    var b = new Boolean(true);
    b.relatedMessage = "this should be true initially";
    alert(b.relatedMessage); // will work
    
    var b = true;
    b.relatedMessage = "this should be true initially";
    alert(b.relatedMessage); // undefined
     
  • 相关阅读:
    想更改Github仓库中的某个文件结构
    记git一些基本用法
    剑指Offer-Python(16-20)
    剑指Offer-Python(11-15)
    初次使用flask
    Python的Cmd模块的简易运用学习
    SQL-全称量词查询
    线段树模板1
    OJ输入输出超时(C++)
    二叉查找树(BST)定义
  • 原文地址:https://www.cnblogs.com/oxspirt/p/8678639.html
Copyright © 2011-2022 走看看