20220804 JS数据类型转换

115 阅读3分钟

补充

  • 模板型字符串可以换行
  • 其他的字符串需要用\换行

数据类型转换

强制转换(看得见的转换)

其他类型转为string(字符串型)方法

  • .tostring()——其他类型变量
  • String()——其他类型数据或变量

两种方法的区别

  • .tostring()不能转换没有数据的类型,如null(空对象型)和nudefined(未定义型)

其他类型转为number(数字型)方法

  • Number()——其他类型数据或变量
  • parseInt()——其他类型数据或变量转化为整型(整数),从第0个数开始转换,直到遇到非数字的字符停止,如果第0个就是非数字的字符,那就直接停止转换
  • parseFloat——其他类型数据或变量转化为浮点型(小数点),从第0个数开始转换,直到遇到非数字的字符除小数点停止,如果第0个就是非数字的字符除小数点,那就直接停止转换
  • 一般使用于转换带单位的数字

其他类型转为boolean(布尔型)方法

  • Boolean()——其他类型数据或变量
  • 转换number中:0和NaN转为false,其他为true
  • 转换string中:‘空字符串’转为false,其他为true
  • 转换null和undefined都为false

隐式转换(看不见的转换)

  • string+number==>number隐式转换为string
  • string*number==>string隐式转换为number

number的特殊值

  • NaN(not a number):非数字类型转换会显示NaN,如abc,{})(*&……%等
  • Number.MAX_VALUE——表示最大的数
  • Number.MAX_SAFE_INTEGER——表示最大的整数
  • Number.MAX_VALUE*Number.MAX_SAFE_INTEGER为正无穷(Infinity)

运算符与表达式

算数运算符

  • +:字符串拼接或数字相加,结果为number或string
  • -:数字相加,结果为number,运算符两边非数字结果为NaN
  • *:字符串或数字相乘,结果为number,运算符两边非数字结果为NaN
  • \:数字相除,结果为number,运算符两边非数字结果为NaN
  • %:数字取模(取余数),结果为number,运算符两边非数字结果为NaN
  • ++:写在变量前后,自增+1,写在前面就是先+1在取值,写在后面先取值在+1,运算之后不会改变原变量,需要重新覆盖
  • --:写在变量前后,自减-1,写在前面就是先-1在取值,写在后面先取值在-1,运算之后不会改变原变量,需要重新覆盖

赋值运算符

  • =:给变量赋值
  • +=:n+n=
  • -=:n-n=
  • *=:n*n=
  • \=:n\n=

比较运算符

  • 比较出来的结果为布尔值
  • >:小于
  • <:大于
  • >=:大于等于
  • <=:小于等于
  • !=:不等于
  • ==:恒等于,比较数值
  • ===:全等于,比较数值和数据类型

逻辑运算符

是布尔值时

  • &&(与):一个值为false,则结果为false
  • ||(或):一个值为true,则结果为true
  • !(非):本来结果为true则实际结果为false,本来结果为false则实际结果为true

非布尔值时

  • &&(与):数据1 && 数据2,在转换为布尔值时,数据1是true就输出数据2,数据1是false就输出数据1
  • ||(或):数据1 && 数据2,在转换为布尔值时,数据1是true就输出数据1,数据1是false就输出数据2
  • !(非):把值转换为布尔型在取反

三元运算符
?:一个条件后面会跟一个问号(?),如果结果为 truthy ,则问号后面的数据1将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的数据2将会执行。