Javascript 与代码块比较确定大小写

Javascript 与代码块比较确定大小写,javascript,ecmascript-6,conditional-operator,Javascript,Ecmascript 6,Conditional Operator,我正在尝试根据驼峰大小写命名约定向文档对象添加速记。例如,以下代码将用qS附加document,qS是querySelector的缩写,而aEL是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(_); 问题是我不明白它是如何工作的,尽

我正在尝试根据驼峰大小写命名约定向文档对象添加速记。例如,以下代码将用
qS
附加
document
,qS是
querySelector
的缩写,而
aEL
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(_);
问题是我不明白它是如何工作的,尽管它似乎一直都在完美地工作。我不确定一个代码块被评估为一个比较的代码块是什么,用谷歌搜索也很困难,甚至在筛选了codegolf之后,所以我还没有找到答案。我希望有人能解释一下


注意:我意识到代码解释是不受欢迎的,但我确实检查了meta以确定这是否有效

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

如果您选中alert({}),则它将显示[object object object]。在这里,您的比较将作为字符串比较进行。因此大写a-z的ASCII值为65-90。”[“ASCII值为91,小写a-z的ASCII值为97-122。因此,根据大写字母的ASCII值,您的代码返回true,小写字母返回false。@KaranPatel-这是一个很好的解释,我认为您应该将其作为答案,而不仅仅是注释来写。哦,duh!哈哈。我肯定是想得太多了。谢谢您的回答!在Jav中aScript,重要的是UTF-16代码单位值。JavaScript不知道ASCII。@TomBlodget这会改变答案的有效性吗?@zfrisch如果重述几乎相同,答案将是有效的。但是理解将基于对JavaScript和UFT-16的熟悉。@TomBlodget感谢您提供的信息。这非常有用。我很高兴我已经检查了UTF-16字符集,它的ASCII序列是相同的。所以,即使javascript使用UTF-16,它的工作原理也是一样的。
"c"<{}; //false
"C"<{}; //true

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