JavaScript 是一门弱类型的编程语言:a.声明变量时,不必提前规定变量的数据类型;b.赋值时,根据存入的数据动态决定数据类型;c.运算时,js根据需要动态转变数据的类型;
数据类型转换分为两大类:
1.隐式转换:不需要编程人员干预,js根据需要自动转换类型;
没有字符串参与:所有类型都转为Number类型,作算术运算!
Boolean:true --->1 false -->0
有字符串参与:所有类型都转为String类型,做字符串拼接!
多个数据 +运算:从左至右,相邻数据两两计算
强调:隐式转换只发生在运算过程中,不改变变量中的实际存储。
2、强制转换:通过调用函数,明确的转换数据类型;
(1) 任意类型 --> String (2种方式)
var str = x.toString();
var str = String(x); //相当于隐式转换
强调:typeof(x) 返回数据类型名称
(2) 任意类型 --> Number (2种方式)
var num = Number(x); 将任意类型数据,转为Number类型,相当于隐式转换
var num =parseInt(str); 用于将String类型转为Number类型;从左至右依次读取str中的整数部分,碰到第一个不是数 字的字符,停止读取;
特点:a.不认识小数点;b.会自动跳过空格!
*若无法转为Number类型,返回NaN;(NaN:Not a Number)
parseFloat(str)的用法和parseInt 相同;差别在于parseFloat() 认识第一个小数点;返回一个浮点数;
isNaN() -->isNaN("") -->isNaN(Number("")) -->isNaN(0) -->false 故判定结果为数字 ( 空字符串会被隐式转换为Number类型 )
(3) 任意类型 --> Boolean
var bool = Boolean(x); // 相当于隐式转换