繁体   English   中英

JavaScript:Number()的预期行为

[英]JavaScript: Intended behavior of Number()

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

要从RHEL内核文件获取max_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() Number()

我问这是出于各种环境的一致性以及正确使用功能的原因。

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

从字符串的开头和结尾自动修剪空白。 它不会从数字的中间删除空格,例如"12 345" (评估为NaN )。 如果有任何非数字字符,您将收到NaN

有关更多信息,请参阅此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM