&安培;&安培;意思是:AND,||是指OR

时间:2011-05-22 01:48:29

标签: javascript

是否有办法通过某种元或预处理器告诉JavaScript,单词AND等同于&&和OR等同于||和<>等于!===?

也许将其等同于{

结束}}

不要!

4 个答案:

答案 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脚本语言]来预处理代码,但为什么呢?