この記事では主に JavaScript コードを書く際の 5 つの悪い習慣を紹介します。 , この章では、名前空間、変数定義、JavaScript の変数スコープ、JavaScript のオブジェクト指向、新しいキーワードなどの使用の失敗などの問題を指摘します。必要な友人はそれを参照できます。
JavaScript はインターネット上で悪い評判がありますが、これほど動的で、広く使用され、私たちの生活にこれほど根付いている言語を他に見つけるのは困難です。学習閾値が低いため、多くの人がそれを就学前のスクリプト言語と呼んでいますが、人々を笑わせるもう 1 つの点は、動的言語の概念が高標準の静的データ型を使用していることです。実際、あなたと Javascript は間違った側にいて、今あなたは Javascript を非常に怒らせています。あなたの JavaScript スキルがダメになる 5 つの理由を以下に示します。
1. 名前空間を使用していません。
大学の先生が宿題でグローバル変数を使用しないようにと言ったのを覚えていますか? Javascript でのグローバル変数の使用も例外ではありません。注意しないと、Web ページは、相互に侵害するスクリプトや、インターネットの隅々から集められたスクリプト ライブラリがごちゃ混ぜになって、混沌とした状態になってしまいます。変数にloader()という名前を付けると、トラブルが発生します。気付かないうちに関数をオーバーロードしても、JavaScript はそれをまったく通知しません。あなたはこれを就学前プログラミング言語とも呼んでいましたね。私が言いたいのは、これを実行した後に何が起こるかを知る必要があるということです。
function derp(){ alert(“one”); } function derp(){ alert(“two”); } derp();
「二つ」、答えは「二つ」です。必ずしもこうである必要はなく、「1つ」でも構いません。したがって、すべてのコードを独自の名前空間に配置するのは簡単です。独自の名前空間を定義する簡単な方法を次に示します。
var foospace={}; foospace.derp=function(){ alert(“one”); } function derp(){ alert(“two”); } foospace.derp();
2. 変数を 1 つずつ定義するのは魔法のようなものです。
数字と文字の不可解な組み合わせを変数名として使用すると、結果は失敗します。 40 行のコード ブロック内で意味のない文字変数を見つけるのは、メンテナンスの悪夢です。変数の最初の宣言を 40 行のコード ブロックに混ぜるのも悪夢です。このような変数に遭遇した場合でも、「これはどこで定義されているの?」と自問せずにはいられません。その後、Ctrl F キーを押して、ソース コード内でこの変数が最初に定義されていた場所をすぐに見つけます。いいえ、そんなことはしないでください。逆に、それは Javascript の悪用であり、愚かなアプローチです。変数は常にスコープの先頭で定義する必要があります。必要がないからといって、やらなくてもいいというわけではありません。
function(){ var a,//description b; //description //process… }
3. Javascript 変数のスコープを理解していません。
あなたは天才プログラマーです。食べるものは C、するものは List です。あなたは変数スコープが何であるかを知っており、変数を完全に制御し、王様のように変数を見守ります。しかし、Javascript はコーヒーにうんこを入れてあなたを笑わせます。
var herp=”one”; { var herp=”two”; } alert(herp);
この場合、手に入るハーブは「1つ」ではなく「2つ」です。 JavaScript の変数スコープは、他の言語のようにコード ブロックに依存しません。 Javascript の変数スコープは関数に基づいています。各関数には独自の変数スコープがあり、JavaScript はこれに優れており、中括弧で囲まれた無意味なスコープを無視します。実際、JavaScript は非常に優れているため、名前空間や変数と同様に変数スコープを渡すこともできます。
4. あなたは、JavaScript のオブジェクト指向機能を移植しただけだと考えています。
JavaScript は、その誕生以来、オブジェクト指向言語です。 Javascript ではすべてがオブジェクトです。数字や文字などのリテラル記号も、独自のコンストラクターを通じてオブジェクトに変換できます。他のオブジェクト指向言語と比較すると、JavaScript はクラスを持たないという点で異なります。 Javascript オブジェクトは関数と同様に定義され、関数自体もオブジェクトです。 JavaScript にはプロトタイプと呼ばれる属性があり、この属性を使用してオブジェクトの構造を変更したり、変数や関数を追加したりできます。
var derp; //will hold a Herp instance var Herp= function(){ this.opinion=”Javascript is cooler than BASIC.”; } Herp.prototype.speak=function(){ alert(this.opinion); } var derp= new Herp(); derp.speak();
これがあなたに関係ないと思われる場合は、私の友人である Google を紹介したいと思います。Google は人々が知識を学ぶのを助けるのが得意です。オブジェクト指向は、私の短く目立たない記事には大きすぎるトピックです。
5. 「新しい」というキーワードを使用するとき、あなたは盲目の人間と盲目の馬のようなものです。
Javascript があなたの初めての彼女に違いありません。あなたは迷っているようです。 Javascript を実際の人間のように楽しみたい場合は、オブジェクト記法を理解する必要があります。オブジェクトをインスタンス化する必要がある場合、またはデータのロードを遅らせる必要があるまれなケースを除いて、基本的に new キーワードを使用する必要はありません。 JavaScript で多数の新しい変数のアドレスを割り当てるのは処理に時間がかかるため、効率を高めるために常にオブジェクト表記を使用する必要があります。
var rightway= [1, 2, 3]; var wrongway= new Array(1, 2, 3);
是否还记得我说过Javascript的变量范围是以函数为基础的?是否还记得有人说Javascript的对象像函数那样定义?如果你不使用new关键字来声明一个对象,你将会使这个对象成为全局范围内的对象。所以,永远使用new关键字来声明对象是一个好习惯。
var derp=”one”; var Herp=function(){ this.derp=”two”; } var foo=Herp(); alert(derp);
如果你这样写,Javascript并不会在意,而你真正弹出的答案是“two”!有很多方法可以防止对象做出这样的行为,可以以使用instanceOf,但更好的方法是正确的使用new关键字,这样显得更专业。
现在你知道你的Javascript代码写的很烂了吧,如果你记住了上面所说的东西,你的代码就会有所改善。更多相关教程请访问JavaScript视频教程!