目录
五、数据类型转换
5.1 数据类型转换的规则
5.1.1 其他类型转为 number 类型
(1) string 转为 number
① 内容为纯数字:转为 对应的数字
② 内容为空:转为 0
③ 内容为其他:转为 NaN
(2)boolean 转为 number
① true :转为 1
② false :转为 0
(3)undefined 转为 number
转为 NaN
(4)null 转为 number
转为 0
5.1.2 其他类型转为 string 类型
原类型内容是 什么 就转为 什么 内容的字符串
5.1.3 其他类型转为 boolean 类型
(1)number 转为 boolean
① 0:转为 false
② NaN:转为 false
③ 其他数字:转为 true
(2)string 转为 boolean
① 内容为空:转为 false
② 内容为其他:转为 true
(3)undefined 转为 boolean
转为 false
(4)null 转为 boolean
转为 false
5.2 强制类型转换(显示)
当操作数的类型不同,而且不属于基本数据类型时,经常需要将操作数转化为所需要的类型,这个过程即为强制类型转换。强制类型转换_百度百科
5.2.1 强制把其他类型转为 number 类型的函数
Number() 规则同 5.1.1 其他类型转为 number 类型
parseInt() 提取字符串中的整数
parseFloat() 提取字符串中的浮点数
5.2.2 强制把其他类型转为 string 类型的函数
String()
5.2.3 强制把其他类型转为 boolean 类型的函数
Boolean()
5.3 自动类型转换(隐式)
数据在运算过程中可能会发生自动类型的转换,由运算环境所需的数据类型决定:
比如: == 左右数据类型不一致
转换规则同 5.2 强制类型转换(显示) 一致
六、运算符
6.1 运算符和表达式
6.1.1 运算符
参与运算的符号,如: + 、- 、* 、/ 等
与运算符一起运算的数据称为操作数
6.1.2 表达式
① 表达式由操作数、运算符共同组成;表达式具有计算结果,称为表达式的值;
② 一个变量/直接量也是表达式,称为原始表达式;
③ 运算符可以将简单的表达式组合成复杂的表达式;
④ 有些表达式具有副作用,参与运算的变量会被修改,由运算符决定该表达式是否有副作用
6.2 运算符的分类
6.2.1 按照运算符的功能分
① 算数运算符
② 关系 / 比较运算符
③ 逻辑运算符
④ 赋值运算符
⑤ 位运算符
⑥ 其他运算符
6.2.2 按照运算符需要的操作数个数分
一元 / 一目运算符
二元 / 二目运算符
三元 / 三目运算符
6.3 运算符详解
6.3.1 算术运算符
+ 相加
- 相减
* 相乘
/ 相除
% 取余
+ 正号
- 负号
++ 自增(操作数必须是变量)
-- 自减(操作数必须是变量)
注意:
如果只有一个操作数,此时 + 为正号;
如果有两个操作数,此时 + 为相加。
6.3.2 关系 / 比较运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 相等 (若操作数类型不一致会自动转为 number 再比较)
!= 不相等 (若操作数类型不一致会自动转为 number 再比较)
=== 全等 (若操作数类型不一致直接判为不全等,类型一致且值也一样才全等)
!== 不全等 (若操作数类型不一致直接判为不全等,类型一致且值也一样才全等)
注意:
(1) 字符串大小比较
若两个字符串参与比较,使用字符的 unicode 来比,从左到右逐个字符比较,若对应的字符比较大,则整个字符串都大,如:
' a ' < ' b ' ' cde ' < ' f '
(2)特殊情况 —— null
null == undefined; // true
null == 0; // false
null == ''; // false
null == false; // false
6.3.3 逻辑运算符
&& 逻辑与 and
|| 逻辑或 or
! 逻辑非 not
注意:
(1)逻辑与运算符组成的表达式的值
如果第一个操作数 成立,用 第二个操作数 作为表达式的值;
如果第一个操作数 不成立,用 第一个操作数 作为表达式的值,第二个操作数不会执行到。
(2)逻辑或运算符组成的表达式的值
如果第一个操作数 成立,用 第一个操作数 作为表达式的值,第二个操作数不会执行到;
如果第一个操作数 不成立,用 第二个操作数 作为表达式的值。
6.3.4 赋值运算符
= 赋值
+= 相加赋值
-= 相减赋值
*= 相乘赋值
/= 相除赋值
%= 取余赋值
+= 字符串连接赋值 ( string 类型 )
6.3.5 位运算符
& 按位与
| 按位或
6.3.6 其他运算符
typeof 判断数据类型
, 逗号运算符(执行所有的操作数,但只返回最后一个操作数的值)
+ 字符串连接符(两个操作数中,只要其中一个是字符串,+ 就是字符串连接符)
?: 三元运算符(若第一个操作数成立,取第二个操作数作为表达式的值;反之,则取第三个操作数作为表达式的值)
6.4 运算符的优先级
1. 一元运算符
2. 算术运算符 (乘除取余 > 加减)
3. 比较运算符 (比大小 > 判等)
4. 逻辑运算符 (逻辑与 > 逻辑或)
5. 三元运算符
6. 赋值运算符
7. 逗号运算符注:
可以通过 () 提高运算符的优先级