1

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

为了max_pid从 RHEL 内核文件中获取变量,我使用了异步读取。

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()应该在变量上使用?str.trim()Number()

我问这个是因为跨环境的一致性,以及正确使用功能。

4

2 回答 2

3

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

于 2013-06-09T01:58:57.930 回答
1

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

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

于 2013-06-09T02:00:15.240 回答