给出这段JavaScript代码......
var a;
var b = null;
var c = undefined;
var d = 4;
var e = 'five';
var f = a || b || c || d || e;
alert(f); // 4
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下这种技术的用途(我最好的猜测是在这个问题的标题中!)?它是如何/为什么它正常工作?
我的理解是变量f将被赋予第一个变量的最近值(从左到右),该变量的值不是null或未定义,但是我没有设法找到关于这种技术的很多参考资料并且有看到它用了很多.
此外,这种技术是否特定于JavaScript?我知道在PHP中做类似的事情会导致产生f一个真正的布尔值,而不是d它自身的值.
根据R输入语言定义,之间的差&和&&(相应地|和||)是,虽然后者不是前者被矢量.
根据帮助文本,我读到的差异类似于"And"和"AndAlso"(相应地"Or"和"OrElse")之间的区别......意思是:如果不是所有的评估都不是(即如果A为真,则A或B或C始终为真,因此请停止评估A是否为真)
有人会在这里光明吗?另外,R中是否有AndAlso和OrElse?
r logical-operators or-operator boolean-operations and-operator
我正在调试一些JavaScript,并不能解释这||是做什么的?
function (title, msg) {
var title = title || 'Error';
var msg = msg || 'Error on Request';
}
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个提示,为什么这个人正在使用var title = title || 'ERROR'?我有时也会在没有var声明的情况下看到它.
我记得有一段时间关于逻辑运算符的回顾,在这种情况下OR,使用||优于or(反之亦然).
当我回到我身边时,我只能在我的项目中使用它,但我不记得推荐哪个运算符,或者它是否真实.
哪个更好?为什么?
看一下在线源代码,我在几个源文件的顶部看到了这个.
var FOO = FOO || {};
FOO.Bar = …;
Run Code Online (Sandbox Code Playgroud)
但我不知道是什么|| {}.
我知道{}是等于new Object(),我认为这||是为了"如果它已经存在使用其值,否则使用新对象.
为什么我会在源文件的顶部看到这个?
我在Java中有很长的比较,我想知道它们中的一个或多个是否真实.比较字符串很长且难以阅读,因此我将其分解以便于阅读,并自动使用快捷操作符|=而不是negativeValue = negativeValue || boolean.
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Run Code Online (Sandbox Code Playgroud)
negativeValue如果任何默认的<something>值为负,我希望是真的.这有效吗?它会做我期望的吗?我在Sun的网站或stackoverflow上看不到它,但Eclipse似乎没有问题,代码编译和运行.
同样,如果我想执行几个逻辑交叉点,我可以使用&=而不是&&吗?
我试图了解or运营商的行为.请看下面的例子:
$e = false || true;
var_dump($e);
Run Code Online (Sandbox Code Playgroud)
输出符合预期: bool(true);
$f = false or true;
var_dump($f);
Run Code Online (Sandbox Code Playgroud)
输出如预期:bool(false).我理解这一点的方式是=优先级高于Or,这$f就是分配给它的原因false.
但是下面的代码与我的想法完全相反.我认为$foo将分配给自己5,然后与自己进行比较.但是$foo只有在$foo设置的时候才会被分配,这意味着它正在检查$foo之前是否分配给任何东西,为它分配5.
$foo or $foo = 5;
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么会这样吗?
我已经看过很多了:$fp = fopen($filepath, "w") or die();
但我似乎无法找到关于这种"或"语法的任何真实文档.它的功能显而易见,但我可以在任何地方使用它吗?它一定要跟着die()吗?or当你可以使用类似的东西时,是否有任何需要注意的事项
if (file_exists($filepath))
$fp = fopen($filepath,"r");
else
myErrMessage();
Run Code Online (Sandbox Code Playgroud)
我知道这似乎是一个愚蠢的问题,但我找不到任何严格的规则.谢谢.
我正在创建一个控制台应用程序并使用switch语句来创建一个简单的菜单系统.用户输入采用单个字符的形式,在屏幕上显示为大写字母.但是,我确实希望程序接受小写和大写字符.
我理解switch语句用于比较常量,但有可能做类似下面的事情吗?
switch(menuChoice) {
case ('q' || 'Q'):
//Some code
break;
case ('s' || 'S'):
//More code
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
如果无法做到这一点,是否有解决方法?我真的不想重复代码.
这是我用QtCreator创建的一个非常简单的C++应用程序:
int main(int argc, char *argv[])
{
int a = 1;
int b = 2;
if (a < 1 or b > 3)
{
return 1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这不是有效的C++,因为关键字或不是保留关键字.
但是如果我编译并运行它,它没有任何警告就可以正常工作!退出代码为0,如果我改变b = 4,则退出代码为1!
我没有包括任何东西,以确保没有隐藏的定义.
这对我来说真的很奇怪.这是Qt定义的东西吗?我在文档中没有找到任何相关内容.
or-operator ×10
javascript ×3
php ×3
c++ ×2
and-operator ×1
java ×1
namespaces ×1
operators ×1
parameters ×1
program-flow ×1
r ×1
syntax ×1
variables ×1