前言 文章标题这句话原本是在国外某JavaScript规范里看到的,当时并没有引起足够的重视,直到最近一次出现了bug发现JS里的连等赋值操作的特色(坑)。 网上搜索一番发现一个非常好的连等赋值的(来源1,来源2)例子: var a = {n:1}; a.x = a = {n:2}; console.log(a.x); // 输出? 答案是: console.log(a.x); // undefined 不知道各位有没有答对,至少我是答错了。 遂借此机会好好看看JS连等赋值是怎么回事 赋值顺序? 假设有一句代码: A=B=C; ,赋值语句的执行顺序是从右至左,所以问题在于: 是猜想1: B