深入研究我的 webGL 项目中使用的 glMatrix-0.9.5.min.js
源代码,我遇到了几行这样的代码...
vec3.negate = function (a, b)
{
b || (b = a); // <-- What exactly does this line do?
b[0] = -a[0];
b[1] = -a[1];
b[2] = -a[2];
return b;
};
不确定该代码在做什么,考虑到它是第三方文件,即使它是一个错误,但我也知道我还没有完全跟上 JavaScript 作为一种语言的速度。 (例如,我因此才了解协议(protocol)。奇怪/有趣的概念。)
那么这是否有效?如果有效,它到底在做什么?
我猜它是以下内容的简写,表示“如果未设置 'b',请将其设置为 a”
if(!b)
{
b = a;
}
也可以只写
if(!b) b = a;
我认为这要清楚得多。但同样,我在猜测这到底意味着什么/做什么。可能是错误的。
跟进:
这两个if条件是否相等?
if(!b){ ... }
if(b == undefined){ ... }
我想知道“undefined”和定义的值“null”之间是否存在复杂性
最佳答案
更好的写法是
b = b || a;
关于javascript - 在 Javascript 中,为什么要写 'b || (b = a);' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169711/