這個技巧用的不少,也很是的簡單前端
!!'foo'
經過兩個取反,能夠強制轉換爲Boolean類型。較爲經常使用。spa
這個也特別簡單,String轉化爲Numbercode
+'45' +new Date
會自動轉化爲number類型的。較爲經常使用。事件
這個其實很是有實用價值,不算是裝逼。只是其餘語言裏沒有這麼玩的,給不太瞭解js的同窗看那可牛逼大了。io
(function(arg) { // do something })(arg)
實用價值在於能夠防止全局污染。不過如今隨着ES2015的普及已經沒什麼必要用這個了,我相信五年以後,這種寫法就會逐漸沒落。console
事件響應前端確定都寫爛了,通常來講如何寫一個計數器呢?event
var times = 0 var foo = document.querySelector('.foo') foo.addEventListener('click', function() { times++ console.log(times) }, false)
好像是沒什麼問題哦,可是!變量times
爲何放在外面,就用了一次放在外面,命名衝突了怎麼辦,或者萬一在外面修改了怎麼辦。function
這個時候這樣一個事件監聽代碼就比較牛逼了class
foo.addEventListener('click', (function() { var times = 0 return function() { times++ console.log(times) } })(), false)