JavaScript:Number()的预期行为

JavaScript:Number()的预期行为,javascript,node.js,numbers,linefeed,Javascript,Node.js,Numbers,Linefeed,我目前正在从文件中读取字符串整数并将其传递给函数。由于大多数文件都有尾随换行符,我想知道Number()的行为 为了从RHEL内核文件中获取max\u pid变量,我使用异步读取 var options = { encoding: 'utf8' }; fs.readFile('/proc/sys/kernel/pid_max', options, function (err, data) { var max_pid = Number(data); // or trim the s

我目前正在从文件中读取字符串整数并将其传递给函数。由于大多数文件都有尾随换行符,我想知道
Number()
的行为

为了从RHEL内核文件中获取
max\u pid
变量,我使用异步读取

var options = {
  encoding: 'utf8'
};

fs.readFile('/proc/sys/kernel/pid_max', options, function (err, data) {
  var max_pid = Number(data);

  // or trim the string first
  var max_pid = Number(data.trim());
});
我的系统的变量
data
返回字符串
'32768\n'
,并在该字符串上使用
Number()
来剥离换行符。这是
Number()
的预期行为,还是在将变量传递给
Number()
之前,我应该在变量上使用
str.trim()


出于跨环境的一致性以及正确使用函数的原因,我提出此要求。

根据的第9.3.1节,将字符串转换为数字将自动去除前导和尾随空白。如果有一个JavaScript引擎不符合规范的这一部分,我会感到震惊。调用
trim()
是不必要的(但无害的)。

根据第9.3.1节,将字符串转换为数字将自动去除前导和尾随空格。如果有一个JavaScript引擎不符合规范的这一部分,我会感到震惊。调用
trim()
是不必要的(但无害的)。

从字符串的开头和结尾自动修剪空白。它不会删除数字中间的空白,例如,
“12345”
(计算结果为
NaN
)。如果有任何非数字字符,您将收到
NaN


有关详细信息,请参阅。

从字符串的开头和结尾自动修剪空白。它不会删除数字中间的空白,例如,
“12345”
(计算结果为
NaN
)。如果有任何非数字字符,您将收到
NaN

有关更多信息,请参阅