注:本文多次用到Firebug的console对象,请参考Firebug Console API 。关于firebug的更详细介绍,请猛击这里。
1. 用 === 代替 ==
JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。
“如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”
– JavaScript: The Good Parts
<font face="新宋体">if(someVariableExists)<br> x = false</font>
<font face="新宋体">if(someVariableExists)<br> x = false<br> anotherFunctionCall();</font>
<font face="新宋体">if(someVariableExists) {<br> x = false;<br> anotherFunctionCall();<br>}</font>
<font face="新宋体">if(someVariableExists) {<br> x = false;<br>}<br>anotherFunctionCall();</font>
<font face="新宋体">if(2 + 2 === 4) return 'nicely done';</font>
“JSLint扫描接收的代码。发现问题,描述问题,并给出其在源码中的大概位置。可发现的问题包括但不限于语法错误,虽然语法错误确实是最常见的。JSLint也会用
约定俗成的习惯检查代码的格式化风格,以及结构错误。通过JSLint的扫描并不能保证你的程序就完全正确。它只是为您提供了额外一双发现错误的眼睛。”
– JSLint 文档
<font face="新宋体"><p>超哥是世界上最帅的人。benhuoer.com是世界上最好看的博客。</p><br><script type="text/javascript" src="path/to/file.js"></script><br><script type="text/javascript" src="path/to/anotherFile.js"></script><br></body><br></html> <!--0--><!--1--></font>
<font face="新宋体">for(var i = 0; i < someArray.length; i++) {<BR> var container = document.getElementById('container');<BR> container.innerHtml += 'my number: ' + i;<BR> console.log(i);<BR>}</FONT>
<FONT face=新宋体>var container = document.getElementById('container');<BR>for(var i = 0, len = someArray.length; i < len; i++) {<BR> container.innerHtml += 'my number: ' + i;<BR> console.log(i);<BR>}</FONT>
<FONT face=新宋体>var arr = ['item 1', 'item 2', 'item 3', ...];<BR>var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';</font>
“没那么多繁文缛节来烦你;你就信我一次好了(或者你也可以自己试一试)—— 这真的是迄今能找到的最快办法了!
用点土办法,也别管它背后究竟发生了什么抽象的东西,通常土办法都比那些优雅的办法要快捷得多!”
– James Padolsey, james.padolsey.com
“把你踩在全局的那些乱七八糟的脚印都归于一人名下,能显著降低与其他应用、小工具或JS库冲突的可能性。”
– Douglas Crockford
<font face="新宋体">var name = 'Jeffrey';<br>var lastName = 'Way';<br>function doSomething() {...}<br>console.log(name); // Jeffrey -- or window.name</font>
<font face="新宋体">var DudeNameSpace = {<br> name : 'Jeffrey',<br> lastName : 'Way',<br> doSomething : function() {...}<br>}<br>console.log(DudeNameSpace.name); // Jeffrey</font>
<font face="新宋体">// 遍历数组,输出各自名称<br>for(var i = 0, len = array.length; i < len; i++) {<BR> console.log(array);<BR>}</FONT>
<FONT face=新宋体>setInterval(<BR>"document.getElementById('container').innerHTML += 'My new number: ' + i", 3000<BR>);</FONT>
<FONT face=新宋体>setInterval(someFunction, 3000);</FONT>
<FONT face=新宋体>with (being.person.man.bodyparts) {<BR> arms = true;<BR> legs = true;<BR>}</FONT>
<FONT face=新宋体>being.person.man.bodyparts.arms = true;<BR>being.person.man.bodyparts.legs= true;</FONT>
<FONT face=新宋体>var o = being.person.man.bodyparts;<BR>o.arms = true;<BR>o.legs = true;</FONT>
<FONT face=新宋体>var o = new Object();<BR>o.name = 'Benhuoer';<BR>o.lastName = 'Yang';<BR>o.someFunction = function() {<BR> console.log(this.name);<BR>}</FONT>
<FONT face=新宋体>var o = {<BR> name: 'Jeffrey',<BR> lastName = 'Way',<BR> someFunction : function() {<BR> console.log(this.name);<BR> }<BR>};</FONT>
<FONT face=新宋体>var o = {};</FONT>
“对象字面符(Objects literals)帮助我们写出支持很多特性,同时又关联性强、简明直接的代码。没必要直接调用新建语句,然后再费心维护声明变量和传递变量的语句之间的正确顺序,等等。” – dyn-web.com
<FONT face=新宋体>var a = new Array();<BR>a[0] = "Joe";<BR>a[1] = 'Plumber';</FONT>
<FONT face=新宋体>var a = ['Joe','Plumber'];</FONT>
“在JavaScript编程中经常遇到的一个错误是,该用数组时却用了对象,该用对象时却用了数组。规则其实很简单:当属性名是小的连续整数时,你应该使用数组。其他情况,使用对象。” – Douglas Crockford
<FONT face=新宋体>var someItem = 'some string';<BR>var anotherItem = 'another string';<BR>var oneMoreItem = 'one more string';</FONT>
<FONT face=新宋体>var someItem = 'some string',<BR> anotherItem = 'another string',<BR> oneMoreItem = 'one more string';</FONT>
<FONT face=新宋体>var someItem = 'some string'<BR>function doSomething() {<BR> return 'something'<BR>}</FONT>
<FONT face=新宋体>var someItem = 'some string';<BR>function doSomething() {<BR> return 'something';<BR>}</FONT>
<FONT face=新宋体>for(key in object) {<BR> if(object.hasOwnProperty(key) {<BR> ...then do something...<BR> }<BR>}</FONT>
<FONT face=新宋体>function TimeTracker(){<BR>console.time("MyTimer");<BR>for(x=5000; x > 0; x--){}<br>console.timeEnd("MyTimer");<br>}</font>
<font>(function doSomething() {<code id="code28"><font face="新宋体">(function doSomething() {<br> return {<br> name: 'jeff',<br> lastName: 'way'<br> };<br>})();</font>
return {
<font face="新宋体">var response = JSON.parse(xhr.responseText); <br>var container = document.getElementById('container');<br>for(var i = 0, len = response.length; i < len; i ) {<br>container.innerHTML = '<li>' response.name ' : ' response.email '</li>';<br>}</font>
<font face="new宋体">var response = JSON.parse(xhr.responseText); </font>
var 컨테이너 = document.getElementById('container');<font face="新宋体"><script type="text/javascript" language="javascript"><br>...<br></script></font>
<font face="新宋体"><script type="text/javascript" 언어="javascript"><br>...</ script></font>
그런데 이 속성은 오랫동안 쓸모가 없었으니... 그러니 삭제하세요! 그렇습니다 친구들~그렇습니다. JavaScript 초보자를 위한 24가지 팁입니다. 사랑하는 친구 여러분, 어떻게 생각하시나요? 빠른 팁이 있나요? 읽어주셔서 감사합니다.