javascript兩段代碼,兩個小技巧

來源:互聯網
上載者:User

第一段代碼就是強調一下這個用法,我在我的項目中使用了一個switch,後來我發現這樣的代碼好醜,於是我就寫成||&&形式的, 後來測試效能的時候,發現效能竟然上了一個數量級,可見這種寫法在某些情況下可以增加效能,但是我並不確定是何種情況才能提高效能,因為我測試在通常情況下switch和||&&的效能是差不多的.
原來的代碼: 複製代碼 代碼如下:switch(this.now_char=this.str.charAt(this.index)){
case "/":
if(this.handleNote()) continue;else this.str2+=this.now_char;
break;
case "\"":
case "\'":
if(this.handleStr()) continue;else this.str2+=this.now_char;
break;
case "\n":
if(this.handleLine()) continue;else this.str2+=this.now_char;
break;
case "{":
case "}":
if(this.handleDepth()) continue;else this.str2+=this.now_char;
break;
case ":":if(this.handleJson()) continue;else this.str2+=this.now_char;break;
default:
if(this.handleKeyword()) continue;else this.str2+=this.now_char;
break;
}

改寫後的代碼,功能當然是一樣的 view sourceprint?1 (this.now_char=="/"&&(this.handleNote()||(this.str2+=this.now_char)))||
((this.now_char=="\""||this.now_char=="\'")&&(this.handleStr()||(this.str2+=this.now_char)))||
(this.now_char=="\n"&&(this.handleLine()||(this.str2+=this.now_char)))|| ((this.now_char=="{"||this.now_char=="}")&&(this.handleDepth()||(this.str2+=this.now_char)))||
(this.handleKeyword()||(this.str2+=this.now_char))
我嚼的第二種寫法更簡潔點,||&&還有很多用處,可以看那篇文章的介紹
第二段代碼是利用了一個特性: (ele=document.createElement("div")) ;//這個運算式會返回一個dom元素,賦值的同時會把值返回給外邊的括弧
於是出來下面這段代碼 : 複製代碼 代碼如下:var mixin=function(target,options){
for(var i in options){
target[i]=options[i]
}
}
var ele=null;
mixin(ele=document.createElement("div"),{
id:"aa",
className:"bb",
innerHTML:"sss"
})
document.body.appendChild(ele)
debug(ele.id)//aa
debug(ele.className)//bb
debug(ele.innerHTML)//sss

這段代碼是因為我實在厭煩了建立一個dom元素的時候的一大堆語句: 複製代碼 代碼如下:var ele=document.createElement("div")
ele.id="aa";
ele.className="aa"
ele.innerHTML="sss"

等等等等,好煩啊.
於是出來了上面的代碼.
用上面的原理還可以這樣寫代碼 (ele=document.createElement("div")).className="aa"; 感覺是不是節省了一點空間呢,上面這句話節省了一個變數名,呵呵.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.