ジャバスクリプト — 予想外の値
4259 ワード
アマゾンで私の本をチェックしてくださいhttps://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
今すぐ私の電子メールリストを購読http://jauyeung.net/subscribe/
他のプログラミング言語と同様に、JavaScriptはプログラムを読みやすく維持するためにベストプラクティスの独自のリストを持っています.JavaScriptにトリッキーな部分がたくさんあり、避けるべきことがたくさんあります.我々はJavaScriptコードを読みやすくするためにいくつかのベストプラクティスに従うことができます.
この記事では、オブジェクトと関数のパラメータを比較し、ステートメントと関数のパラメータを切り替えるためのデフォルト値を追加し、
JavaScriptでは、等値比較のために2演算子があります.一つは
私たちは
例えば、もし我々が
最後の行では
これらの紛らわしい結果を避けるために
私たちが同じ内容と異なったタイプでものを比較したいならば
例えば、比較したいなら
このように、予期しないタイプを比較することで何も得ることはありません.
JavaScript関数は、任意の数のパラメータを取ることができます.これは、我々が期待するより少ないパラメータで通過することができることを意味します.
ES 6では、デフォルトのパラメータ値の機能を取得します.これは関数パラメータのデフォルト値を設定します.
例えば、以下のように書くことができます.
写真でKristina Paparo をUnsplash
我々は常にAを加えるべきです
例えば、以下のように書きます.
The
私たちはそれを使用するべきではありません.なぜなら、それは未知のソースからのコードを実行できます.
また、それはフライで解釈されるので、それはまた、通常のコードよりも遅いです.これはJavaScriptエンジンがコードを最適化できないためです.
現代のインタプリタはコードをマシンコードに変換します
変数に対して実行された操作は、コードを
オブジェクトを平等と比較するとき、我々は
今すぐ私の電子メールリストを購読http://jauyeung.net/subscribe/
他のプログラミング言語と同様に、JavaScriptはプログラムを読みやすく維持するためにベストプラクティスの独自のリストを持っています.JavaScriptにトリッキーな部分がたくさんあり、避けるべきことがたくさんあります.我々はJavaScriptコードを読みやすくするためにいくつかのベストプラクティスに従うことができます.
この記事では、オブジェクトと関数のパラメータを比較し、ステートメントと関数のパラメータを切り替えるためのデフォルト値を追加し、
eval
関数.オブジェクトの比較
JavaScriptでは、等値比較のために2演算子があります.一つは
==
演算子と他の===
演算子.==
オペランドを比較して自動的に同じ型に変換します.===
両方のオペランドの内容と型を比較することによって比較します.私たちは
===
タイプと内容の両方を比較するので、型の不一致は得られません.例えば、もし我々が
==
演算子は、次の式を評価することができますtrue
○0 == "";
0 == null;
0 == undefined;
null == undefined;
1 == "1";
最初の4行では、すべては、彼らはすべてに変換されているので、falsyですfalse
を比較する前に==
演算子.最後の行では
'1'
に変換1
比較する前に値を得るtrue
返される.これらの紛らわしい結果を避けるために
===
演算子.値の型と内容を比較します.With ===
, 上記のすべてはfalse
○○.私たちが同じ内容と異なったタイプでものを比較したいならば
===
演算子は、最初に同じ型に変換できます.例えば、比較したいなら
1
and '1'
え、書くことができます.+1 === +'1'
その後、両方の両方に変換されます1
そして、式はtrue
.このように、予期しないタイプを比較することで何も得ることはありません.
デフォルトパラメータ
JavaScript関数は、任意の数のパラメータを取ることができます.これは、我々が期待するより少ないパラメータで通過することができることを意味します.
ES 6では、デフォルトのパラメータ値の機能を取得します.これは関数パラメータのデフォルト値を設定します.
例えば、以下のように書くことができます.
const add = (a, b = 0) => a + b;
関数の2番目の引数で数値を返す必要はありません.書くならconsole.log(add(1));
の値から1を得るb
何も渡されない場合は0に設定されますので、1 + 0となります.写真でKristina Paparo をUnsplash
switch文のデフォルト値を追加する
我々は常にAを加えるべきです
default
ブロックswitch
文は、予期しない値がswitch
文.例えば、以下のように書きます.
const getDayName = (dayOfWeek) => {
let day;
switch (dayOfWeek) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "Unknown";
}
return day;
}
私たちは何かを渡すことができるので、週の日を取得するgetDayName
関数.例えば、以下のように書くことができます.console.log(getDayName(0));
console.log(getDayName(1));
console.log(getDayName(1000));
1000年を過ぎると、デフォルト値が必要です.しないでください
The
eval
関数は、JavaScriptコードを含む文字列を受け取ります.私たちはそれを使用するべきではありません.なぜなら、それは未知のソースからのコードを実行できます.
また、それはフライで解釈されるので、それはまた、通常のコードよりも遅いです.これはJavaScriptエンジンがコードを最適化できないためです.
現代のインタプリタはコードをマシンコードに変換します
eval
○○.これは、インタプリタが正しい変数にものをセットするためにオンザフライで変数ルックアップをする必要があることを意味します.変数に対して実行された操作は、コードを
eval
関数.結論
オブジェクトを平等と比較するとき、我々は
===
演算子は、オブジェクトの内容と型を比較します.また、呼び出されたときに関数に渡されない場合には、パラメータのデフォルト値を設定する必要があります.また、私たちはdefault
ブロックswitch
ステートメント予期しない値を処理します.最後に、使用しないでくださいeval
関数は、人々が悪意のあるコードを我々のプログラムに注入するのを許す大きなセキュリティであるので、コードを実行するのが遅いですeval
○○.Reference
この問題について(ジャバスクリプト — 予想外の値), 我々は、より多くの情報をここで見つけました https://dev.to/aumayeung/javascript-best-practices-unexpected-values-and-more-4hoeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol