标签:style blog http io ar color 使用 sp for
JavaScript任何时候都可以为变量赋值(数字、字符串等),不过如果我让两个变量相加,其中一个是数字,另一个是字符串,会发生什么呢?
JavaScript很聪明,它会尝试根据你的需要转换类型。例如,如果你将一个字符串和一个数字相加,它就会把这个数字转换为一个字符串,然后将两个字符串串联起来。这就是这篇文章要讲的JavaScript类型转换,
JavaScript中变量可以分配到Reference value或者Primitive Value。Reference value也称为对象,存储在堆中,Reference value的变量指向对象在内存中的地址。Primitive Value包含Undefined、Null、Boolean、Number、String。Reference Value包括function、array、regex、date等。
我们可以使用typeof来确定JavaScript变量的数据类型。
typeof null; // "object" typeof undefined; // "undefined" typeof 0; // "number" typeof NaN; // "number" typeof true; // "boolean" typeof "foo"; //"string" typeof {}; // "object" typeof function (){}; // "function" typeof []; "object"
1. 转换成Boolean
使用Boolean()函数,可以将任意类型的变量强制转换成布尔值。还有当JavaScript遇到预期为布尔值的地方(比如if语句的条件部分,a ==(>或者<) b的比较运算,a &&b(a||b或!a)的逻辑运算),就会将非布尔值的参数自动转换为布尔值。
Primitive Value除了undefined
、null
、""(空字符串)
、0
、-0
、NaN
转换为false,其他的均转换为true。
值 | undefined | null | true | false | ""(空字符串) | "1.2" | "one" | 0 | -0 | NaN | Infinity | -Infinity | 1(其他非无穷大的数字) | {} | [] | [9] | [‘a‘] | function(){} |
布尔值 | false | false | true | true | false | true | true | false | false | false | true | true | true | true | true | true |
true | true |
Boolean(undefined); //false Boolean(null); //false Boolean(""); //false Boolean("1.2") //true Boolean(0) //false Boolean(-0) //false Boolean(NaN) //false Boolean(Infinity) //true Boolean(-Infinity) //true Boolean(1) //true Boolean({}) //true Boolean([]) //true Boolean([9]) //true Boolean(‘a‘) //true Boolean(function(){}) //true
任何Reference value(对象)的布尔值都是true。甚至值为false、undefined或者null的Boolean对象,其值都为true。
Boolean(new Boolean(undefined)) //true Boolean(new Boolean(null)) //true Boolean(new Boolean(false)) //true
在条件语句中,这些Boolean对象都将作为true来判断。例如,下面的条件语句中,if就将对象x看作是true:
var x = new Boolean(false); if(x){ // ...这里的代码仍会被执行 }
2. 转换成Number
使用Number()函数
3. 转换成String
参考文章:
阮一峰:数据类型转换
MDN: Boolean
标签:style blog http io ar color 使用 sp for
原文地址:http://www.cnblogs.com/huanghongxia/p/4045864.html