需要解释以下类型的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';
}
在上加入`
阅读以下问题:
(*)差不多。在处理
此
时,常规函数和数组函数之间存在差异