"||" 将值赋给变量时,运算符不起作用

dan*_*ald 0 javascript

这段代码有什么问题?

var sha = 6;
var secondParameter = dan || sha;
alert(secondParameter);
Run Code Online (Sandbox Code Playgroud)

我试过很多浏览器.没有警报.如果我像这样添加var dan:

var sha = 6;
var dan = 5;
var secondParameter = dan || sha;
alert(secondParameter);
Run Code Online (Sandbox Code Playgroud)

警报将会发生.那么"||"中的问题.我看到许多代码使用这样的运算符!所以我不知道..

Bud*_*hiP 7

你没有dan定义.执行在该错误处停止.检查浏览器控制台是否有错误.

定义时dan,继续执行,但这可能不是您想要的.

这种代码的JavaScript中的目的是为了说,如果dan有一个falsy值(计算结果为任何值false值,即0,'',null,false,undefined,或NaN),然后使用的值sha.

IF定义dan超出了您的责任范围(即其他一些脚本应该设置它),然后您可以使用如下构造检查其存在:

secondParameter = typeof(dan) == 'undefined' ? sha : dan;

(未经测试,希望它有效.:)无论如何,它应该给你一个想法)

在此处查看逻辑运算符的文档.

此外,这个问题可能会给你更多的见解:Javascript || 或具有未定义变量的运算符