是否有办法通过某种元或预处理器告诉JavaScript,单词AND等同于&&和OR等同于||和<>等于!===?
也许将其等同于{
结束}}
不要!
答案 0 :(得分:6)
没有。不要这样做。
......好吧,有办法,但不要反正...
这是......
function loadScriptWithReplacements(url) {
try {
var rq = null;
if(window.XMLHttpRequest)
rq = new XMLHttpRequest();
else if(window.ActiveXObject) {
try {
rq = new ActiveXObject("Msxml2.XMLHTTP");
} catch(o) {
rq = new ActiveXObject("Microsoft.XMLHTTP");
}
}
rq.open("GET", url, false);
rq.send(null);
document.write('<script>' + rq.responseText.replace(/(and|or|\<\>)/g, function(r) {
return {
'and': '&&',
'or' : '||',
'<>' : '!=='
}[r];
}) + '</script>');
} catch(ex) {
// We can't have a fallback because you're using invalid JavaScript :(
throw new Error("Could not use Ajax.");
}
}
但是,不要那样做!您也可以在服务器端执行替换,但不要这样做!
做服务器端会增加服务器的压力,只需记住如何正确编写JavaScript就可以避免这种情况。
答案 1 :(得分:3)
Coffescript使用rewriter来提供语法糖。 http://jashkenas.github.com/coffee-script/
从标题为“If,Else,unless,and Conditional Assignment”的部分开始 coffeescript
if happy and knowsIt
clapsHands()
chaChaCha()
else
showIt()
被重写为
if (happy && knowsIt) {
clapsHands();
chaChaCha();
} else {
showIt();
}
答案 2 :(得分:2)
不,没有办法做到这一点。
答案 3 :(得分:2)
不,没有办法做到这一点。嗯,从理论上讲,它可以做到,但它会很慢或很困难。是否有充分的理由使用AND代替&amp;&amp;和OR代替|| ?
我想你可以使用awk,sed,perl,python,bash,[insert favrotie脚本语言]来预处理代码,但为什么呢?