TypeError: padStart 不是 JavaScript 中的函数
TypeError: padStart is not a function in JavaScript
“TypeError: padStart is not a function” 当我们
padStart()
对一个不是字符串的值调用该方法时发生。
要解决该错误,请使用该toString()
方法将值转换为字符串,或确保仅对padStart
字符串调用该方法。
下面是错误如何发生的示例。
const num = 123; // ⛔️ TypeError: padStart is not a function const result = num.padStart(5, '0');
我们在对象上调用了
String.padStart
方法并返回了错误。
padStart
只在字符串上调用方法
要解决该错误,请确保仅对padStart()
字符串调用该方法。您可以使用toString()
方法将大多数值转换为字符串。
const num = 123; const result = num.toString().padStart(5, '0'); console.log(result); // 👉️ "00123"
您还可以使用String()
构造函数将值转换为字符串。
const num = 123; const result = String(num).padStart(5, '0'); console.log(result); // 👉️ "00123"
String()
构造函数返回所提供值的字符串表示形式。
在调用之前检查该值是否为字符串padStart
padStart()
或者,您可以在调用该方法之前检查该值是否为字符串
。
const str = null; const result = typeof str === 'string' ? str.padStart(5, '0') : ''; console.log(result); // 👉️ ""
我们使用三元运算符来检查str
变量是否存储字符串。
如果是,则返回逗号左侧的值,否则返回右侧的值。
您还可以使用简单的if
语句来检查该值是否为字符串。
const str = null; const result = ''; if (typeof str === 'string') { result = str.padStart(5, '0'); } console.log(result); // 👉️ ""
padStart
调用padStart
数组中的所有字符串
如果要对padStart
数组中的所有字符串使用该方法,可以使用该map
方法遍历数组并对padStart
每个字符串调用该方法。
const arr = ['A', 'B', 'C']; const result = arr.map(str => str.padStart(2, '_')); // 👇️ ['_A', '_B', '_C'] console.log(result);
我们传递给
Array.map
方法的函数会针对数组中的每个元素进行调用。
该map()
方法返回一个新数组,其中包含从回调函数返回的值。
如果错误仍然存在,请检查console.log
您调用padStart
方法的值并使用运算符检查其类型typeof
。
If the value is an object, there’s a very good chance that you are forgetting to
access a specific property on which you need to call the padStart()
method.
// ✅ with objects const obj = { name: 'abc', }; const result1 = obj.name.padStart(5, '_'); console.log(result1); // 👉️ __abc // ----------------------------------- // ✅ with arrays const arr = ['a', 'b', 'c']; const result2 = arr[0].padStart(5, '-'); console.log(result2); // 👉️ ----a
We accessed a property in the object and an element in the array before calling
padStart
.
Conclusion #
The “TypeError: padStart is not a function” occurs when we call the
padStart()
method on a value that is not a string.
To solve the error, convert the value to a string using the toString()
method or make sure to only call the padStart
method on strings.