var number1 = 0; number1 = number1 || 20; console.log("number1 : " + number1); var str1 = ""; str1 = str1 || "abc"; console.log("str1 : " + str1); var bool1 = false; bool1 = bool1 || true; console.log("bool1 : " + bool1);
从上面的代码意图看,我们定义了number1变量并赋值为0, number1 = number1 || 20; 的意思是number1如果有赋值就用之前的赋值,如果没赋值则默认赋值为20。
但语法解析的是,number1 的值为0 ,为假值,则往后运算,所以number1 被赋值为了20 。