JavaScript赋值运算符-奇怪吗?
我遇到了这两个案例:JavaScript赋值运算符-奇怪吗?,javascript,operators,variable-assignment,assignment-operator,Javascript,Operators,Variable Assignment,Assignment Operator,我遇到了这两个案例: var z=“blahblah”,h var a=b=“blah” 玩弄这些,我得出结论: 相当于: var z= "blahblah"; var h; b = "blah"; var a=b; 相当于: var z= "blahblah"; var h; b = "blah"; var a=b; 这是我试图解释的(2): 它是否与运算符优先级和关联性有关?=运算符接受两个操作数并从左向右运行。如果解释正确,可以用同样的方式解释(1)吗 最后,有没有关于“怪异”
var z=“blahblah”,h代码>
var a=b=“blah”代码>
var z= "blahblah";
var h;
b = "blah";
var a=b;
var z= "blahblah";
var h;
b = "blah";
var a=b;
=
运算符接受两个操作数并从左向右运行。如果解释正确,可以用同样的方式解释(1)吗
最后,有没有关于“怪异”JavaScript的来源
谢谢 那么,你在万维网上没有发现任何有趣的东西吗?@Jai没有具体说明。语法(1)只是声明多个变量的一种简化方式,它们可以被指定一个类似于
z
的值,也可以不类似于h
。这和你翻译它的方式完全一样,从左到右处理comas。分配的工作方式不同,流程从右到左。它解析右边的内容,然后将其指定给左边的部分。如果右边的部分也有一个附件,它也会首先解决右边的内容。直到所有的表达式都被解析。@Defaceo看到它只是没有花太多的时间来搜索一个。@RobG是的,完全正确,如果var a=b=“blah”
位于函数内部,b之前未声明,a将是函数的局部,b将被视为全局(如果严格模式关闭)