JavaScriptで演算子の種類

代入演算子


  Share  
|


キーを代入演算子は、等号( = ) 。 左のオペランドは、変数、配列要素、またはオブジェクトのプロパティであり、右のオペランドのいずれかをリテラルまたは別の変数は、配列の要素、またはオブジェクトのプロパティです。 変数に値を代入する変数のさまざまな組み合わせの任意の番号を達成することができます、配列の要素は、オブジェクトのプロパティ、およびリテラル。

は、次の割り当ての範囲のアイデアを提供しています:

 アルファ= 77 ;  
 アルファ= ( fishSize.length / 2 ) ;  
 アルファ= (ベータ版>ガンマ) ; 

化合物の演算子

オペレータが操作を含む化合物と一緒に代入演算子をしている。 宿題プラス他の操作のための速記これらの演算子として動作します。 例えば:

  Varの銀行口座+ =利子; 

書面に相当する

  Varの銀行口座=銀行口座+利子; 

さらに加えて、 JavaScriptで化合物の演算子( -= ) 、割り当てる多重( *= ) 、 割り当てる分割( / = ) モジュロ( % = )引く代入を割り当てる含まれています 。 たとえば、次のスクリプトは、モジュロ化合物代入演算子を使用します:

  <html>次  
  <head>タグ  
  <script language="JavaScript">  
  Varのボルト= 150 、ロット= 60 ;  
 ボルト% =たくさん;  
  ( "奇数たくさん= " +ボルト) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="lightslategray">  
 と< / body >  
  < / HTML形式> 

2つの操作方法の例を1つ1つに組み合わせることができますが表示されます。 ボルトは、多くの変数は、変数の値によって、そして残りの部分 (モジュール)に分けされている変数のボルトに割り当てられている。 これは、この書き込みと同じになる:

  Varのボルト=ボルト%多く; 

しかし、代わりに2つの操作をして、 1つの割り当てと操作のトリックではない。

比較演算子

演算子をJavaScriptでおそらく最も間違いの地域(または単に)代入演算子と比較演算子の違いを忘れて混乱している。 代入演算子、変数、配列要素、またはオブジェクトのプロパティに値を同一視する。 比較演算子を指定するブール値を生成します。 たとえば、次のスクリプトは、偽のブール値を返します:

  <html>次  
  <script language="JavaScript">  
  Varの間違った= ( 6 == 7 )  
 のdocument.write ( )が間違っ;  
  < /スクリプト>  
  <body bgcolor="lightslategray">  
 と< / body >  
  < / HTML形式> 

