美文网首页
js运算符.和=优先级;var d = {}; d.a = d

js运算符.和=优先级;var d = {}; d.a = d

作者: Jonath | 来源:发表于2020-01-07 10:52 被阅读0次

在某技术平台上看到下面的代码, 心想这些也要放出来? 但是放到浏览器调试窗口运行下, 懵逼了, 跟预想的结果不太一样啊; 上网查了下类似问题, 发现其实是运算符优先级的问题: . 大于 = 的优先级
下面代码计算规则优先计算., 再计算=

var d = {}; 
d.a = d = {"a": 1};
// d.a = 1
第一步: 先运算.运算符, 取d.a
第二步: 再运算=, 由于=运算符是从右到左的执行顺序, 所以 先计算 d = {"a": 1}, 此时d的引用改为指向{"a": 1}, 并非上面第一步中的d
第三步: 将第二步的计算结果给到第一步中的d.a
image.png

相关文章

网友评论

      本文标题:js运算符.和=优先级;var d = {}; d.a = d

      本文链接:https://www.haomeiwen.com/subject/gwhractx.html