javascript - 与代码块比较确定大写和小写

标签 javascript ecmascript-6 conditional-operator

我正在尝试根据驼峰命名约定向文档对象添加简写。例如,以下代码将在 document 后面附加 qS,它是 querySelector 的简写形式,而 aEL 则是简写形式-hand 用于addEventListener

let b, d, e; 
for(let k in(d=document)) d[k[0]+k.split("").filter(_=>_<{}).join("")] = d[k];

e=_=>d.qS(_);
b=_=>d.aEL.bind(_);

我将 d 声明为 document,然后迭代其每个键,确定驼峰式大小写字母 (k[0]是第一个小写字母,然后我过滤键以查找任何大写字母),然后将第一个小写字母和任何大写字母作为引用原始方法的 document 上的新方法 -因此 document.querySelector 变为 d.qS

在某些时候,我学会了将字符与大括号进行比较以确定其大小写的技巧。 a.e.

"c"<{}; //false
"C"<{}; //true

"E"<{}; //true
"e"<{}; //false

问题是我不明白这是如何工作的,尽管它似乎一直工作得很好。我不太确定代码块被评估为比较的内容,并且很难通过 Google 进行搜索,即使在筛选了 codegolf 等之后,我也没有找到答案。我希望有人能解释一下这个?

注意:我意识到代码解释是不受欢迎的,但我确实检查了元数据以确定这是否有效 https://meta.stackexchange.com/questions/188079/where-to-ask-for-code-explanation

最佳答案

如果您检查alert({}),那么它将显示[object Object]。在这里,您的比较将作为字符串比较进行。所以大写 A-Z 的 ASCII 值是 65-90。 “[”的 ASCII 值为 91,小写 a-z 的 ASCII 值为 97-122。因此,根据大写字母的 ASCII 值,您的代码返回 true,小写字母返回 false。

关于javascript - 与代码块比较确定大写和小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51026270/

相关文章:

javascript - AngularJS 表单,检查有效性

javascript - 不断收到返回未定义的 TypeError

javascript - Grunt Uglify 在 ES6 上失败...

javascript - 语法错误 : Unexpected token import. Webpack 配置

javascript - JavaScript 的三元运算符的运算符优先级

c# - 在 Console.WriteLine 上使用三元运算符

javascript - 如何在 anchor 悬停时在左下角显示与所述 anchor 的 href 属性不同的链接?

javascript - jQuery/Ajax 添加类到 LI 不起作用

javascript - 如何更改数组的克隆而不更改 reactjs 中的原始数组

java - 为什么三元运算符会意外地转换整数?