– 5种基本数据类型:字符串型(String)、数字型(Number)、布尔型(Boolean)、空型(Null)、未定义型(Undefined)
– 引用数据类型:对象(Object)
字符串型(String)
- 使用引号(双引号或单引号)引起来
- 空串:"" 或 ''
- 外双内单、外单内双
- 转义字符:\
\' ==> '
\" ==> "
\n ==> 换行
\\ ==> \
- 字符串拼接:字符串+任何数据类型==>拼接后的字符串
2. 数字型(Number)
- 默认为十进制数。0 开头:八进制;0x 开头:十六进制;0b开头:二进制数
- 最大值:Number.MAX_VALUE ,代表1.7976931348623157e+308
- 最小正值:Number.MIN_VALUE,代表5e-324
- 3个特殊值:Infinity (无穷大)、- Infinity(无穷小)、NaN(非数值)
- isNaN():判断一个变量是否为非数字的类型,返回值为true表示非数字,false表示是数字
3. 布尔型(Boolean)
- 只有两个值: true 、false
4. 空型(Null)
- 只有一个值: null (表示一个不存在的或无效的对象与地址)
5. 未定义型(Undefined)
- 声明一个变量但没有赋值时,此变量的值就是undefined
可以使用 typeof 来检查一个变量的类型
语法:typeof 变量
- 类型转换分为 强制转换、 隐式转换
- 强制转换:利用JS提供的进行类型转换的方法或函数
- 隐式转换:js自动执行。
1. 转换为字符串
- toString()
- 语法:被转换数据.toString()
- String()
- 语法:String(被转换数据)
- 被转换数据 +字符串
2. 转换为数字
- parseInt()
- 语法:parseInt(被转换数据)
- 将一个字符串开头的整数转换出来
- 纯数字字符串、数字开头的字符串 --> 整数
其余 --> NaN
- parseFloat()
- 语法:parseFloat(被转换数据)
- 将一个字符串开头的小数转换出来
- 纯数字字符串、数字开头的字符串 --> 浮点数
其余 --> NaN
- Number()
- 语法:Number(被转换数据)
- 转换的情况:参考教材
- 隐式转换:用算术运算符 - 、*、/
- 原理:对非数字型的值做- 、*、/运算时,会先转换为数字,再做运算。
来看一个例子:
规则是:
显然上面的例子属于第二种情况,“123”被隐式转换为123了。
除了==运算符,诸如+、-、*、/、!、<、<=、>、>=等运算符两边的操作数类型不同时,都会发生隐式类型转换,还包括while()语句和if()语句内的条件语句,alert()语句会将()内的值隐式转换成字符串后再弹出。
二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作
当“+”做为一元运算符时,会把操作数转换为数字(转不了的转成NaN)
当“-”做为二元运算符时,会把操作数转换为数字(转不了的转成NaN)
当“-”做为一元运算符时,会把操作数转换为数字(转不了的转成NaN),同时改变运算结果的符合
比较操作符的操作数可能是任意类型,然而只有数字和字符串才能真正执行比较操作,因此其它类型的操作数都将进行类型转换,具体规则如下:
"*"、"/"、"%"会把操作数转换为数字(转不了的转成NaN)
"!"会把操作数转换为布尔值
3. 转换为布尔值
- Boolean()
- 语法:Boolean(被转换数据)
- 空串、0、NaN、null、undefined --> false
其余 --> true