前言
在JavaScript中,数据类型大致分为两种:
- 基本数据类型/标准数据类型
- 引用数据类型/复杂数据类型/地址数据类型
其中,基本数据类型包括:
- 布尔类型(true、false)
- 数值类型(整数、浮点数)
- 字符串类型
- undefined(未定义)
- null(空)
引用数据类型包括:
- 数组
- 对象
- 函数
在实际应用中,往往会遇到不同数据类型的数据进行运算、比较或者需要将数据转换为其他类型,所以就需要知道JS中数据类型转换的规则。
数据类型转换分为 自动数据类型转换 和 强制数据类型转换。
一、自动数据类型转换
自动数据类型转换是计算机自动完成类型转换。
1.其他类型转换为数值
在执行数学运算的时候会触发自动转换,转换规则如下:
- undefined转换为NaN
- null转换为数值0
- 空字符串转换为数值0
- 布尔值true转换为数值1,false转换为数值0
- 如果字符串是纯数字或者科学计数法,则转换为对应数值;如果含有不是数字的内容,则转换为NaN
var int7 = 100 - '2e3'; //科学计数法会被解析
console.log(int7); //输出结果为-1900
- 数组、对象、函数在进行数学运算时,除“+”以外的运算,都转换为NaN,进行“+”运算时,相当于字符串拼接
console.log( 100 + [1,2,3,4,5] ); //结果 1001,2,3,4,5
console.log( 100 + {name:'张三' , age:18} ); //结果 100[object Object]
console.log( 100 + function fun(){console.log(123)} );
//结果 100function fun(){console.log(123)} )
console.log( 100 - [