Moa*_*nas 3 javascript ecmascript-6 spread-syntax
我在MDN上阅读了有关扩展语法的内容,并且它可以与数组和字符串一起使用:
扩展语法允许在可能需要零个或多个参数(用于函数调用)的地方扩展诸如数组表达式或字符串之类的可迭代- mdn.
我很清楚数组.它会将元素扩展为单独的参数.
但我没有找到字符串的例子.
那么,使用扩展语法在函数调用中扩展字符串的规则是什么?
如果字符串字符用空格分隔,因为我试过这个并打印3.
var x = "1 2 3";
console.log(Math.max(...x));Run Code Online (Sandbox Code Playgroud)
正如我们在下面看到的,您的示例实际上是扩展到5个元素,其中2个是空格字符.您还可以在下面看到字符串上的扩展运算符与使用相同.split('').
const x = "1 2 3";
console.log([...x]);
console.log(x.split(''));Run Code Online (Sandbox Code Playgroud)
空字符串上的 Math.max 对空字符串进行计算,例如+" "orNumber(" ")因此0
const str = "1 2 3";
console.log( Math.max(...str)) // ["1"," ","2"," ","3"] >>> [1,0,2,0,3] >>> 3Run Code Online (Sandbox Code Playgroud)
直接用数字传播字符串是不明智的34 8 9,因为最大值将达到9。始终事先用分隔符(一个或多个空格)分隔:num.split(/ +/)
const str = "1 34 9 2";
// Issue:
console.log( Math.max(...str) ) // 9 since [1,0,3,4,0,9,0,2]
// Fix:
console.log( Math.max(...str.split(/ +/)) ) // 34Run Code Online (Sandbox Code Playgroud)