JavaScript のスキルが低い 5 つの理由_JavaScript のヒント

WBOY
リリース: 2016-05-16 18:07:22
オリジナル
782 人が閲覧しました

この記事は、5 Reasons Your Javascript Stinks の記事を翻訳したものです。

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. あなた Jugglery では、あちこちに定義された変数を配置します。
変数名として数字と文字の不可解な組み合わせを使用すると、結果は損をします。 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 にはプロトタイプと呼ばれる属性があり、この属性を使用してオブジェクトの構造を変更したり、変数や関数を追加したりできます。
コードをコピーします コードは次のとおりです。

//Herp を保持します。インスタンス
var Herp= function(){
this.opinion="Javascript は BASIC よりも優れています。";
}
Herp.prototype.speak=function(){ warning(this.opinion) ; }
var derp= new Herp();
derp.speak();

これがあなたに関係ないと思われる場合は、私の友人である Google を紹介したいと思います。 Google 人々が知識を学ぶのを助けるのが得意です。オブジェクト指向は、私の短く目立たない記事には大きすぎるトピックです。
5. 「新しい」というキーワードを使用するときは、盲人と盲目の馬のようなものです。
Javascript があなたの初めてのガールフレンドに違いありません。あなたは迷っているようです。 Javascript を実際の人間のように楽しみたい場合は、オブジェクト記法を理解する必要があります。オブジェクトをインスタンス化する必要がある場合、またはデータのロードを遅らせる必要があるまれなケースを除いて、基本的に new キーワードを使用する必要はありません。 JavaScript で多数の新しい変数のアドレスを割り当てるのは処理に時間がかかるため、効率を高めるために常にオブジェクト表記を使用する必要があります。
コードをコピーします コードは次のとおりです:

var rightway= [1, 2, 3 ];
var lowerway= new Array(1, 2, 3);

Javascript の変数スコープは関数に基づいていると述べたことをまだ覚えていますか? Javascript オブジェクトは関数のように定義される、と誰かが言ったことをまだ覚えていますか? new キーワードを使用してオブジェクトを宣言しない場合、オブジェクトのスコープがグローバルになります。したがって、オブジェクトを宣言する際には常に new キーワードを使用することをお勧めします。
コードをコピーします コードは次のとおりです。

var derp="one"; >var Herp =function(){
this.derp="two";
var foo=Herp();


この Write を実行すると、JavaScript は気にせず、実際に表示される答えは「2」です。オブジェクトがこのような動作をしないようにするには、instanceOf を使用する方法がたくさんありますが、より良い方法は、new キーワードを正しく使用することで、よりプロフェッショナルに見えます。
これで、JavaScript コードがひどいことがわかりました。上記のことを覚えていれば、コードは改善されます。コードをインデントするのに 3 つのタブ キーを使用するのが好きで、単語を接続するのにアンダースコアを使用するのが好きで、オブジェクトであることを示すために関数名の最初の文字を大文字にするのが好きです。もちろん、これは別の議論です。私がひどいテクノロジーをたくさん持っているのと同じように、あなたの Javascript コードがうまく書かれていない理由はたくさんあります。そのため、お気軽にコメントで意見を述べたり、サポートしたり、反対したり、アドバイスを与えてください。
ポイント 5 の間違いを指摘してくれた rogeliorv と
Jared Wein
に感謝します。あなたは強いです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!