在 Javascript 中,特别是 Google 的 V8 引擎,会在“||”列表或条件中编写多个函数调用 在确定 if 比较的最终结果之前执行所有函数?
例如
var path = 'C:\\MyFiles\\file.doc';
if ( path.match(/\.docx?/gi)
|| path.match(/\.xlsx?/gi)
|| path.match(/\.xml/gi)
|| path.match(/\.sql?/gi)) {
// Success
} else {
// Failed
}
Run Code Online (Sandbox Code Playgroud)
所以我想问:这与'&&'条件的工作方式类似†,但相反吗?第一个条件评估为 TRUE 会导致跳过其余条件并执行成功逻辑吗?
我在我正在寻找的任何文档中都找不到这一点。这不会产生巨大的差异,但是我很好奇这实际上是如何执行的。
†(与 And '&&' 类似,我的意思是第一个条件评估为 FALSE 将停止执行其余条件并继续执行其他条件。)
我在C++工作,最近一直在使用指针.我发现有几种方法可以初始化我需要使用的内存块.
void functioncall(int* i)
{
*i = *i + 1;
}
int main(){
int* a = (int*)malloc(sizeof(int));
int az = 0;
functioncall(a);
functioncall(&az);
}
Run Code Online (Sandbox Code Playgroud)
请注意,第一个变量int*a被声明为指针,然后我为它内存了malloc.但是,使用az它不是指针,但在调用函数时,我得到了内存的地址.
所以,我的问题是:是否有一种首选的方式=,或者是否有任何一种惩罚?