TypeError: substring 不是 JavaScript 中的函数
TypeError: substring is not a function in JavaScript
当对substring()
不是string
.
要解决该错误,请在调用该方法之前将值转换为字符串,
substring
或者仅对字符串调用该方法。
下面是错误如何发生的示例。
索引.js
const str = 123456; // ⛔️ Uncaught TypeError: str.substring is not a function const result = str.substring(0, 3);
我们对导致错误的类型的值调用了
String.substring()
方法。number
在调用之前将值转换为字符串substring()
我们可以在调用substring()
方法解决错误之前将值转换为字符串。
索引.js
const value = 123456; // ✅ Works const result = String(value).substring(0, 3); console.log(result); // 👉️ "123"
如果您知道该值可以转换为有效的字符串,请
String()
在调用该String.substring()
方法之前使用构造函数。
在调用之前检查值是否为字符串类型substring()
substring
或者,您可以在调用该方法之前检查该值是否具有字符串类型。
索引.js
const str = null; const result = typeof str === 'string' ? str.substring(0, 3) : ''; console.log(result); // 👉️ ""
if/else
我们使用了三元运算符,它与语句非常相似。
如果问号左侧的表达式计算结果为真值,则运算符返回冒号左侧的值,否则返回右侧的值。
您也可以使用简单的if
语句来获得相同的结果。
索引.js
const str = null; let result = ''; if (typeof str === 'string') { result = str.substring(0, 3); } console.log(result); // 👉️ ""
我们检查str
变量是否存储字符串。如果是,我们返回调用该substring
方法的结果,否则,我们返回一个空字符串。
如果错误仍然存在,
console.log
请检查您调用该方法的值并确保它是一个有效的字符串。 substring()
如果该值是一个对象或数组,您可能应该在调用该
substring()
方法之前访问特定的对象属性或特定的数组索引。
索引.js
// ✅ with objects const obj = { name: 'bobbyhadz.com', }; const str1 = obj.name.substring(0, 3); console.log(str1); // 👉️ bob // -------------------------------------- // ✅ with arrays const arr = ['bobby', 'hadz', 'com']; const str2 = arr[0].substring(0, 3); console.log(str2); // 👉️ bob
在调用方法之前,我们访问了name
对象的属性和第一个数组元素。String.substring()
String.substring()
方法返回从开始索引到排除结束索引的字符串片段。
该方法采用以下参数:
姓名 | 描述 |
---|---|
起始索引 | 要包含在返回的子字符串中的第一个字符的索引 |
结束索引 | 要从返回的子字符串中排除的第一个字符的索引 |
如果未end
指定索引,则切片将转到字符串的末尾。
结论
当对substring()
不是string
.
要解决该错误,请在调用该方法之前将值转换为字符串,
substring
或者仅对字符串调用该方法。