ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript におけるいくつかの非主流演算子の使用法の概要

JavaScript におけるいくつかの非主流演算子の使用法の概要

伊谢尔伦
伊谢尔伦オリジナル
2017-07-19 10:38:521428ブラウズ

JavaScript は他にもさまざまな演算子をサポートしています。

i. 条件演算子 (?:)

条件演算子は JavaScript の唯一の三項演算子です。通常、この演算子は「?:」として記述されます。最初のオペランドは「?」の前にあり、2 番目のオペランドは「?」と「:」の間にあります。 3 番目のオペランドは、「:」の直後です。たとえば、

x > 0 ? x : -x; // x の絶対値を求めます
条件演算子のオペランドは任意の型にすることができます。最初のオペランドがブール値として扱われる場合、2 番目のオペランドが評価され、結果が返されます。割り当て 最初の値のオペランドが false の場合、3 番目のオペランドが評価されます。そして計算結果を返します。 2 番目と 3 番目のオペランドは常にいずれかの値として評価されます。両方を同時に行うことは不可能です。実際、if ステートメント (5.4.1) を使用しても同じ効果が得られます。「?:」演算子は省略形を提供するだけです。以下は、変数が定義されているかどうかを決定する「?:」の一般的な使用シナリオです。定義されていない場合は、デフォルト値が使用されます。

 grett = "hello" + (username ? username : "three");

は次のコードと同等ですが、上記のコードはより簡潔です

grett = "hello";
if (username)
   grett += username;
else
   grett + "three"

ii.typeof() 演算子

typeof は単項演算子で、単一のオペランドの前に配置されます。オペランドは任意の型にすることができます。値は操作のタイプを表す文字列です。

   x             __ typeof x
            undefined     __ "undefined"
            null           __  "object"
            ture或false    __"boolean"
            任意数字或NaN     __ "Number"
            任意字符串                        __ "String"
            任意函数                            __ "function"
            任意内容对象(非函数)__ "object"
            任意宿主对象                    __ 由编译器各自实现的字符串,但不是"undefined" "boolean" "number" "string"

typeof の最も一般的な使用法は次のような式で書かれます

(typeof value == "string") ? "" + value + "":value;
typeof 演算子は swith ステートメントにも含まれます (5.4 .3 ) 非常に便利です。typeof 演算には括弧を含めることができます。これにより、typeof はキーワードではなく関数名のように見えます

typeof(i)

iii.delete 演算子

delete は、オブジェクトの属性または配列の要素を削除するために使用される単項演算子です。代入、インクリメント、デクリメント演算子と同様です。削除には副作用もあります。削除操作に使用されます。値を返すためには使用されません。

var o = {
                x: 1,
                y: 2
            }
            delete o.x;
            "x" in o; //=>false
            var a = [1, 2, 3];
            delete a[2]; // 删除数组中最后一个元素
            2 in a; //=> false 元素2已经在数组中不存在了
            a.length; //=>3,注意,数组长度并没有改变,尽管上一行删除了这个元素,但删除操作留下了一个洞。实际上并没有修改数组的长度,因此a的长度仍然为3

属性を削除したり、配列要素を削除すると、未定義の値が設定されるだけではなく、属性が削除されると、その属性は存在しなくなることに注意してください。存在しない値を読み込むと、未定義が返されます。厳密モードでの削除や一部の状況については、学習が必要な場合は自分で試してください。

var o = {x: 1,y: 2};
            delete o.x; //删除一个对象属性,返回true
            typeof o.x; //属性不存在,返回"undefined"
            delete o.x; //删除不存在的属性,返回true;
            delete o; //不能删除通过var关键字声明的变量,返回false
            delete 1; //参数不是一个左值。
            this.x = 1;// 给全局定义一个属性,这里没有使用var
            delete x ; //试图删除它,在非严格模式下返回true
                       //在严格模式下回抛出异常,这时使用"delete this.x"来代替
             x;        //运行时出错,没有定义x

iii.void 演算子。

void は単項演算子であり、オペランドが出現する前は、オペランドは任意の型にすることができます。この演算子は一般的には使用されません。オペランドは通常どおり評価されますが、結果は無視され、未定義が返されます。 void はオペランドの値を無視するため、オペランドに副作用がある場合は void を使用してプログラムする方が合理的です。

これは最も一般的に使用されるクライアント URL です。URL に副作用を伴う式を記述します。void を指定すると、ブラウザーがこの式の演算結果を表示できなくなります。

<a href="javascript:void window.open();">new</a>

iiii. カンマ演算子。 (,)

カンマ演算子は二項演算子であり、そのオペランドは任意の型にすることができます。最初に左のオペランドが評価され、次に右のオペランドが評価されます。

 i = 0, j = 1, k = 2;

これは基本的に次のコードと同等です

i = 0; j = 1; k = 2;
左辺の式は常に評価されますが、計算結果は無視されます。副式に副作用がある場合、コードをよりスムーズにするためにカンマ演算が使用されます。カンマ演算子で最も一般的に使用されるシナリオは for ループ内であり、通常は複数のループ変数があります。

りー

以上がJavaScript におけるいくつかの非主流演算子の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。