JavaScript 初心者のための 24 の実践的なヒント [TUTS]_JavaScript スキル
注:本文多次用到Firebug的console对象,请参考Firebug Console API 。关于firebug的更详细介绍,请猛击这里。
1. 用 === 代替 ==
JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。
引用:
“如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”
– JavaScript: The Good Parts
2. 避免使用Eval函数
Eval函数把一个字串作为参数,并把字串作为JavaScript语句执行,返回结果(参考)。
此函数不仅会降低你脚本的执行效率,而且还大大增加了安全风险,因为它赋予了作为文本的参数太大的权利。千万别用!
3. 不要使用快速写法
技术上说,你可以省略掉大部分花括弧和句尾分号,绝大多数浏览器都能正确执行以下语句:
代码:
<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>
假设,在将来的开发过程中,你需要为这个 if 语句添加更多的命令呢?到时候你还不是得把括号给加上?
4. 好好利用JS Lint
JSLint 是由 Douglas Crockford 编写的一个调试器。你只需要贴上你的代码,它就能快速为您扫描出任何明显的错误和问题。
引用:
“JSLint扫描接收的代码。发现问题,描述问题,并给出其在源码中的大概位置。可发现的问题包括但不限于语法错误,虽然语法错误确实是最常见的。JSLint也会用
约定俗成的习惯检查代码的格式化风格,以及结构错误。通过JSLint的扫描并不能保证你的程序就完全正确。它只是为您提供了额外一双发现错误的眼睛。”
– JSLint 文档
5. 在页面底部加载脚本
正如下图所示:

