• 四、数据类型转化
  • 1.数据类型显示转化
  • 数据类型强制转化
  • Number() 强制将一个其他类型的数据转化为数字类型,转不了就NaN
  • string——>number
  • 如果字符串整体来看是一个数字,那么就转化为这个数字
  • 通过这个字符串整体看起来不是一个数字,那么就转化为NaN
  • 如果字符串是一个特殊的空字符串''或空白字符串' ',那么转换为0
  • ''--->0
  • ' '--->0
  • boolean--->number
  • true--->1
  • false--->0
  • undefined--->number
  • undefined--->NaN
  • null--->number
  • null--->0
  • 小结:只要转化字符串除拼接外,都是看整体是不是一个数字,是就转化为数字后运算
  • String(): 强制将一个其它类型数据转化为字符串类型
  • 转化字符串没有什么特殊,只要个东西,都给你加上一个“”,输出字符串
  • Boolean(): 强制将一个其他的数据类型转化为一个boolean类型
  • 转化数字的时候,除了0是false,其余都是true
  • 0---->false
  • 转化字符串的时候,除了空字符串‘’是false,其余都是true
  • ‘’---->false
  • 转化undefined和null都是false
  • undefined---->false
  • null---->false
  • 转化false是false
  • false---->false
  • NaN--->false
  • 数据类型手动转化 (就是再字符串中提取数字)
  • parseInt()
  • 作用
  • 将其他数据类型转化为数值型
  • 转化规则
  • 1,忽略字符串前面的空格,直到找到第一个非空的字符串
  • 2.如果第一个字符串不是数字或是负号,返回NaN
  • 3.空字符串,返回NaN
  • 4.如果第一个字符串为数字,那么就继续解析第二个子串,以此类推,直到碰到非数字类型的子串停止
  • 5.如果字符串以0x开头且后面跟着数字字符,就会将其转化为十进制数,同样其它进制也是一样
  • 括号中的要不是字符串也会先转化为字符串后,在执行函数
  • parseFlaot()
  • 从头到尾解析,结果遵循以下规则
  • 1.第一个小数点是有效的,第二个小数点无效
  • 2.始终忽略前面的0,不分进制
  • 3.十六进制会转化为0
  • 4.科学计数法,转化为科学计数法的数
  • 5.空字符串转化为NaN
  • 6.普通的非空字符串、非数字--->NaN
  • 括号中的要是不是字符串也会先转化为字符串后,在执行函数
  • 2.数据类型隐式转化
  • 各种类型在运算中的适当的场合会发生也是转化
  • 记住显示转化
  • 隐式转化在对数组,对象数据类型来说,会先将他们转换为string类型,之后再转化为其他数据类型就行运算比较等
  • 五、基本数据类型的运算和比较
  • 同种数据类型之间的数值运算和比较
  • number与number
  • 运算(+,-,*,/,%)
  • 该怎么计算怎么计算
  • 特殊情况
  • 0/1--->0
  • 1/0--->infinity
  • 0/0--->NaN
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 该怎么比较就怎么比较
  • string与tring
  • 运算(+,-,*,/,%)
  • + 字符串的拼接
  • / % 先转化为数字,后做运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 比较的是字符串之间的unicode码值
  • boolean与boolean
  • 运算(+,-,*,/,%)
  • 先转化为数字,后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字,后运算
  • undefined与undefined
  • 比较/运算
  • 先转化为数字,后运算
  • null与null
  • 比较/运算
  • 先转转化为数字,后运算
  • 不同数据类型之间的数值运算和比较
  • number和其它类型比较、运算
  • number和string
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • number和boolean
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • number和undefined
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • number和null
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • string和其他类型比较、运算
  • string和boolean
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • string和undefined
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • string和null
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • boolean和其他类型比较、运算
  • boolean和undefined
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • boolean和null
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • undefined和其他类型比较、运算
  • undefined和null
  • 运算(+,-,*,/,%)
  • + 拼接操作
  • *-/% 先转化为数字后运算
  • 比较(>,<,>=,<=,==,!=,===,!==)
  • 先转化为数字后运算
  • null和其他类型比较、运算(特殊情况)
  • false和null不相等
  • 字符串类型和null都不相等
  • 数字和null都不行等
  • 数组\对象和null都不相等
  • undefined和null相等
  • 小知识点
  • NaN不等于NaN
  • NaN转为boolean为false
  • 小结
  • 第一步
  • 先看是不是 + 如果是+ 那么看两边有没有字符串,有就是字符串的拼接
  • 第二步
  • 再看是不是比较 如果是比较,看两边是不是都是字符串,如果是 比较的是字符串的unicode码值
  • 第三步
  • 全部转化为数字后进行运算、比较