在拆分之前拆分的变量并覆盖原始变量时是否会遇到问题?
示例:
arr = str.split(" ");
arr = arr[0].split("/");
我测试过,它有效。但是:
- 这样做有风险吗?
- 它在所有浏览器上始终都能按照我的预期运行吗?
最佳答案
这在所有浏览器中都可以。没有风险。
您只需分配变量arr
来引用新的东西,它曾经引用什么并不重要。 (这实际上并不“覆盖旧数组”,但如果没有其他对旧数组的引用,垃圾收集器将处理它。)
您也可以在一行中完成:
arr=str.split(" ")[0].split("/");
请注意according to MDN, .split()
始终返回一个至少包含一个元素的数组,即使源字符串为空或不包含分隔符。
编辑:如果源字符串和分隔符都是空字符串.split()
似乎返回一个空数组。即,"".split("")
返回[]
。感谢穆尼姆指出这一点。 (但是 "".split("")
返回 [""]
因此对于这个问题来说不会有任何问题。)
关于javascript - 用 .split() 结果覆盖源变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8410504/