Javascriptで注意すべき設計(一部を整理)

php是最好的语言
リリース: 2018-08-01 09:26:25
オリジナル
1240 人が閲覧しました

私は最近 avascript をレビューしています。この素晴らしい JS は非常に強力な人物によって 10 日間で開発されたものなので、必ずいくつかの設計上の欠陥が存在します。学習しながら要約して、これらの落とし穴をスキップしましょう。

1. 演算子 == と ===

等価演算子 == に特に注意してください。 JavaScript の設計時には、2 つの比較演算子があります: ==。JavaScript在设计时,有两种比较运算符:

第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。

由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较。

2. NaN  

NaN表示Not a Number,当无法计算结果时用NaN表示
ログイン後にコピー

NaN这个特殊的Number与所有其他值都不相等,包括它自己

NaN === NaN; // false
ログイン後にコピー

唯一能判断NaN的方法是通过isNaN()函数:

isNaN(NaN); // true
ログイン後にコピー

3. null和undefined

null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。

在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用nullundefined仅仅在判断函数参数是否传递的情况下有用

4. 数组

数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:

[1, 2, 3.14, 'Hello', null, true];
ログイン後にコピー

初始化数组:

var array1 = new Array()

var array1 = []

var array1 = new Array(10)

5. 对象

JavaScript的对象是一组由键-值组成的无序集合

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};
ログイン後にコピー

JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,personname属性为'Bob'zipcode属性为null

要获取一个对象的属性,我们用对象变量.属性名

1 つ目は == 比較で、データ型を自動的に変換してから比較します。多くの場合、非常に奇妙な結果が得られます。


2 番目のタイプは === 比較で、データ型が一致しない場合は、false が返されます。また。 JavaScript のこの設計上の欠陥のため、== 比較を使用せず、常に === 比較に固執してください。

2. NaN

NaN この特別な数値は、それ自体を含む他のすべての値と等しくありません rrreee

NaN を決定する唯一の方法は、 を使用することです。 isNaN()関数:

rrreee

3. null と未定義null は、0 および null と同じ「空」の値を表します。文字列 '' は異なります。0 は数値です。'' は長さ 0 の文字列を表します。null code> は「空」を意味します。

🎜他の言語でも、JavaScript の null に似た表現があります。たとえば、Java では null が使用され、Swift では nil が使用されます。 なし という意味を使用します。ただし、JavaScript には、「未定義」を意味する null に似た unknown もあります。 🎜🎜 JavaScript の設計者は、空の値を表すために null を使用し、未定義の値を表すために unknown を使用することを望んでいます。これが役に立たないことは事実が証明しており、この 2 つの違いはほとんど重要ではありません。ほとんどの場合、null を使用する必要があります。 unknown は、関数のパラメーターが渡されるかどうかを決定する場合にのみ役立ちます🎜🎜 4. 配列🎜🎜 配列とは、集合を順番に並べたもので、集合の各値を要素と呼びます。 JavaScript 配列には任意のデータ型を含めることができます。例: 🎜rrreee🎜配列を初期化します: 🎜🎜var array1 = new Array()🎜🎜var array1 = []🎜🎜var array1 = new Array(10) 🎜🎜5. オブジェクト 🎜🎜JavaScript オブジェクトはキーのセットです。 - 順序なしの値のコレクション🎜rrreee🎜 JavaScript オブジェクトのキーはすべて文字列型であり、値は任意のデータ型にすることができます。上記の person オブジェクトは、合計 6 つのキーと値のペアを定義します。各キーはオブジェクトの属性とも呼ばれます。たとえば、person の <code>name 属性です。 は 'Bob' で、zipcode 属性は null です。 🎜🎜オブジェクトの属性を取得するには、オブジェクト変数.属性名を使用します: 🎜rrreee🎜 関連記事: 🎜🎜JavaScriptを使用する際の注意点と基本構文_基礎知識🎜 🎜🎜🎜問題点Web フロントエンド デザインでは注意が必要です🎜🎜🎜関連ビデオ: 🎜🎜🎜JavaScript デザイン パターンのビデオ チュートリアル🎜🎜

以上がJavascriptで注意すべき設計(一部を整理)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート