Sự khác nhau giữa new Number()
và Number()
là gì? Tôi nhận được rằng new Number()
tạo ra một đối tượng Number
và Number()
chỉ là một chức năng, nhưng khi nào tôi nên gọi đó là gì và tại sao?Số mới() so với Số()
Trên một lưu ý liên quan, Mozilla cho biết:
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
Tại sao vậy? Tôi nghĩ kết quả là như nhau?
và 'typeof (Boolean (" true ")) ===" boolean "', trong khi 'typeof (new Boolean (" true ")) ===" object "'. – hobbs
"Trong khi đối tượng bao bọc sẽ được chuyển đổi thành nguyên thủy một cách tự động khi cần thiết" Đúng vậy, nhưng hơi gây hiểu lầm. Các đối tượng (bao gồm các đối tượng 'Boolean') luôn luôn đánh giá' true' trong một bối cảnh boolean: 'if (new Boolean (0)) {alert (" Oops, 0 là true. "); } '. Để có được giá trị "mong đợi", hãy gọi 'valueOf':' new Boolean (0) .valueOf() === false' –