Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要解释以下类型的Javascript代码吗_Javascript_Syntax - Fatal编程技术网

需要解释以下类型的Javascript代码吗

需要解释以下类型的Javascript代码吗,javascript,syntax,Javascript,Syntax,我使用代码战,查找字符串是否为回文的解决方案之一如下: PalindromeOrNot = s => s == [...s].reverse().join`` ? `Yes` : `No` 这里PalindromeOrNot是函数名,s是参数。我知道第二行直接返回Yes或No,但没有使用return关键字。而且,我在Javascript中从未在其他地方见过这样的代码。有人能解释一下吗。它相当于这个功能: PalindromeOrNot = function (s) { return

我使用代码战,查找字符串是否为回文的解决方案之一如下:

PalindromeOrNot = s =>
s == [...s].reverse().join`` ? `Yes` : `No`

这里PalindromeOrNot是函数名,s是参数。我知道第二行直接返回Yes或No,但没有使用return关键字。而且,我在Javascript中从未在其他地方见过这样的代码。有人能解释一下吗。

它相当于这个功能:

PalindromeOrNot = function (s) {
  return s == s.split('').reverse().join('') ? 'Yes' : 'No';
}

它只是有一些ES2015 sugar语法,如
(params)=>表达式
[…变量]
`string text`
,它将等效于此函数:

PalindromeOrNot = function (s) {
  return s == s.split('').reverse().join('') ? 'Yes' : 'No';
}

它只是有一些ES2015 sugar语法,比如
(params)=>表达式
[…变量]
`string text`
,让我们来分析一下:

PalindromeOrNot =    // an assignment
s => stmt            // arrow notation, shorthand(*) for function (s) { return stmt; }
s ==                 // ...where "stmt" is: a comparison
[...s]               // array destructuring (turns s into an array of characters)
.reverse().join``    // reverse the array, join with the empty string
?                    // ternary operator (after the comparison)
`Yes` : `No`         // results of the ternary, either 'Yes' or 'No',
                     // depending on whether the string equals its reverse
换句话说,这是一种奇特的写作方式

PalindromeOrNot = function (s) {
    return s == s.split('').reverse().join('') ? 'Yes' : 'No';
}
上加入`
阅读以下问题:



(*)差不多。在处理
时,常规函数和数组函数之间存在差异。让我们来分析一下:

PalindromeOrNot =    // an assignment
s => stmt            // arrow notation, shorthand(*) for function (s) { return stmt; }
s ==                 // ...where "stmt" is: a comparison
[...s]               // array destructuring (turns s into an array of characters)
.reverse().join``    // reverse the array, join with the empty string
?                    // ternary operator (after the comparison)
`Yes` : `No`         // results of the ternary, either 'Yes' or 'No',
                     // depending on whether the string equals its reverse
换句话说,这是一种奇特的写作方式

PalindromeOrNot = function (s) {
    return s == s.split('').reverse().join('') ? 'Yes' : 'No';
}
上加入`
阅读以下问题:


(*)差不多。在处理
时,常规函数和数组函数之间存在差异