TypeError: split 不是 JavaScript 中的函数

TypeError: split 不是 JavaScript 中的函数

TypeError: split is not a function in JavaScript

“TypeError: split is not a function”错误发生在我们
split()对非字符串类型的值调用该方法时。

要解决此错误,请在调用之前将值转换为字符串split(),或确保仅对split字符串调用该方法。

typeerror split 不是函数

下面是错误如何发生的示例。

索引.js
const str = new Date(); // ⛔️ Uncaught TypeError: str.split is not a function const result = str.split(' ');

我们在一个对象上调用了
String.split
方法并得到了错误。

要解决该错误,请确保仅对split()字符串调用该方法。

在使用#之前将值转换为字符串split()

您可以使用String()构造函数将大多数值转换为字符串。

索引.js
const str = new Date(); console.log(typeof str); // 👉️ object const result = String(str).split(' '); console.log(result); // 👉️ ['Fri', 'Dec', ...]
我们使用String()构造函数将日期对象转换为字符串,以便能够调用该split()方法。

您还可以使用该toString()方法将大多数值转换为字符串。

索引.js
const str = new Date(); console.log(typeof str); // 👉️ object const result = str.toString().split(' '); console.log(result); // 👉️ ['Fri', 'Dec', ...]

toString()方法返回对象的字符串表示形式。

string在使用之前检查值是否是类型split()

split()或者,您可以在调用该方法之前检查该值是否为字符串

索引.js
const str = 100; const result = typeof str === 'string' ? str.split(' ') : ''; console.log(result); // 👉️ ""

我们使用三元运算符来检查str变量是否存储字符串。

如果是,则返回逗号左侧的值,否则返回右侧的值。

您还可以使用一个简单的if语句来检查该值是否属于 type
string

索引.js
const str = 100; let result = ''; if (typeof str === 'string') { result = str.split(' '); } console.log(result); // 👉️ ""
如果该值是一个字符串,我们返回调用该方法的结果,否则我们返回一个空字符串以保持一致性。 split()

如果错误仍然存​​在,请检查console.log您调用split方法的值并使用运算符检查其类型typeof

如果该值是一个对象,则很有可能您忘记访问需要调用split()方法的特定属性。

索引.js
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 个参数:

姓名 描述
分隔器 描述每个拆分应该发生的位置的模式。
限制 一个整数,用于指定要包含在数组中的子字符串数的限制。
索引.js
// 👇️ [ '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字符串调用该方法。