首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript .split

Javascript .split
EN

Stack Overflow用户
提问于 2014-08-04 05:27:13
回答 6查看 126关注 0票数 0

这个问题可能有点傻,但我只需要知道。下面是我编写的一些非常基本的代码:

代码语言:javascript
复制
function LongestWord(sen) { 
  var longest = "";
  var check = ""; //I've even changes the value of var check into a integer and still returned the same

  for(var i = 0; i < sen.length; i++){
    check = sen.split(" ");
  }

  return check;              
}

console.log(LongestWord("John Max"));

这是返回的内容:[ 'John', 'Max' ]

这是否意味着当对变量调用.split()方法时,不管它是哪种类型,它都会将它转换为数组吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-04 05:37:45

JavaScript中的变量是动态的;这意味着它们可以在执行脚本期间更改类型。

例如:

代码语言:javascript
复制
var a = 123; // i'm a number value

a = []; // now i'm an array

a = 'hello'; // and now i'm a string

当将新值赋值时,任何先前的值都会被丢弃(*)。

尽管如此,您的脚本中的逻辑可以这样编写:

代码语言:javascript
复制
var longest = null;

sen.split(' ').forEach(function(word) {
    if (longest === null || word.length > longest.length) {
        longest = word;
    }
});

return longest;

(*)垃圾收集行为在标量和非标量之间是不同的。

票数 1
EN

Stack Overflow用户

发布于 2014-08-04 05:30:39

不,split()是在Javascript中的字符串上定义的一种方法,它返回一个数组,其中包含分裂的单词。

代码语言:javascript
复制
"hello, world".split(",") // returns [hello, world]

所以你不能在每一种对象类型上使用它。

票数 1
EN

Stack Overflow用户

发布于 2014-08-04 05:29:53

是的,如果你用字符串调用它。“拆分()方法将字符串对象拆分为字符串数组,方法是将字符串拆分为子字符串。”

准确地说,.split()是一个String方法,所以它可以工作在String对象上。如前所述,它将字符串转换为由传递给.split()的分隔符值分隔的字符串数组。如果将空字符串作为分隔符值传递,则返回包含原始字符串的字符数组。

请参见:“注意:当字符串为空时,split返回一个包含一个空字符串的数组,而不是一个空数组。”

声称不能在非字符串对象上调用它的答案是正确的。在非字符串对象上调用它将导致Uncaught TypeError: undefined is not a function

例如:

代码语言:javascript
复制
var name = "234";
var newName = name.split("3");
console.log(newName);

返回"2“、"4”。

代码语言:javascript
复制
var name = 234;
var newName = name.split("3");
console.log(newName);

返回上面的TypeError。

如果坚持对非字符串对象使用.split(),可以使用.call()调用它,通过原型继承访问.split()方法,如下所示。

代码语言:javascript
复制
var name = 234;
var newName = String.prototype.split.call(name, "3");
console.log(newName);

这个输出"2","4“到控制台。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25112243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档