Javascript string.split做什么?
我知道string.split()的作用,但我试图理解一些人对应用程序的反应,我遇到了以下问题:Javascript string.split做什么?,javascript,Javascript,我知道string.split()的作用,但我试图理解一些人对应用程序的反应,我遇到了以下问题: newStr = newStr.split ? newStr.split(' ').reverse().join(' ') : newStr; 在这种情况下,newStr.split正在测试newStr是否有.split属性-如果有,它将假定它是一个方法并调用.split(''.reverse().join(')(颠倒单词顺序),否则它将返回newStr 如果newStr为null或undefin
newStr = newStr.split ? newStr.split(' ').reverse().join(' ') : newStr;
在这种情况下,
newStr.split
正在测试newStr
是否有.split
属性-如果有,它将假定它是一个方法并调用.split(''.reverse().join(')
(颠倒单词顺序),否则它将返回newStr
如果newStr
为null
或undefined
,或者如果某个对象的.split
属性不是返回数组的函数,则该代码将导致错误
(如Bergi所述)直接测试newStr的类型更有意义:
newStr = typeof newStr === "string" ? newStr.split(' ').reverse().join(' ') : newStr;
// OR
if (typeof newStr === "string") newStr = newStr.split(' ').reverse().join(' ');
它反转输入“句子”字符串中的单词。如果输入没有split
方法或没有任何空格,则返回原始输入 你试过了吗?键入'foo bar'。拆分(“”).reverse()。将(“”)
连接到控制台中。如果你知道.split
做什么,那么到底是什么让你困惑呢?这是采访中常见的一个技巧性问题。提示:它在做str.split
而不是str.split()
如果它包含空格,它看起来应该拆分字符串。如果你知道split
做什么,你不明白语句的哪一部分?…这有点奇怪,if(typeof newStr==“string”))newStr=newStr.split()代码>会更合适。将其称为“句子”听起来像是该代码片段会关心标点符号,而它不关心:-)