是加号login+在Node.js文档中处理域错误?

在这个文档中…

http://nodejs.org/api/domain.html

…这一行发生:

var PORT = +process.env.PORT || 1337; 

加号是否是错字? 如果不是,它表明什么?

加号是一元运算符,它将process.env.PORT强制转换为string中的数字。

背景:

 // since all env variables are strings process.env.PORT = 'somePortSavedAsSTring'; 

process.env.PORT必须是一个string,如果没有做任何事情节点会抛出一个错误。 使用+符号防止这种情况发生,基本上将string(将其从string更改为数字)添加到无。

 port = ( nothing ) + 'somePortSavedAsSTring'; // makes it a number! // whitespace is removed by convention, so other programmers know the intent port = +'somePortSavedAsSTring'; 

使用加号就是确保variablestypes的有效方法。 你可以使用:

 var PORT = Number(process.env.PORT) || 1337; 

并获得完全相同的效果。 这一切只取决于你在一天结束时的编码风格。