Fe-interview: [js] 第102天 准确说出'1,2,3,4'.split()的结果是什么(包括类型和值)?

Created on 26 Jul 2019  ·  8Comments  ·  Source: haizlin/fe-interview

第102天 准确说出'1,2,3,4'.split()的结果是什么(包括类型和值)?

js

Most helpful comment

上面的同学说的第二个参数的含义有一点错误
运行结果为 ["1,2,3,4"],是一个长度为1的Array,元素类型为String。
关于split函数,其可以接受两个参数,第一个参数是字符串或正则表达式,从该参数指定的地方分割 stringObject;但是第二个参数并不是说限制分割次数,而是限制返回Array的最大长度,举个例子:

let a = '1,2,3,4,5,6';
a.split(',', 3);  // 返回的结果为 ["1", "2", "3"]
a.split(',', 5);  // 返回的结果为 ["1", "2", "3", "4", "5"]

如果说split内没有参数值的话,就默认将整个字符串作为一个元素返回一个长度为1的Array

All 8 comments

["1,2,3,4"] 结果为一个长度为1的数组 元素的值类型为字符串
因为split 接收两个参数
第一个参数是用于判断如何分割的,可接受字符串或者正则表达式,如果为空会将整个字符串不进行分割直接作为数组的单个元素返回。
第二个参数是用于限制分割次数

上面的同学说的第二个参数的含义有一点错误
运行结果为 ["1,2,3,4"],是一个长度为1的Array,元素类型为String。
关于split函数,其可以接受两个参数,第一个参数是字符串或正则表达式,从该参数指定的地方分割 stringObject;但是第二个参数并不是说限制分割次数,而是限制返回Array的最大长度,举个例子:

let a = '1,2,3,4,5,6';
a.split(',', 3);  // 返回的结果为 ["1", "2", "3"]
a.split(',', 5);  // 返回的结果为 ["1", "2", "3", "4", "5"]

如果说split内没有参数值的话,就默认将整个字符串作为一个元素返回一个长度为1的Array

'1false2'.split(false) // ['1', '2']
'1true2'.split(true) // ['1', '2']
'1null2'.split(null) // ['1', '2']
'1[object Object]2'.split({}) // ['1', '2']
'1undefined2'.split(undefined) // ["1undefined2"]

javascript 太难了。。。

'1,2,3,4'.split() // ["1,2,3,4"]
typeof '1,2,3,4'.split() // "object"

返回一个数组:[1,2,3,4]
数组里面元素的类型为string

[ '1,2,3,4' ]

答案为 ['1,2,3,4'] 即长度为 1 的数组,里面内容为字符串。

split([separator[, limit]]) 方法接受两个参数(做这题之前只知道一个)

  • separator 为分隔符,用来做分割。如果不传,则返回包含整个字符串的数组(像本题)。如果传了 "" 则会分割每个字符,经常用此方法来转化程数组。separator 接受正则表达式。一般来说分隔符不会出现在返回的数组中,但如果正则使用了()(捕获符)那么返回值中就会包含匹配的内容。

  • limit 是对分割后的数组长度做限制的。当分割出的数组长度大于 limit 时,就会被截断。比如 '123456'.split('',3) => ['1','2','3']

参考文档: MDN String.prototype.split()

Was this page helpful?
0 / 5 - 0 ratings