我知道string.split()不会,但我尝试了解某人作出反应的应用程序,和我碰到这样的:string.split是做什么用的?
newStr = newStr.split ? newStr.split(' ').reverse().join(' ') : newStr;
我知道string.split()不会,但我尝试了解某人作出反应的应用程序,和我碰到这样的:string.split是做什么用的?
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(' ');
...这有点奇怪,'if(typeof newStr ==“string”))newStr = newStr.split()。...;'会更合适。 – Bergi
你试过了吗?输入''foo bar'.split('').reverse()。join('')'到控制台中。如果你知道'.split'是什么,那么究竟是什么让你感到困惑? –
这是一个常见的技巧问题,在面试中问lol –
提示:它正在执行'str.split'而不是'str.split()' – slebetman