数据类型转换:
String:
其他类型转为字符串:
1、其他类型变量.toString()
2、String(其他类型数据)
number/boolean都有toString()
null/undefined没有
两种转换方式的区别:
.toString()不能转null和undefined
Number:
1、Number()
2、parseInt() 转成整型数,从字符串的第0个一直往后转,直到遇到的非数字的字符串停止,第0个是非数字就是NaN
3、parseFloat() 转成浮点数(小数)
parseInt(),parseFloat()两者一般用于带单位数字的转换
特殊值:
NaN 非数字
Number.MAX_SAFE_INTEGER 最大的整型数
Number.MAX_VALUE 最大的数
Infinity 无穷
Boolean:
1、Boolean()
number中:0和NaN转为boolean为false,其他的都是true
string中:只有''空字符串转boolean为false,其他的都是true
null和undefined转boolean为false
转boolean为false的几种情况:
0 NaN '' undefined null false
强制转换:
以上情况都为强制转换
隐式转换:
string+number ==> number 隐式转换为string
string*number ==> string 隐式转换为number
运算符与表达式:
什么类型的数据在运算?
运算后得到的结果类型?
算术运算符:+ - * / % ++ --
+ 数字,字符串的拼接,结果是number/string
- * % 数字,运算符两边都有非数字,结果是NaN/number
++ -- 只有一端有变量,可以写在前和后,表示自增和自减;写在前表示自增后再取值,写在后表示先取值再自增 a++ a=a+1
% 模除(取余) 10%3=1
运算之后不会改变原变量,需要重新覆盖
赋值运算符:= += -= *= /=
左边是变量,右边是数据/变量
没有结果
比较运算符:> < >= <= != == ===
左右是任意数据 结果是boolean
== 只比较是否相等,不比较类型
=== 比较值和类型是否都相等
逻辑运算符:&& || !
左右两边是boolean类型数据或者是boolean类型的表达式,结果为boolean类型:
&& 只要一边是false时,结果是false
|| 只要一边是true时,结果是true
! 布尔类型,把boolean类型取反
左右两边是其他类型:
数据1 && 数据2:当数据1转化为boolean是true时,取数据2
当数据1转化为boolean是false时,取数据1
数据1 || 数据2:当数据1转化为boolean是true时,取数据1
当数据1转化为boolean是false时,取数据2
!数据:数据先隐式转换为boolean类型,再取反
三元运算符:
boolean类型、结果为boolean类型的表达式、其他数据类型(隐式转换) ? 值1:值2
问好前的结果是true时,取值1;否则,取值2
表达式:能得到结果的
1、使用变量
2、算术、比较、逻辑、三元
3、对象的调用
4、函数的返回值
布尔值表达式:
结果是布尔类型的或者隐转、强转得到boolean类型的