运算符&数据类型转化

275 阅读4分钟

逻辑运算符:

  • 逻辑运算符:返回值是最后运算的表达式的返回值
  • 运算规律:
    • || 一真为真,全假为假;从左到右计算,如果表达式返回值为false或者结果隐式转化为false,那么就继续运算下一个表达式,直到第一个true,返回该表达式运算结果,如果都没有,那么返回最后一个表达式运算结果
    • && 一假全假,全真为真;从左到右计算,如果表达式返回值为true或者结果隐式转化为true,那么就继续运算下一个表达式,直到第一个false,返回该表达式运算结果,如果都没有,那么返回最后一个表达式运算结果
    • ! 你真我假,你假我真

数据类型转化:

  • 数据类型转化分为显示转化和隐式转化
  • 其他类型转化为Boolean类型
  • 除了null undefined ' ' false 0 转为布尔为false 其他都是true
  • Boolean()作用:将其他类型数据转为boolean类型
    • ()中内容的参数
      • var res = Boolean(0)// false
      • var res1 = Boolean('') // false
      • var res2 = Boolean(undefined)// false
      • var res3 = Boolean(false) // false
      • var res4 = Boolean(null)// false
      • var res5 = Boolean(NaN)// false
      • var res6 = Boolean(123) //true
      • var res7 = Boolean('dfas')// true
      • var res8 = Boolean([])// true
      • var res9 = Boolean({}) // true

运算符优先级:

  • 括号成员最高级,全体单目排第二,乘除余三,加减四,移位五,关系六,等于不等于排老七,逻辑八,赋值九,逗号成员排最低

字符串比较:

  • 字符串的比较大小字符与长度无关
  • 空字符值0
  • 从第一个字符的Unicode编码值或者阿斯克码值进行比较,直到比较出一个大小,第一个没结果就第二个......

数据类型转化:

  • 其他类型转化Number显示转化,隐式转化
  • 显示转化Number();parseInt();parseFloat();
  • 浮点数:
    • 注意:不要使用浮点数进行比较和运算
    • 正常只有第一个小数点是有效的,之后都是无效的
  • NaN------>Not a Number
    • NaN 永不等于NaN
    • NaN于任意操作数运算都是NaN
    • 当一个数据,非要是数值型,但没有任何一个数值可以表示,为NaN
  • var num = 12e3
    • e3科学记数法10 的3次方

Number:

  • Number()作用:将其他类型数据转化为数值型,参数为js数据类型
    • console.log(Number(true)) // 1
    • console.log(Number(false)) // 0
    • console.log(Number(undefined)) //NaN
    • console.log(Number(null),'null') // 0 'null'
    • console.log(Number(' '))// 0
    • console.log(Number('11')) // 11
    • console.log(Number('1.1')) // 1.1
    • console.log(Number('1.1.1')) // NaN
    • console.log(Number('小米')) // NaN
    • console.log(Number([])) // 0
    • console.log(Number({})) // NaN
  • 注意:隐式转化Number与Number函数规则一致;与parseInt parseFloat不一致

parseInt:

  • 只看第一个字符,满足才能继续解析
  • 忽略字符串前面的空格,直接找到第一个非空格字符
  • 如果第一个字符不是数字或者是符号,返回NaN
  • 空字符串,返回NaN
  • 如果第一个字符是数字,会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符
  • 如果字符串以0开头且后面跟数字字符,就会将其转为10进制数,同样,八进制也一样
  • 以0开头的数字字符省略0,返回其他数字字符
  • 以0开头字符,省略0除非下为是非数字字符,返回0

parseFloat:

  • parseFloat()将js数只能转化浮点数
  • 从头到尾的解析,最后返回一个结果,该结果总结以下规律
    • 空字符 NaN
    • 十六进制0
    • 解析为第一个有效小数点
    • 普通的非空字符 非数字 NaN
    • 科学记数法字符 转为科学记数法
    • 0开头字符 如果继续解析后面字符非数字NaN 是数字省略0 返回有效数字

Boolean:

  • 布尔类型显示转化Boolean
    • console.log(Boolean(false))
    • console.log(Boolean(null))
    • console.log(Boolean(0))
    • console.log(Boolean(''))
    • console.log(Boolean(undefined))
    • console.log(Boolean(NaN))
    • 规律:除了以上六种数类型其他全是true

数组:

  • 数组的特点:
    • 数组有长度,表示数组中元素的个数
    • 数组结构,虽然可以放任何类型的js数据,但是一般存放统一类型数据
    • 数组的索引值 0 1 2
    • 规则:数组内部的数据结构必须统一,特殊情况除外
  • 数组取值方式:
    • array[索引值]获取索引值对应的元素