js运算规则

83 阅读1分钟

类型转换

1.数据转为数字型

true -> 1
false -> 0
null -> 0
undefined -> NaN

//string类型
Number('') -> 0
Number('  ') -> 0
Number('\n\r\t') -> 0
Number('123')  //去掉引号  123
Number('123a')  //去掉引号  NaN
Number(' 123 ')  //去掉首位空格  123
Number('12  3')  //数字中间有空格  NaN

2.数据转换布尔型

nullundefined0NaN''  -> false   其他为true

3.数据转换字符串

null -> 'null'
undefined -> 'undefined'
数字 -> '数字'
true -> 'true'
false -> 'false'

4.对象转换数据

  1. 使用valueof()转换
  2. 如果还是对象,使用toString()进行转换
  3. 如果还是对象,出现报错

运算规则

1.算数运算

+、-、*、/、%、++、--

规则:

  • 转为数字进行运算
  • 加法运算 x+y ,当参与运算的值有一个是字符串类型,会进行字符串拼接
  • NaN参与算数运算时,结果永远为NaN
[]+{}  //使用对象转换数据

1. [] -> ''
2. {} ->'[object object]'
3. []+{}='[object object]'

2.比较运算

>、<、>=、<=、==、!=、===、!==

>、<、>=、<=:

  • 两端是字符串,比较字典的顺序
  • 两端存在NaN,结果为false
  • 转换成数字后,进行比较

==:

  • 两端类型相同,比较值
  • 两端类型数据,转换成数字型比较
  • 一端是类型数据,一端是对象数据,将对象数据转换为类型数据比较
  • undefined和null只有在与自身比较或相互比较时,结果为true,否则为false
  • 两端存在NaN时,结果为false

===:

  • 类型和值必须都相同
  • 两端存在NaN,结果为false

!=、!==:

  • 对相等进行取反操作

3.逻辑运算

&&、||、!

x&&y

  • x为false,返回x
  • x为true,返回y

x||y

  • x为false,返回y
  • x为true,返回x

表达式

数据的三种形式:

  • 字面量
  • 变量
  • 表达式(具有返回值)