首先Invalid left-hand side in assignment意思是左边的参数引用报错(赋值时左边无效)
产生的原因:
a&& b :如果执行a后返回true,则执行b并返回b的值;如果执行a后返回false,则整个表达式返回a的值,b是不会执行的;
所以b=c只是一个赋值语句,并不是js表达式,得不到返回条件!
只需稍加改动便会正确执行:
a&&(b=c)--这时候(b=c)小括号会将其中的表达式结果隐式的转换成布尔值!参考:js隐式类型转换。
欢迎大家讨论并提出不一样的意见!