运算符
表达式
表达式 = 操作符 + 操作数 每个表达式都有一个运算结果,该结果叫做 返回值,返回值的类型叫做返回类型 所有的表达式可以当作数据使用
=:该表达式返回赋值的结果.:返回属性的值(同()) console.log函数调用返回的结果为undefined
chrome浏览器控制台的环境是REPL环境(读 -- 执行 -- 打印 -- 循环) 除了输出表达式的值外,还会输出表达式的返回值
typeof(1/0) number typeof 1/0 NaN 0/0 NaN NaN和任何数字做任何运算得到的结果都为NaN
isNaN 判断一个属是不是NaN isFinite 判断一个数据是不是有限的
isNaN(undefined) true isNaN(null) false isFinite(null) true isFinite(undefined) false
其他类型使用算树运算符
-
除加号之外的运算符 将原始值转换为数字类型(自动完成转换),然后进行运算 boolean : true -> 1 false -> 0 string: 如果字符串内部是数字,则转换为数字,否则变换为NaN (+"Infinity" --> Infinity)无法识别表达式 null: 0 null + null == 0 undefined: NaN 对象类型 : "[object Object]" --> NaN {}*5 报错 ({}被当作语法块进行操作) ({}*5) NaN
-
加号运算符 加号一边有字符串, + 变为字符串拼接操作
如果两边都是字符串,则直接进行拼接 如果一边是字符串,另一边为其他类型: 数字 --> 数字字符串 boolean --> 字符串true/false null --> "null" undefined --> "undefined" 对象 --> "[object Object]" 两边都没有字符串 对象 + 123 .--> "[object Object]123"
- 自增 自减 x++ : 将x自增一,返回自增之前的值 ++x : 将x自增一,返回自增之后的值
x-- : 将x自减一,返回自减之前的值 --x : 将x自减一,返回自减之后的值
###优先级
++ --
* / %
+ -
从左到右依次查看,如果遇到操作数,将数据的值直接取出,如果遇到两个相邻的运算符,并且左边的运算符大于右边的运算符,则直接运行左边的运算符
var x = 1;
var y = x + x++ * ++x;
console.log(y); //4
var x = 1;
y = x++ + ++x * ++x + ++x; //18
本文深入解析JavaScript中的运算符,包括赋值、算术、比较、逻辑等各类运算符的使用及优先级规则,同时探讨了数据类型转换和特殊值如NaN的处理方式。
8973

被折叠的 条评论
为什么被折叠?



