数据类型指的是字面量的类型,在JS中有六种数据类型
- String 字符串
- Number 数值
- Boolean 布尔值
- Null 空置
- Undefined 未定义
- Object 对象
前五种是基本数据类型。
类型转换主要指将其他数据类型,转换为String,Number,Boolean.
- 将其他数据类型转换为String,调用toString()方法,null和undefined这两个值没有toString()方法。
- 将其他数据类型转换为String,调用String()方法,对于number和boolean实际上就是调用了toString()方法,对于null和undefined,会将null和undefined转换为字符串"null"和"undefined"。
var a = 123;
//调用a的toString()方法
var b = a.toString();
//想直接转换a
a = a.toString();
调用String()方法
var a = 123;
//调用String()方法
a = String(a);
- 将其他数据类型转换为Number,调用Number()方法,纯数字的字符串,直接转换为数字。如果字符串有非数字的内容,则转换为NaN,如果字符串是一个空串或者是一个全是空格的字符串,转换为0。boolean类型的 true转换为1,false类型转换为0。null类型转换为0,undefined类型转换为NaN。
- 将其他数据类型转换为Number,这种方式专门用来解决字符串问题。parseInt()把一个字符串转换为一个正数。parseFloat()把一个字符串转换为一个浮点数。如果对非String使用 parseInt()或parseFloat(),会先将其转换为String然后在操作。
var a = "123px";
a = parseInt(a);
//parseInt()可以把字符串中的整数内容取出来
console.log(typeof a);
console.log(a);
//输出结果为 "number" "123"
//从左到右读取整数.
var b = "123a56px";
b = parseInt(b);
console.log(typeof b);
console.log(b);
//输出结果为 "number" "123"
//parseFloat()可以获取有效的小数。
16进制使用0x开头,0x10=10;
8进制使用0开头,070=56;
2进制使用0b开头(注意不是所有浏览器支持)
var a = "070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制。
a = parseInt(a,10);
a = parseInt(a,8);
将其他类型转换为boolean
- 数字转换为布尔类型,除了0和NaN,其余的都是true
- 字符串转换为布尔类型,除了空串,其余的都是true
- null和undefined转换为布尔类型都是false。