JavaScript: The Definitive Guide, Sixth Editio javaScript权威指南(第6版) pdf 文字版-文字版, javascript电子书, 和javascript 有关的电子书:

3.8 Type Conversions

JavaScript is very flexible about the types of values it requires. We’ve seen this for
booleans: when JavaScript expects a boolean value, you may supply a value of any type,
and JavaScript will convert it as needed. Some values (“truthy” values) convert to
true and others (“falsy” values) convert to false. The same is true for other types: if
JavaScript wants a string, it will convert whatever value you give it to a string. If Java-
Script wants a number, it will try to convert the value you give it to a number (or to
NaN if it cannot perform a meaningful conversion). Some examples:
10 + " objects"     // => "10 objects".  Number 10 converts to a string
"7" * "4"           // => 28: both strings convert to numbers


var n = 1 - "x";    // => NaN: string "x" can't convert to a number
n + " objects"      // => "NaN objects": NaN converts to string "NaN"
Table 3-2 summarizes how values convert from one type to another in JavaScript. Bold
entries in the table highlight conversions that you may find surprising. Empty cells
ndicate that no conversion is necessary and none is performed.
Table 3-2. JavaScript type conversions
Value Converted to:
String Number Boolean Object
undefined "undefined" NaN false throws TypeError
null "null" 0 false throws TypeError
true "true" 1 new Boolean(true)
false "false" 0 new Boolean(false)
"" (empty string) 0 false new String("")
"1.2" (nonempty, numeric) 1.2 true new String("1.2")
"one" (nonempty, non-numeric) NaN true new String("one")
0 "0" false new Number(0)
-0 "0" false new Number(-0)
NaN "NaN" false new Number(NaN)
Infinity "Infinity" true new Number(Infinity)
-Infinity "-Infinity" true new Number(-Infinity)
1 (finite, non-zero) "1" true new Number(1)
{} (any object) see §3.8.3 see §3.8.3 true
[] (empty array) "" 0 true
[9] (1 numeric elt) "9" 9 true
['a'] (any other array) use join() method NaN true
function(){} (any function) see §3.8.3 NaN true
The primitive-to-primitive conversions shown in the table are relatively
straightforward. Conversion to boolean was already discussed in §3.3. Conversion to
strings is well-defined for all primitive values. Conversion to numbers is just a little
trickier. Strings that can be parsed as numbers convert to those numbers. Leading and
trailing spaces are allowed, but any leading or trailing nonspace characters that are not
part of a numeric literal cause the string-to-number conversion to produce NaN. Some
numeric conversions may seem surprising: true converts to 1, and false and the empty
string "" convert to 0.
Primitive-to-object conversions are straightforward: primitive values convert to their
wrapper object (§3.6) as if by calling the String(), Number(), or Boolean() constructor.
The exceptions are null and undefined: any attempt to use these values where an object
is expected raises a TypeError exception rather than performing a conversion.
Object-to-primitive conversion is somewhat more complicated, and it is the subject of
§3.8.3.

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/1/27612.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1