无法理解在线JS压缩后得到的代码

时间:2017-10-03 13:39:30

标签: javascript

将在线JS压缩应用于函数后,我有以下内容:

t = function (e) {
    return ch = e.charAt(0), set = new Set, set.add("."), set.add("/"), set.add("\\"), !set.has(ch)
}

如何用逗号分隔这么多指令是什么意思呢? 回来到底?我的JS参考文献没有说明这种语法

2 个答案:

答案 0 :(得分:1)

逗号可用于将多个语句组合到单个表达式中。简而言之,它意味着"评估所有这些语句,然后返回最后一个语句的值"。

上面的代码获取传递的字符串的第一个字符,构建一个包含多个字符的Set,然后检查第一个字符是否在t = function(e) { ch = e.charAt(0); set = new Set; set.add('.'); set.add('/'); set.add('\\'); return !set.has(ch); } 中(并返回值)那张支票)。它相当于:

{{1}}

答案 1 :(得分:0)

逗号运算符评估每条指令和" return"然后命令只返回最后一个(即"!set.has(ch)")

所以,这只是一种写作方式

t = function (e) {
  ch = e.charAt(0);
  set = new Set;
  set.add("."):
  set.add("/");
  set.add("\\");
  return !set.has(ch);
}

基本上,如果(e)既不是"那么它会返回true。"," /"也不是" \"