二、 表达式
- 表达式 = 运算符+操作数
- 每个表达式都有一个运算结果,该结果叫做返回值,返回值的类型叫做返回类型
- 所有的表达式都可以当做数据来运行
1、 运算符的返回值和类型
- = :返回赋值的结果
- . :属性访问表达式,返回的是属性的值
[ ]
:属性访问表达式,返回的是属性的值- () :函数调用表达式,返回结果取决于函数运行
- 如果是一个声明+赋值的表达式,返回的结果是undefined
2、算数运算符
- 数学运算符
- +、-、*、/
- 正负
- %
- ++、–
- **幂运算
- 注意事项
- 小数运算是不精确的
- 除数为 0
- 如果被除数是正数,得到的结果是infinity(正无穷)
- 如果被除数是负数,得到的结果是infinity(负无穷)
- 0/0得到的结果是NaN,非数字
- typeof函数返回类型是string
- isNaN函数,该函数用于判断一个数据是不是NaN,返回类型是布尔类型
- isFinite函数,该函数用于判断一个数据是否是有限的
3、 其他类型使用算数运算符
- ** 除+号以外的算数运算符,将原始类型转换为数字类型,然后进行运算**
- string:如果字符串内部是一个正确的数字,直接转换成数字,如果是一个非数字,得到的是NaN
- NaN虽然是数字,但与任何数字做运算得到的结果都是NaN
- null转换成数字是0
- undefined转换成数字是NaN
- 加号运算
- 加号一边为字符串,将转换成为字符串拼接
- 加号两边都没有字符串,一边有对象,将对象转换成为字符串
- 如果字符串是一个空字符串(没有任何内容),转换为0,字符串转换时忽略空格
4、自增自减
- ++ 将某个变量值加1
--
将某个变量值减1- x++,将变量值加1,得到的是表达式自增之前的值
- ++x,将变量值加1,得到的是表达式自增之后的值
**优先级1、 ++ – 2、 * / % 3、+ - **