JS 运算子 与 优先性及相依性 DAY53

运算子

MDN : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Expressions_and_Operators

一元运算子

delete , typeof 等等

三元运算子

(条件 ? 为 true 回传此结果(表达式) : 为 false 回传此结果(表达式))

var dollar = 100;var result = (dollar > 5 ? '有钱' : '没钱');// 三元运算子回传 有钱// 再赋予到 result 上// 由于 = 也是运算子 所以会回传 有钱console.log(result); //有钱

优先性及相依性

MDN : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

优先性

决定运算子彼此之间被语法解析的方式
优先性较高的运算子会成为优先性较低运算子的运算元
ex:
乘号优先性 大于 加号

相依性

决定运算方向
ex:
加号 : 由左至右
等号 : 由右至左


console.log(1 < 2 < 3); // trueconsole.log(3 > 2 > 1); // false

这里一定会好奇
console.log(3 > 2 > 1);
为什么是false呢???
说明一下

// console.log(3 > 2 > 1);// 这里会拆解成// console.log(3 > 2 ); // 回传 true// console.log(true > 1); // true 再跟 1 比对// true 转型成数值 1// 所以会变成 console.log( 1 > 1); //false

再来看一个例子

var a = 1;var b = 2;a = b = 3;// 这里 a 实际接收到的是 3 赋予到 b 所 "回传的结果"// 并非直接取 b 的结果console.log(a,b);

这时一定心想
XXX 是在绕口令是不是!!
我们再举一个例子

var b = {};// 在 b 物件新增 a 属性 且不可写入//这段会在后面介绍Object.defineProperty(b,'a',{    value : 2,    writable : false,})var a = 3;a = b.a = 1;// 因为 b.a = 1 是表达式,所以会回传一个结果// 因此 a 是接收 b.a = 1 此表达式所回传的结果console.log(a , b.a); // 1  b.a依然是2

那今天的介绍就到这里
若有任何问题 或 内容有误
都可以跟我说唷!!http://img2.58codes.com/2024/emoticon51.gif


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章