首页 > 代码库 > javascript 类型转换
javascript 类型转换
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); //falseBoolean(null); //falseBoolean(""); //falseBoolean("1.2") //trueBoolean(0) //falseBoolean(-0) //falseBoolean(NaN) //falseBoolean(Infinity) //trueBoolean(-Infinity) //trueBoolean(1) //trueBoolean({}) //trueBoolean([]) //trueBoolean([9]) //trueBoolean(‘a‘) //trueBoolean(function(){}) //true
任何Reference value(对象)的布尔值都是true。甚至值为false、undefined或者null的Boolean对象,其值都为true。
Boolean(new Boolean(undefined)) //trueBoolean(new Boolean(null)) //trueBoolean(new Boolean(false)) //true
在条件语句中,这些Boolean对象都将作为true来判断。例如,下面的条件语句中,if就将对象x看作是true:
var x = new Boolean(false);if(x){ // ...这里的代码仍会被执行}
2. 转换成Number
使用Number()函数
Notes
- Strings are converted to a number by stripping the leading whitespace in the string before the number and ignoring whitespace after the number. If the string does not match this pattern, then the string is converted to NaN.
- Boolean true is converted to 1. False is converted to 0.
- A node-set is first converted to a string as if by a call to the string() function and then converted in the same way as a string argument.
- An object of a type other than the four basic types is converted to a number in a way that is dependent on that type.
3. 转换成String
参考文章:
阮一峰:数据类型转换
MDN: Boolean
javascript 类型转换