确定与代码块相比的UpperCase和LowerCase

时间:2018-06-25 14:48:24

标签: javascript ecmascript-6 conditional-operator

我正在尝试根据驼峰式命名约定为文档对象添加简写形式。例如,以下代码将在document后面加上qS的简写形式的querySelectoraEL来表示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上的新方法-ergo document.querySelector变为d.qS

在某个时候,我学会了比较字符和花括号以确定其大小写的技巧。 a.e.

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

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

问题是,尽管它似乎一直都能完美运行,但我不知道它是如何工作的。我不确定要比较哪个代码块,并且对于Google来说比较困难,即使在遍历codegolf和SO之后,我也没有找到答案。我希望有人可以解释一下?

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

1 个答案:

答案 0 :(得分:2)

如果您选中alert({}),它将显示[object Object]。在这里,您的比较将作为字符串比较进行。因此大写字母A-Z的ASCII值介于65-90之间。 “ [”的ASCII值为91,小写的a-z的ASCII值为97-122。因此,按照大写字母的ASCII值,您的代码将返回true,小写字母的代码将返回false。