问题标签 [comma-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 逗号运算符作为回报
我正在从一页阅读 JS,这就是我发现的(源代码已被 google chrome 开发工具反混淆):
第一个逗号运算符操作数(那个a.replace()
)有什么技巧吗?
从我的角度来看,这a.replace(/[^\w\s\.\|``]/g,
部分是完全多余的,可以删除。
我错过了什么吗?
javascript - 在 javascript 三元运算符中正确使用逗号
我没有使用 if else 语句,而是尝试使用三元运算符,但在我的语句中某处出现语法错误。
有人可以告诉我哪里出错了吗?
声明是:
- my_alert 是一个有 2 个参数的函数。
- 状态只是评估为真或假。
- 当我将超过 1 个参数传递给上述表达式时,它不喜欢使用逗号。
在 chrome 和 firefox 中,函数运行时会显示“alert-success”或“alert-info”。它错过了第一个参数。
我已经在 stackoverflow 上查看了答案,但无论如何它告诉我我正在做的事情是正确的。
任何帮助都会很棒。
c++ - while 循环中的智能指针测试:使用逗号运算符?
我最近看到这样的代码:
这是一个好主意吗?它有效吗?
我将添加相应的 for 循环以方便参考:
...也没有让我觉得真正的最佳...
c++ - 数字常量之前的预期不合格ID?
我在线路上遇到错误102, 115, and 128
。我究竟做错了什么?它说:
数字常量之前的预期不合格 id
我不知道那是什么意思。我已经尝试解决这个问题一周了,它将于本周三在我的 C++ 课上到期。我真的可以在这里使用一些外部建议。我究竟做错了什么:
c++ - 在一行中删除多个指针。C++
这会删除所有指针还是仅删除第一个指针 p1?
c - 像 "for(i=1;i<=10;printf("%d\n";i),i++) 这样的东西在 C 中是否有效且无 UB?
以下两个代码块是否完全相同并实现相同的东西?当我运行程序时它显示相同的东西,但我希望能得到一些严格的解释。
和
循环需要有效的for
C 语句作为参数,不是吗?但是,即使我已经在 StackOverflow 上验证了类似语句x+=4,y=x*2;
是安全的,因为这里的逗号充当序列点,但在上面的循环printf("%d\n",i),i++)
中作为参数传递的语句是否相同?for
如果是,请费心回答由此产生的小问题:
是否
comma
充当涉及许多逗号分隔的语句中的序列点函数调用如下:
printf("Enter number\n"),scanf("%d",&number),printf("You entered %d",number);
c++ - C ++ 11中的常量表达式中是否允许逗号运算符?
在回答关于 C++11的 SO 的这个问题的过程中,我意识到在 C++03(以及 C 中)中,在constant-expression中明确禁止使用逗号运算符。
C++03 Standard 关于常量表达式的第 5.19/1 段说:
[...] 特别是,除了 sizeof 表达式,不得使用函数、类对象、指针或引用,不得使用赋值、递增、递减、函数调用或逗号运算符。
然而,在 C++11 中,最后提到逗号运算符的部分似乎消失了。虽然 C++11 标准的第 5.19/2 段明确规定赋值、递增、递减和非constexpr
函数调用表达式不应作为常量表达式的子表达式出现,但逗号运算符的使用似乎并不被禁止了。
例如,以下程序在 GCC 4.7.2 和 Clang 3.3 上编译得很好std=c++11
(除了编译器警告说逗号运算符无效并且x
和arr
变量未使用):
但是,必须说,即使是以下程序也可以使用该-std=c++03
选项(在 Clang 和 GCC 上)编译良好,这显然是不正确的,鉴于上述 C++03 标准的引用:
问题:
C++03 和 C++11 在常量表达式中是否允许使用逗号运算符有区别,还是我遗漏了什么?
作为一个奖励(非建设性)问题,我很想知道为什么逗号运算符不能用于 C++03 中的常量表达式。
c++ - 从 x?y:z 表达式中得到了意想不到的答案
这是一个简单的 C++ 片段:
我认为结果应该是:
但实际上结果是:
有人可以解释为什么maxx
不是20
吗?谢谢。
c++ - C++中逗号运算符的语法使用
我正在浏览别人的代码,但我无法获得以下语法
和
按照语义,很明显,在第一个中,变量 c 被分配了“L”或“R”。在第二个中,x-- 和 putchar() 都被执行。但是逗号运算符在这里的作用到底是什么?
c++ - 与 ? 一起使用时的逗号运算符优先级 : 操作员
我不知道为什么下面两个子程序的结果不同:
但是对于这些情况,结果是相同的:
为什么括号对后面的语句有影响"?"
,而对后面的语句没有区别":"
?你有什么主意吗?