请记住—— 我们要千方百计保证客户端的页面载入速度尽可能的快。而脚本没载入完成,浏览器就没法加载页面的剩余部分。
如果你的JS文件只是添加一些额外功能——例如,为点击某链接绑定事件——那大可以等页面加载基本完成后再做。把JS文件放到页面最后,body的结束标签之前,这样做最好了。
更好的写法是
代码:
<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>
当需要执行冗长的for语句时,不要让JavaScript引擎每次都重复那些没有必要的操作。例如:
这样不好
代码:
<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>
7. 快速构建字串
要对一个数组或对象做循环操作时,不要老惦记着一表人才的for语句,拿点创意出来嘛!明明就还有很多更快的办法:
代码:
<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>
9. 写好注释
可能一开始你会觉得并无必要,但相信我,你将来会主动想要尽可能写好代码的注释的。当你几个月后再回看某项目时,结果却发现很难想起当时写某句东西时脑子在想的什么了,是不是很让人沮丧呢?或者,如果有同事要修订你的代码呢?一定,一定要为你代码里的重要部分加上注释。
代码:
<font face="新宋体">// 遍历数组,输出各自名称<br>for(var i = 0, len = array.length; i < len; i++) {<BR> console.log(array);<BR>}</FONT>
一定要记得为未启用JavaScript的情况提供替代方案。大家可能会认为,“大部分我的访客都启用了JavaScript的,我才不用担心”。这样的话,你可就大错特错了!
你有没有试过看看禁用JavaScript后你那漂亮的滑动器都成啥样了?(你可以下载 Web Developer ToolBar 轻松完成这项任务。)禁用之后你的网站可能就彻底失去了可用性!经验之谈:开发初期总是按照没有JavaScript来设计你的网站,之后再进行渐进地功能增强,小心翼翼地改变你地布局。
11. 不要传递字串给 “setInterval” 或 “setTimeout”
看看下面的代码:
代码:
<FONT face=新宋体>setInterval(<BR>"document.getElementById('container').innerHTML += 'My new number: ' + i", 3000<BR>);</FONT>
代码:
<FONT face=新宋体>setInterval(someFunction, 3000);</FONT>
初识之下,“with”语句似乎还挺好用的。它用于设置代码在特定对象中的作用域。其基本用法是提供深入到对象中处理元素的快速写法。例如:
代码:
<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>
在JavaScript有多种方式能新建对象。最传统的方法是 new 语句,如下:
代码:
<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>
17. 千万千万记得写分号
大部分浏览器都允许你不写句尾分号:
代码:
<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>
遍历对象时,你可能会发现你还需要获取方法函数。所以遇到这种情况时,请一定记得给你的代码包一层 if 语句,用以过滤信息。
代码:
<FONT face=新宋体>for(key in object) {<BR> if(object.hasOwnProperty(key) {<BR> ...then do something...<BR> }<BR>}</FONT>
19. 使用Firebug的“Timer”功能优化你的代码
想要轻松地快速了解某项操作的用时吗?使用Firebug的timer功能来记录结果好了。
代码:
<FONT face=新宋体>function TimeTracker(){<BR>console.time("MyTimer");<BR>for(x=5000; x > 0; x--){}<br>console.timeEnd("MyTimer");<br>}</font>
私は Web 開発ブログ (このブログのような!) の大ファンです。食事と就寝前に本を読むしかないようです~ ウェブ開発に関する良い本をベッドサイドテーブルに置いてください!次の本のリストは私のお気に入りです:
-
オブジェクト指向 JavaScript(中国語版はまだありません)
-
JavaScript: 良い部分(中国語版)
-
Learning jQuery 1.3(中国語版はまだありませんが、古いバージョン の中国語版をチェックしてください。 )
-
JavaScript の学習(中国語版)
読む…何度も読んでください!今も読んでいます。
21. 自己決定関数
関数の呼び出しと比較して、ページまたは親関数のロード時に関数を自動的にロードさせます。非常に簡単で便利な実行方法です。関数を親でラップし、かっこを追加するだけで、基本的に定義した関数がトリガーされます (詳細)。
コード:
<font face="新宋体">(function doSomething() {<code id="code28"><font face="新宋体">(function doSomething() {<br> return {<br> name: 'jeff',<br> lastName: 'way'<br> };<br>})();</font>
return {
22. ネイティブ JavaScript はコード ライブラリを使用するよりも常に高速です
jQuery や Mootools などの JavaScript ライブラリを使用すると、特に AJAX 操作が必要な場合に、コードの作成プロセスにかかる時間を大幅に節約できます。ただし、コードが適切に記述されている限り、ネイティブ JavaScript はコード ライブラリを使用するよりも常に高速に実行されることを覚えておく必要があります。 jQuery の「each」メソッドはループ操作に非常に便利ですが、元の for ステートメントを使用した方がずっと高速です。
23. Crockford の JSON.Parse
JavaScript 2 には JSON プロセッサが組み込まれていますが、この記事の執筆時点では、まだ自分で実装する必要があります。 JSON の作成者である Douglas Crockford は、すぐに使用できるハンドラーを作成しました。ここからダウンロードできます
<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="新宋体">var response = JSON.parse(xhr.responseText) </font>
varcontainer = document.getElementById('container');for(var i = 0, len = response.length; i < len; i ) {
container.innerHTML = '
を参照してください
<font face="新宋体"><script type="text/javascript" language="javascript"><br>...<br></script></font>
何年も前には、言語はまだすべてのスクリプト タグに必須の属性でした。 コンテンツをクリップボードにコピーします コード:
<font face="新宋体"><script type="text/javascript" language="javascript"><br>...</ script></font>
しかし、この属性は長い間役に立たなかったので、削除してください。 以上です、皆さん~以上、以上が JavaScript 初心者向けの 24 のヒントです。親愛なる友人の皆さん、どう思いますか?何か簡単なヒントはありますか?辛抱強く読んでいただきありがとうございます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ミストロック キングダムは、プレイヤーが Sons of Fire としてプレイして生き残り、探索できるオープンワールド ゲームです。このゲームは、アクション RPG チャレンジのユニークなエンターテイメントを組み合わせており、プレイヤーに無限の驚きと喜びをもたらします。ゲームでは、プレイヤーはリソース、環境、武器などを探索できます。初心者プレイヤーの中には、ゲームの始め方に興味がある人もいるかもしれません。この紹介と共有では、関連するスタート ガイドをいくつか提供します。フォグ ロック キングダムの初心者向けヒント: 瘴気に包まれた地域の危険度は異なります。探索プロセス中に、マップの新しいエリアが徐々にロック解除され、瘴気に包まれた地域の位置が確認できるようになります。マップは2色で区別されており、青色のエリアは短時間しか進入できず、キャラクターの能力レベルに応じて滞在可能時間も変化する。

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

「アンカーアライバル」は、高解像度の美少女 2D をテーマにした 3D ターン制カードゲームです。プレイヤーが探索して体験できる豊富でエキサイティングなキャラクターの組み合わせを提供します。高品質のラインナップの強力な組み合わせが数多くあります。新規プレイヤーは初心者にも気になる初心者向けの強力なキャラは何ですか? 初心者が10連ゴールドを獲得するための選択の参考を見てみましょう! アンカーポイント降臨は初心者向けの強力なキャラです。10連の最初のピックはアリスです。主に単体雷系爆発キャラで、出力も爆発力が高く、初心者にも優しいので選ぶのがオススメです。ゴールド10連は「アリス」+「アンテロープ」の組み合わせがおすすめ アリスはゴールドパイア属性を出力するのに最も適したキャラクターであり、初心者カードプールの他の2キャラクターと比べても少しも強いです。アリスはスペシャルをパスできる

PyCharm の初心者向けの必須スキル: バッチ インデントの使用をマスターするには、特定のコード サンプルが必要です。 概要: PyCharm は、開発者の効率向上に役立つ多くの実用的なツールと機能を提供する強力な Python 統合開発環境 (IDE) です。日常のコーディングプロセスでは、コードの形式を整然と美しく保つためにコードをインデントする必要があることがよくあります。 PyCharm が提供するバッチ インデント機能を使用すると、コードを迅速にバッチ インデントし、コーディング効率を向上させることができます。この記事では Py について説明します

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

Crown of the Ancients は、西洋の魔法の冒険をベースにした高品質で戦略的なカード モバイル ゲームです。ゲーム内では秘密の探索、遺跡の冒険、全国選手権などの特別なゲームプレイがあなたを待っています。したがって、初心者プレイヤーがこのゲームをすぐに始めたい場合は、初心者ガイドが不可欠です。今日、編集者が関連するガイドをお届けしますので、見てみましょう。エンシェントクラウンの初心者向けガイド、ゲームプレイ、エリア開放スタイルの概要: 1. ダイヤモンド蓄積フロー:すべてはダイヤモンドを蓄積することに集中しており、村を出てから熱心に働き始めます。メインの魔法の武器、ダイヤモンドを必要とする 3 つのフライホイール アクティビティなどを除いて、その他は無視されます。主にそのうちの 1 つに重点が置かれます。ヒーロー チャレンジには注意を払わないでください。できるだけ多く戦えます。 、そしてそれを強制しないでください。利点: ダイヤモンドを集めるためにいじるだけで、村を出た後、ダイヤモンドを使った最新のアクティビティにすぐにアクセスでき、新しいハードウェア ヒーロー シリーズを入手でき、ダイヤモンドは壊れます。

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき
