TypeError: toFixed 不是 JavaScript 中的函数
TypeError: toFixed is not a function in JavaScript
当对toFixed()
不是number
.
要解决该错误,请在调用该方法之前将该值转换为数字,
toFixed
或者仅对数字调用该方法。
下面是错误如何发生的示例。
索引.js
const num = '123'; // ⛔️ Uncaught TypeError: num.toFixed is not a function const result = num.toFixed(2);
我们在具有字符串类型的值上调用了
Number.toFixed()
方法,因此发生了错误。
number
在调用toFixed()
方法之前将值转换为 a
要解决此错误,请在调用该toFixed()
方法之前将值转换为数字。
索引.js
const num = '123.456'; const result = Number(num).toFixed(2); console.log(result); // 👉️ 123.46
如果您知道该值是包装在字符串中的有效数字,请Number()
在调用该toFixed()
方法之前将其传递给构造函数。
您还可以使用
parseFloat
函数将值转换为数字。
索引.js
const num = '123.456ABC'; const result = parseFloat(num).toFixed(2); console.log(result); // 👉️ 123.46
该parseFloat()
函数返回从给定字符串解析的浮点数,或者NaN
如果第一个非空白字符无法转换为数字。
该Number.toFixed()
方法使用定点表示法格式化数字,并且只能在数字上调用。
number
在调用之前检查值是否是类型toFixed()
toFixed
或者,您可以在调用该方法之前检查该值是否具有数字类型。
索引.js
const num = null; const result = typeof num === 'number' ? num.toFixed(2) : 0; console.log(result); // 👉️ 0
if/else
我们使用了与语句非常相似的三元运算符。
如果问号左边的表达式求值为真值,我们返回冒号左边的值,否则返回右边的值。
我们检查num
变量是否存储了一个数字,如果是,我们返回调用该toFixed
方法的结果,否则我们返回0
。
您还可以在调用方法if/else
之前使用简单的语句检查值是否为数字。toFixed()
索引.js
const num = null; let result = 0; if (typeof num === 'number') { result = num.toFixed(2); } console.log(result); // 👉️ 0
如果值是 a number
,我们调用它的toFixed()
方法,否则,
result
变量保持设置为0
。
如果错误仍然存在,
console.log
您正在调用方法的值并使用运算符记录其类型。 toFixed
typeof
如果该值是对象或数组,您可能应该在调用
toFixed()
方法之前访问对象的特定属性或数组中的特定索引。
结论
当对toFixed()
不是number
.
要解决该错误,请在调用该方法之前将该值转换为数字,
toFixed
或者仅对数字调用该方法。