比較演算子は、二重に等しい記号( = = ) 、および代入演算子は等しい( = ) に署名している。 最も一般的な問題は、標準条件文では、開発者タイプのこの:

 場合( α =ベータ版) ( .... 間違い 

このときはタイプすること:

 場合( α ==ベータ版) ( .... 右 

デバッグプロセスでは、 1つの最初のものを探すへの代入演算子の場所は、等価演算子されるべき配置されています。

他の比較演算子を含めるに等しくない( ! = )より小さい( < ) 、より大きい( > ) 、未満か等しい( < ) より大きい=または( > = )等しい。 は、等価演算子と同様に、これらの他の比較演算子の2つの役割をしている。 1つの役割は、条件文の一部であり、他の定義は、前の例のようにブール値リテラルとしての役割を果たすことです。 次のスクリプトをどのように変数のように、ブール値リテラルを含めることができますし、条件文の一環として、比較演算子を使用せずに使用される定義することができますが表示されます:

  <html>次  
  <script language="JavaScript">  
  Varのアルファ= 25 ;  
  Varのベータ= 35 ;  
  Varのゼータ= ( α < =ベータ版) ;  
  (ゼータ) ( 
       Varのシグマ= "に該当するためです。 "  
      する) else ( 
       =真実ではない"これはVarのシグマ。 " ;  
       )  
  (シグマ) ;  
  < /スクリプト>  
  <body bgcolor="lightslategray">  
 と< / body >  
  < / HTML形式> 

このスクリプトでは、変数アルファに比べてより小さいか等しい( <ゼータの定義で= ) ベータ版リリースアルファベータ未満であるため、変数ゼータ真のブール値が含まれています。 これは、変数のベータ版はすでに、ブール値は、条件文では、 比較演算子を使用しています。 これは、 はtrueですが、これに該当されているメッセージ"とシグマの変数を読み込むためには条件を満たしています。 "

厳格な平等の演算子

JavaScriptを1.3厳格な平等と不平等の演算子を導入した。 価値と平等の両方のタイプの平等のためこれらの演算子をテストします。 つまり、両方の値が23だった 1つの変数が文字列で、他の数値ですされている場合は、とにかく不平等だと思うかもしれない。 次のスクリプトを考えてください:

  <html>次  
  <script language="JavaScript">  
  VarのcurrentWord = " 75 " ;  
  VarのcurrentNumber = 75 ;  
  Varの結果= ( currentWord == currentNumber ) ;  
  (結果) ;  
  < /スクリプト>  
  <body bgcolor="lightsalmon">  
 と< / body >  
  < / HTML形式> 

あなたは、その変数に該当する検索結果に驚くかもしれません ! JavaScriptの文字列の違いは非常に数値を解決するのは難しいしようとすると、その理由。 以下のように、変数を定義する場合、注意、結果にもかかわらず、行をミックスされ、文字列リテラル文字列を数値:

  Varのミックス= " $ " + 12.33 ; 

同じ時にはJavaScriptが1つの番号は、 1つの文字列は2つの変数を比較は事実だ。 場合は、 "値"にもかかわらず、 1つの文字列と他のは同じであると判断されている番号は、 JavaScriptを親切に同じように、以前のスクリプトを見ながらになります。 場合には、アプリケーションの両方の値とデータのタイプを比較することが重要ですしていたしかし、標準の比較演算子と比較することができませんでした。 その問題を解決するには JavaScript 1.3 ( === )厳格な平等を導入し 、不等式( ! == )演算子。 これらの演算子を変数の型の値だけではないが、こちらも見ています。 前のスクリプトでは、この行を変更:

  Varの結果= ( currentWord == currentNumber ) ; 

〜へ

  Varの結果= ( currentWord === currentNumber ) ; 

次に、スクリプトを保存し、再度プログラムを実行します。 このスクリプトの2番目のバージョンでは、結果をfalseに変更されます 。 一方、番号が同じである、データの種類は異なっています。 は、 のように行を変更、真の結果を取得するには:

  Varの結果= ( currentWord ! == currentNumber ) ; 

両方のNetscape Navigatorの4.7と Internet Explorer 5以降厳格な平等と不平等の演算子を認識しています。 ( Netscape Navigatorのバージョン4の<SCRIPT>タグで= JavaScript1.2が、ブラウザの言語を必要とするそれ以降のバージョンでは、すべての言語=はJavaScriptが必要です。 )

算術演算子

JavaScriptでの基本的な算術演算子はかなり自己説明は、いくつかの例外があります。 は、それぞれの演算子を使用してを中心に議論されているこれらの例外から数aggravationsを回避するために。

を追加し、連結( + )

を追加している2つの異なる使用している1つの算術演算子( + ) 。 まず、数学演算子を追加する操作の値が追加されます。 第二に、 ( )は、文字列または文字列リテラルの結合などの連結。 数学的加えかなり簡単ですが、連結されていません。 動作を追加するときに文字列と番号が参加すると、それはかれらの数を連結して文字列に変換します。 たとえば、次のスクリプトリテラル文字列を結合nonstring :

  <html>次  
  <head>タグ  
  <title>を追加し、 < /タイトルを連結>  
  <script language="JavaScript">  
  Varのブール= 22 < 90 ;  
  Varの文字列= " 250 " ;  
  Varのnumnum = 88 ;  
  VarのBooleNum =ブール+ numnum ;  
  VarのBooleString =ブール+文字列;  
  VarのStringNum =文字列+ numnum ;  
  Varのpart1の部分= "ブール値<b>ダウンロード" +ブール+ " < / Bの>プラスの数を" + numnum + " = " +  
グラフィック/ ccc.gif  BooleNum ;  
  Varのパート= " <p>ブール値<b>ダウンロード" +ブール+ " < / Bの>プラスは、文字列" +文字列+ " = " +  
グラフィック/ ccc.gif  BooleString ;  
  Varの者= "文字列値<p> <b>ダウンロード" +文字列+ " < / Bの>プラスの数を" + numnum + " = " +  
グラフィック/ ccc.gif  StringNum ;  
 のdocument.write (前編+後編+者) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="paleturquoise">  
 と< / body >  
  < / HTML形式> 
差し引くと打消し( - )

マイナス記号( - ) 2つの非常に異なる使用しています。 まず、算術演算では、演算子を引くの最初から2番目のオペランドを差し引きます。 したがって、この行は、変数の値をアルファ 7

  Varのアルファ= 10-3 ; 

第二に、単項演算子は、マイナス記号として使用は負の値には正の値が変更されます。 場合には負の値が正の値から差し引かれた場合でもまた、結果は、 2つの正の値を追加すると同じです。 次のスクリプトを、演算子( - )署名の両方の単項否定し、マイナスとサブトラクションを使用して示しています。 たとえば、次のスクリプトを試す場合は今後どのような結果になる時間を測定することができます参照してください:

  <html>次  
  <head>タグ  
  <title>マイナスログインし、負の値< /タイトル>  
  <script language="JavaScript">  
  VarのposVal = 44 ;  
  VarのnegVal = - posVal ;  
  diffVal = ( posVal - VarのnegVal ) ;  
  ( diffVal ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="papayawhip">  
 と< / body >  
  < / HTML形式> 

場合は、画面の出力を88と推測すると、右されています。 変数posValでは正の値44です。 変数negVal posValの単項否定で作成されますnegVal posVal時から差し引かれた場合でも 、効果は、 2つの値を追加することです。 二重否定的な文法(同様に、肯定的な作成されます。 )

乗算( * )

乗算演算子は単純だが、その2つの数字乗算。 2つの文字列の数値文字を含む場合は多重しようとするとしかし、 JavaScriptの文字列を数値に変更しようと乗算を完了します。 たとえば、次のスクリプトをしてください:

  <html>次  
  <head>タグ  
  <title>乗算数字文字列での性< / title >  
  <script language="JavaScript">  
  VarのstringNum = " 5 " ;  
  VarのstringNum2 = " 20 " ;  
  VarのmulEm = stringNum * stringNum2 ;  
  ( mulEm ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="peru">  
 と< / body >  
  < / HTML形式> 

画面への出力を100となります 数字だけでなく、多重ので乗算演算子( * )が実際に特定の文字列を数値に変換することができます。

除算( / )

のように演算子乗算、除算演算子( / )の数字で動作します。 手術では、左のオペランドが右のオペランドで割った値です。 のように演算子を多重また、除算演算子は数には、文字列に変換しようとします。 ここでほとんどの部門は、他の操作とは異なるこの地域の格差がゼロのエラーによるものです。 異なるタイプの2つの結果を返します。 ゼロの数を、他のではインフィニティ除算0の結果よりも、ゼロゼロNaNを返しますが分かれている。 次のスクリプトエラーがゼロディバイドの両方の種類のものを返す示しています。 また、スクリプトをどのように機能isFiniteの( )および組み込み isNaN ( )インフィニティとはNaN値をテストするために使用しています 。 インフィニティは、 isFinite ( )関数の場合は、 !演算子を使用して否定する必要あります。

デザイナーは、インスタンスがゼロで分けるようにするプログラムをクラッシュから守ることの重要性を知ることができる場合に発生します。 ホーム-飾るサイトは、例えば、モジュールは、塗料の量を計算するために必要なお部屋ペイントしている。 塗料のガロン350平方フィートカバーしています。 塗装されるので、どこかの計算機には、デザイナは、部屋の平方フィートで350分割式が必要です。 は、ビューアとスクリプトでは、部屋の平方フィートの値の入力を忘れてしまったと仮定0で350分割を試みた。 むしろ混乱には、次のスクリプトを示したものでは、彼女がゼロ除算エラーが発生し、使用する任意のメッセージを送信すると、トラップすることができますガロンのペンキの無限の購入には、彼女の言っていたが、ビューアを送信するより:

  <html>次  
  <head>タグ  
  <title>ゼロのエラーで< /タイトル分割>  
  <script language="JavaScript">  
  VarのleftOperand = 77 ;  
  VarのrightOperand = 20 > 30 ;  
  VarのdivEm = leftOperand / rightOperand ;  
  Varの灘= 0 / 0 ;  
 のdocument.write ( divEm + " <p> " +灘) ;  
 場合( ! ( divEm ) ) ( isFinite 
 警告( "おっおいは、 \ '土大きな数! " )  
  )  
 場合( isNaN (灘) ) ( 
 警告( "あなたが何もないが分裂している。 " )  
  )  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="springgreen">  
 と< / body >  
  < / HTML形式> 
モジュロ( % )

のモジュロ( )演算子を分割操作で、残りを返します。 左のオペランドが右のオペランドで、区分されているだけに、残りが返されます。 モジュロ演算子は、ほとんどのアプリケーションで心に来ていない場合は、それは非常に便利な演算子であることが判明することができます。 たとえば、次のスクリプトを2位小数点に変換するには、長い小数点演算子を使用しています。

modulo2dec.html
  <html>次  
  <head>タグ  
  <title>モジュール、 2つの場所コンバータ性< / title >  
 <style>  
 体( 
 背景色:梅;  
 フォントファミリー: verdana ;  
 フォントウェイト:太字;  
  )  
  < /スタイル>  
  <script language="JavaScript">  
  Varの12月=. 06 ;  
  Varの一環= 77.4 ;  
 一部+ = ( 12月* ) ;  
  VarのwholeInt = Math.floor (一部) ;  
  / / Math.floor ( )関数のラウンドは、変数'一部'を、最寄りの全体を整数に。  
  / /これに先立ちモジュロ(残り) '一部'を取得するには、 100回未満を切り捨てている  
グラフィック/ ccc.gif 最寄りの残りの部分は全体の整数を取得します。  
  Varの分数= Math.round (一部* 100 ) % 100 ;  
 場合(分数< 10 ) ( 
 分数= " 0 " +分画;  
  )  
  VarのfullVal = wholeInt + " 。 "  +画分;  
  VarのheadTitle = " <h2>モジュールヘルパー< /水素> "  
  Varの前に= "変換前= " +一部+ " <p> " ;  
  Varの後= "変換後= " + fullVal ;  
 のdocument.write ( headTitle +前+後) ;  
  < /スクリプト>  
 と< / head >  
 の<body>  
 <center>  
 と< / body >  
  < / HTML形式> 
インクリメント( + + )とデクリメント( - - )演算子

これらの演算子のいずれか1を追加するか、オペランドから1を引く。 例では、ループカウンタ変数に増減は通常、これらの2つの演算子を使用して使われている。 ループ声明の中で、この一般的なフォームが増加または減少演算子の中で最もよく使用されます:

  (カウンタ= 0 ;カウンタ< 20 ;カウンタ+ + ) {.... 

これらの2つの演算子のオペランドpreaffectedまたはpostaffectedに接続することができます。 場合は、演算子のオペランドの前では、付加価値を減算しているか、次の操作をする前に。 演算子のオペランドの場合は、追加または減算の終わりには、手術後だ。 たとえば、次のスクリプトをどのようにそれぞれのオペランドに影響を表示するために使用することができます:

  <html>次  
  <head>タグ  
  <title>インクリメント/デクリメント演算子< /タイトル>  
  <script language="JavaScript">  
  Varの組み合わせ= " " ;  
  Varのバウンス= 0 ;  
  ( Varのカウンタ= 0 ;カウンター< = 5 ;カウンタ+ + ) ( 
        Varのいちバウンス= + + ;  
       組み合わせ+ = "と気付いている値= " +いち+ "で<br> " ;  
        )  
  ( )を組み合わせるのdocument.write ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="palevioletred">  
 <center>  
 と< / body >  
  < / HTML形式> 

ときには、スクリプトを実行すると、画面に表示される結果は以下の通り:

 気付いている値= 0  
 気付いている値= 1  
 気付いている値= 2  
 気付いている値= 3  
 気付いている値= 4  
 気付いている値= 5 

ループで最初の時間、 バウンス変数は、最初にゼロの値( 0 ) 、宣言しているため、その値がゼロに気付いているインクリメントの変数の定義を後にしています。 これで、変数の前に、これに次の行を変更、インクリメント演算子の位置を変更:

  Varのいち= + +バウンス; 

現在の出力での表示:

 気付いている値= 1  
 気付いている値= 2  
 気付いている値= 3  
 気付いている値= 4  
 気付いている値= 5  
 気付いている値= 6 

として見ることができる、インクリメント演算子の位置は、出力は根本的に変更した。 オペランドの前では、インクリメント演算子では、気付いている変数は、初めてのインクリメントの繰り返しだったが、 2回目の反復は、気付いている変数 、演算子のオペランドの終わりには変更されるまではありませんでした。 コード内の小さな変更は、出力には大きな変化をもたらした。 インクリメントとデクリメント演算子とすると、プログラムがクラッシュすることが特に警戒しなければなりませんので、演算子の位置を誤って配置されます。

演算子を使用して文字列変数とリテラルのコンテキストで

を使用して見たときは、プラス( + )演算子、数字と数字の文字列を追加することができますか1つの文字列に連結することができます。 そのためには、 "文字列演算子の考えを"非常に多くのコンテキスト依存性の概念です。

場合は、比較演算子を使用することができます + )演算子は、プラスを使用する以外に( >> =<< ===! = )の文字列です。 比較演算子を使用して、演算子のアルファベット順のUnicode文字エンコーディングに基づいて、文字列のオペランドを比較します。 この文字は、アルファベットの高いほど、その文字の大きい他の文字と比較されています。 しかし、大文字小文字未満です。 このため、緊急Xrayですが、 JavaScriptを懸念している限りそれ以下となります。 次のスクリプトを秩序と大文字と小文字の文字列の間の関係を示しています。

stringOps.html
  <html>次  
  <head>タグ  
  <title>文字列の比較< /タイトル>  
  <script language="JavaScript">  
  Varのアルファ= "リンゴ" ;  
  Varのベータ= "オレンジ" ;  
  Varのガンマ= "りんご" ;  
  Varのデルタ= "オレンジ" ;  
  Varのlclc =ベータ版>アルファ;  
  Varのlcuc =アルファ>ガンマ;  
  Varのuclc =ガンマ>アルファ;  
  Varのバナー= " <h3>文字列の比較< / h3の> "  
  Varの最初=ベータ+ "より大きい" + α + "の結果を" + lclc + " <p> " ;  
  Varの2番目=アルファ+ "より大きい" +ガンマ+ "の結果を" + lcuc + " <p> " ;  
  Varの3分の1 =デルタ+ "より大きい" + α + "の結果を" + uclc ;  
  (バナー+最初の2回目のdocument.write + + ) 3 ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="mistyrose">  
 と< / body >  
  < / HTML形式> 

が数字、文字列の場合とは異なる結果との比較( + )演算子のプラスを使用するよりも発生します。 回転の代わりに数字の文字列には、 JavaScriptの数値が数値、文字列の中の文字を含む文字列を比較することにしようとします。 たとえば、変数アルファは、 以下の条件を満たしていると、 書き込み

  Varのアルファ= " 10 " > 3 ; 

しかし、数多くの文字を文字で、文字を無視することはありませんし、数値のオペランドには、有効な数値に続く文字列を比較する。

ヒント

何よりも大きいときや数字、数字、文字列、または文字列と文字列の一部の組み合わせよりも少ないが、テストベンチとしてお使いのブラウザのアドレスウィンドウを使用について確認していない。 JavaScriptのにぴったりの言葉を入力してください:は、オペランドが、オペレータが続きます。

ブール演算子

ブール結果を比較演算子の結果が、 JavaScriptで3つの論理ブール演算子と同様にすることができます。 は、事業者別の条件または条件の否定を組み合わせる。

論理AND ( & & )

スクリプト内の共通の要件の異なる2つの条件のための結果が存在するの事実であるか、 falseです。 JavaScriptはAND論理( & & ) 演算子を 2つ以上の条件を満たしているかどうかを決定するために提供しています。 たとえば、配列の検索は、新しいプリンタの購入に興味がある人の状態ではアイオワ州デモインでは、プリンタのトレードショーのために連絡をすることができます住む顧客のすべてのインスタンスを探そうとする可能性があります。 場合にのみ、両方の条件に該当される結果に該当すると連絡先リストに追加されます。 たとえば、配列内の2つの条件については、次のスクリプトセグメントを検索します:

  ( = 0を求めるVarの; customers.length ;求める+ + )  
 もし( (関心[求める] == "プリンタ" ) & & (状態[求める] == "アイオワ" ) ) {.... 

は、括弧のダブルセットは、 if文内のスクリプトを同封する必要があります。 また、使用することは、論理と変数を定義する。 たとえば、次のスクリプトでは、最初の変数をtrueにし、 2番目の評価はfalseに評価

  <html>次  
  <head>タグ  
  <title>文字列の比較< /タイトル>  
  <script language="JavaScript">  
  Varのアルファ= ( 15 < 20 ) & & ( "ペン" > "ソード" ) ;  
  Varのベータ= ( "ビッグ" > " " ) & & ( 20 < 30 )背の高い;  
  ( α + "のdocument.writeで<br> " +ベータ版)  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="lightcoral">  
 と< / body >  
  < / HTML形式> 
論理OR ( | | )

論理OR演算子( | | )シンボルとして二重管を使用しています。 結果としてtrueを評価するために2つ以上の条件を満たしている場合は、論理OR演算子を使用して記載しておりますが、いずれかの条件が必要です。 たとえば、次のように、変数アルファtrueにかかわらず、 2つの条件の虚偽が評価する

  Varのアルファ= ( 56 < 34 ) | | ( 10 > 2 ) | | ( "フレッド" > "アリス" ) ; 

また、論理ORを使用することがあります(または、 AND論理)で変数をブール値で定義されている。 たとえば、次の行をどのようにして、スクリプト内の論理ORを使用する可能性があります表示:

  Varのアルファ= ( "豆" > "ポテト" ) ;  
  Varのベータ= 30 > 40 ;  
  Varのガンマ=アルファ| |ベータ; 

ため、いずれか1つまたはしているため、 の変数アルファおよびベータ版が含まれてブール値はfalseを1つ含まれては、変数ガンマ、両方に該当することに忠実ではない。

論理NOT ( ! )

JavaScriptの論理NOT ( )の結果を無効にするサービスを提供している。 場合によっては、ビルトインの関数をテストするスクリプトの中で、お客様の望むものをかもしれないの反対している。 このisFinite ( )の例では否定されたインフィニティのためのテストに使用される関数です。 は、次のスクリプトは、論理NOTのいくつかの異なるアプリケーションが表示されます:

  <html>次  
  <head>タグ  
  <title>論理NOT性< / title >  
  <script language="JavaScript">  
  Varのアルファ= 0分の200 ;  
  Varのベータ= ! isFinite ( α版) ;  
  Varのガンマ= ! ( !アルファ) ;  
  Varのデルタ= !ベータ;  
  VarのBの= "で<br> " ;  
  = "アルファ= " + bの組み合わせ+ α + "のベータ版= " +ベータ+ bの+ "ガンマ= " +ガンマ+ bの+ "デルタ= " +デルタ;  
  ( )を組み合わせるのdocument.write ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="mintcream">  
 と< / body >  
  < / HTML形式> 

このスクリプトは、次のような出力を生成:

 アルファ=インフィニティ  
 ベータ= trueを  
 ガンマ= trueを  
 デルタ= falseを 

アルファを生成するため、インフィニティ、 βこれは 、関数!インフィニティ ( )のテストisFinite真生成する必要があります 。 しかし、 ガンマ変数は、 trueを生成します。 変数を含むブール値はfalseの否定リテラルが、これは、 ブール値でも、他の変数の否定を生成するに該当する。 たとえば、これらの行はfalseを返す

  Varのアルファ= 5 、 β = !アルファ;  
  (ベータ版) ; 

アルファため、 ブール値が含まれていない場合は、アルファ"ニュートラル"に trueまたはfalseになると仮定かもしれない。 しかし、スクリプトではガンマを返す、ダブルは、前の本当の! ( !アルファ) 。 なぜなら、 !アルファは、 ブール値はfalseを生成するからだ。

ビット演算子

ビット単位の操作用のスクリプトを呼び出す場合は、下の表でご案内してシンボルを使用することができます。 一般的に、いくつかのプログラマー、ビット演算子を必要とJavaScriptで利用可能な演算子ここだけの完全なリストについては、誰が必要な場合がありますプログラマのための含まれています。

ビット単位の2進数を伴う操作をすると、どのように理解する必要がありますが効果的なプログラムでは2進数を使用する。 しかし、人生を、非常に効果的なプログラマーとしてではなく、デザイナーはもちろん、行くことができ、ビット演算子を使用するように原因があることはありません。 ただし、ビット演算子を使用している心の中では、 JavaScriptのプログラムに重大な想定されている場合は、 JavaScriptのビット演算子の種類が豊富に用意していますが見つかります。

ビット演算子

シンボル

操作

ビットごとのAND

|

ビット和

^

ビット単位のXORと続く

ビットごとのNOT

< <

左シフト

> >

右シフト

> > >

右にゼロ拡張シフト

特定の点で、ビット演算子は、他の意味では、 JavaScriptでも、他の事業者としては、同じ種類の表現のように使用されています。 キーの違いは、バイナリ( 0sと1秒で動作)の10進値の代わりにされています。 JavaScriptのビット演算子とやっていることを確認するには、 2進数をシステム内の最初の7つの値を考慮する:

  0000 -0  
  0001 -1  
  0010 -2  
  0011 -3  
  0100 -4  
  0101 -5  
  0110 -6 

もし1つの桁を左に1つずつシフトされたため、 から4 桁の位置に、値1 ( 0001 )の値を2 ( 0010 )になると3番目の位置に移動されますと、 0塗りつぶしでは、 1もともとだった。 したがって、 0001 0010 、または 10進値は2 になります 。 JavaScriptでビット演算子を使用して、同じ種類の操作を完了することができます。 次の10進数3月10進数6になると、左に1つのシフトショー:

  <html>次  
  <head>タグ  
  <title>ビット<シフト/タイトル>  
  <script language="JavaScript">  
  Varのアルファ= 3 < < 1 ;  
  ( α ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="palevioletred">  
 と< / body >  
  < / HTML形式> 

画面6 、ですが、 JavaScriptのため、これは単にシフト0011から0110への出力 。 4ビット操作を示しているが、 JavaScriptの32ビットの整数値を変換するように内部的には、すべての浮動小数点数の整数に変換され、 (たとえばを四捨五入し、 3.9999 ) 3 になります

typeofを使用する

typeof演算子 、次のいずれかの値を返す単項です:

  • 番号

  • 文字列

  • ブール

  • オブジェクト

  • 関数

  • 未定義

  • ヌル

) 、 typeof演算子の後にスペースを1つのオペランド 、またはかっこ内のオペランドの場所は、演算子を入力し、演算子( typeofを使用するには。 次のスクリプト( )とブール値( ブール値)は、演算子を適用するの両方方法を使用する場合:オブジェクトは、配列の復帰を示して

  <html>次  
  <head>タグ  
  <title> typeof演算子< /タイトル>  
  <script language="JavaScript">  
  Varのロット=新しいアレイ( ) ;  
  VarのwhatTruth = 10 > 4 ;  
  VarのkindOfData1 = typeofたくさん;  
  VarのkindOfData2 = typeof ( whatTruth ) ;  
  VarのkindOfData = kindOfData1 + " <p> " + kindOfData2 ;  
  ( kindOfData ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="wheat">  
 と< / body >  
  < / HTML形式> 

は、新規、削除、演算子ボイド

これらの最後の3つの事業について、 新たな 、最も一般的に使用されます。 すべてのオブジェクトは、コンストラクタは、 new演算子の前始まる必要があります。 以前に見たように、 配列オブジェクトは、 new演算子始まる:

  Varの家族=新しいアレイ( "お父さん" 、 "ママ" 、 "スー" 、 "クリス" ) ; 

同様に、すべての新しいオブジェクトを使用するため、他のコンストラクタ

演算子を削除するスクリプト内のオブジェクトのプロパティや配列要素を削除します。 たとえば、次の文字列値をスーとの配列要素 undefine :

  Varの家族=新しいアレイ( "お父さん" 、 "ママ" 、 "スー" 、 "クリス" ) ;  
 家族を削除する[ 2 ] ; 

しかし、演算子の名前にもかかわらず、その要素が削除されていません。のみが値です。 以下のスクリプトは何が起こるのかを示して:

  <html>次  
  <head>タグ  
  <title>の要素の値を削除する< /タイトル>  
  <script language="JavaScript">  
  Varの家族=新しいアレイ( "お父さん" 、 "ママ" 、 "スー" 、 "クリス" ) ;  
 家族を削除する[ 2 ] ;  
  (家族[ 3 ] + " <p> " + family.length ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="peru">  
 と< / body >  
  < / HTML形式> 

配列の長さは4つであり、最後の要素はクリスです 。 しかし、 3番目の配列要素( 要素[ 2 ] ) 、中は、もはやスーは 、まだ存在しています。 は、 単に未定義の演算子を削除します。

最後の演算子は、 ボイドは、単項され、任意のリテラルまたは変数で動作します。 通常、一に関する<a>タグの一部としては、 HTMLスクリプトの中で、このようなここには、演算子が表示されます:

 の<a style="text-decoration: none;" href="javascript:void(0) "onClick="scroll(500,0)"> 

void演算子評価式の値の表示を抑制します。 すべてのビューアであると考えているのjavascript : void ( 0 )は、下のウィンドウに左コーナー時には、 URLを含む完全な表現ではなく、リンク上にマウスを移動します。

記事ジョージFreedrichが提出

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions