TypeError: split 不是 JavaScript 中的函数
TypeError: split is not a function in JavaScript
“TypeError: split is not a function”错误发生在我们
split()
对非字符串类型的值调用该方法时。
要解决此错误,请在调用之前将值转换为字符串split()
,或确保仅对split
字符串调用该方法。
下面是错误如何发生的示例。
const str = new Date(); // ⛔️ Uncaught TypeError: str.split is not a function const result = str.split(' ');
我们在一个对象上调用了
String.split
方法并得到了错误。
要解决该错误,请确保仅对split()
字符串调用该方法。
在使用#之前将值转换为字符串split()
您可以使用String()
构造函数将大多数值转换为字符串。
const str = new Date(); console.log(typeof str); // 👉️ object const result = String(str).split(' '); console.log(result); // 👉️ ['Fri', 'Dec', ...]
String()
构造函数将日期对象转换为字符串,以便能够调用该split()
方法。您还可以使用该toString()
方法将大多数值转换为字符串。
const str = new Date(); console.log(typeof str); // 👉️ object const result = str.toString().split(' '); console.log(result); // 👉️ ['Fri', 'Dec', ...]
该toString()
方法返回对象的字符串表示形式。
string
在使用之前检查值是否是类型split()
split()
或者,您可以在调用该方法之前检查该值是否为字符串
。
const str = 100; const result = typeof str === 'string' ? str.split(' ') : ''; console.log(result); // 👉️ ""
我们使用三元运算符来检查str
变量是否存储字符串。
如果是,则返回逗号左侧的值,否则返回右侧的值。
您还可以使用一个简单的if
语句来检查该值是否属于 type
string
。
const str = 100; let result = ''; if (typeof str === 'string') { result = str.split(' '); } console.log(result); // 👉️ ""
split()
如果错误仍然存在,请检查console.log
您调用split
方法的值并使用运算符检查其类型typeof
。
如果该值是一个对象,则很有可能您忘记访问需要调用split()
方法的特定属性。
const obj = { site: 'bobby hadz com', }; const result = obj.site.split(' '); console.log(result); // 👉️ [ 'bobby', 'hadz', 'com' ]
该对象有一个site
字符串类型的属性,所以我们必须先访问该属性才能使用该String.split()
方法。
String.split方法采用
分隔符,并在每次出现所提供的分隔符时将字符串拆分为一个数组。
该String.split()
方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 描述每个拆分应该发生的位置的模式。 |
限制 | 一个整数,用于指定要包含在数组中的子字符串数的限制。 |
// 👇️ [ 'bobby', 'hadz', 'com' ] console.log('bobby-hadz-com'.split('-')); // 👇️ [ 'bobby', 'hadz', 'com' ] console.log('bobby hadz com'.split(' ')); // 👇️ [ 'b', 'o', 'b', 'b', 'y' ] console.log('bobby'.split(''));
结论
“TypeError: split is not a function”错误发生在我们
split()
对非字符串类型的值调用该方法时。
要解决此错误,请在调用之前将值转换为字符串split()
,或确保仅对split
字符串调用该方法。