chapter15——JS-数据类型转换

85 阅读2分钟

数据类型转换:

String:

其他类型转为字符串:
    1、其他类型变量.toString()
    2String(其他类型数据)
    number/boolean都有toString()
    null/undefined没有
两种转换方式的区别:
    .toString()不能转null和undefined

Number:

1Number()
2parseInt() 转成整型数,从字符串的第0个一直往后转,直到遇到的非数字的字符串停止,第0个是非数字就是NaN
3parseFloat() 转成浮点数(小数)
parseInt(),parseFloat()两者一般用于带单位数字的转换
特殊值:
    NaN 非数字
    Number.MAX_SAFE_INTEGER 最大的整型数
    Number.MAX_VALUE 最大的数
    Infinity 无穷

Boolean:

1Boolean()
    number中:0NaN转为booleanfalse,其他的都是true
    string中:只有''空字符串转booleanfalse,其他的都是true
    nullundefinedbooleanfalsebooleanfalse的几种情况:
    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转化为booleantrue时,取数据2
                   当数据1转化为booleanfalse时,取数据1
    数据1 || 数据2:当数据1转化为booleantrue时,取数据1
                   当数据1转化为booleanfalse时,取数据2
    !数据:数据先隐式转换为boolean类型,再取反

三元运算符:

boolean类型、结果为boolean类型的表达式、其他数据类型(隐式转换) ? 值1:值2
问好前的结果是true时,取值1;否则,取值2

表达式:能得到结果的

1、使用变量
2、算术、比较、逻辑、三元
3、对象的调用
4、函数的返回值

布尔值表达式:

结果是布尔类型的或者隐转、强转得到boolean类型的