确定与代码块比较的大写和小写
Determining UpperCase and LowerCase comparing to code block
我正在尝试根据驼峰式命名约定向文档对象添加速记。例如,以下代码将在 document
后附加 qS
,它是 querySelector
的简写, aEL
是 addEventListener
[=24= 的简写]
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 值,您的代码 returns 为真,小写字母为假。
我正在尝试根据驼峰式命名约定向文档对象添加速记。例如,以下代码将在 document
后附加 qS
,它是 querySelector
的简写, aEL
是 addEventListener
[=24= 的简写]
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 值,您的代码 returns 为真,小写字母为假。