看完后隐藏功能和C++/STL的暗角上comp.lang.c++.moderated
,我完全惊讶的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作.
这是代码:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
Run Code Online (Sandbox Code Playgroud)
我假设这是C,因为它也适用于GCC.标准中定义了哪里,它来自何处?
这真的听起来像一个简单的问题,但我没有运气搜索.什么是+d
中
function addMonths(d, n, keepTime) {
if (+d) {
Run Code Online (Sandbox Code Playgroud)
手段?
我在几个地方见过这个
function fn() {
return +new Date;
}
Run Code Online (Sandbox Code Playgroud)
我可以看到它返回的是时间戳而不是日期对象,但我找不到有关加号正在做什么的任何文档.
谁能解释一下?
这一行有什么区别:
var a = parseInt("1", 10); // a === 1
Run Code Online (Sandbox Code Playgroud)
这条线
var a = +"1"; // a === 1
Run Code Online (Sandbox Code Playgroud)
这个jsperf测试显示,当前的chrome版本中的一元运算符要快得多,假设它是针对node.js的!
如果我尝试转换不是数字的字符串都返回NaN
:
var b = parseInt("test" 10); // b === NaN
var b = +"test"; // b === NaN
Run Code Online (Sandbox Code Playgroud)
那么我什么时候应该优先使用parseInt
一元加(尤其是在node.js中)???
编辑:双波浪运算符的区别是什么~~
?
这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.
Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.
主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.
此外,这是PHP符号引用的公然副本.我们需要一个JS.
请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接
我在jQuery源代码中找到了以下片段,在eq
函数的定义中:
j = +i + ( i < 0 ? len : 0 )
Run Code Online (Sandbox Code Playgroud)
我很惊讶+i
.相反,我原以为:
j = i + ( i < 0 ? len : 0 )
Run Code Online (Sandbox Code Playgroud)
有什么不同?领导的效用是什么+
?
我正在阅读MDN上的JavaScript重新介绍,在Numbers部分中,它表示只需在前面添加一个加号运算符即可将字符串转换为数字.
例如:
+"42"将产生42的数字输出.
但是在关于运算符的部分中,它说通过向任何数字添加字符串"something",您可以将该数字转换为字符串.他们还提供了以下让我困惑的例子:
"3"+ 4 + 5可能会在输出中产生345的字符串,因为数字4和5也将转换为字符串.
但是,3 + 4 +"5"不会产生12的数字,而不是如他们的例子中所述的字符串75吗?
在第二个例子中,关于运算符的部分不会站在字符串"5"前面的+运算符将该字符串转换为数字5,然后将所有内容添加到等于12?
刚看到下划线的来源:
if (obj.length === +obj.length) {
...
}
Run Code Online (Sandbox Code Playgroud)
怎么plus
办?我以前从未见过这个.
它被认为是开发人员的好习惯吗?
这似乎在其逻辑中非常明显(字符串不能减去)但我想知道如何在JavaScript的底层执行中做出这个决定.在这里如何应用强制规则?
我想从输入元素中获取值作为数字并用 jQuery 计算它们。我正在尝试,但结果不是十进制的。如何解决这个问题?
HTML
<input name="test1" value="1.77" type="hidden" />
<input name="test2" value="1.23" type="hidden" />
Run Code Online (Sandbox Code Playgroud)
jQuery
var a = parseInt($( "input[name='test1']").val(), 10);
var b = parseInt($( "input[name='test2']").val(), 10);
alert( a + b ); // should be 3, but it is only 2
Run Code Online (Sandbox Code Playgroud)
这是一个示例 -> jsfiddle 示例