『JavaScript権威ガイド』ノート二

2716 ワード

式と演算子
元の表現
直接量(1.23ハロー)、予約ワード(true false null this)、変数(undefined、i sum)オブジェクトと配列の初期表現は、実際には新規作成されたオブジェクトと配列であり、オブジェクトの直接量、配列の直接量(1)の配列表現である.
    [] //       
    [1+2,3+4] //            
(2)オブジェクト表現
    var  p :{ x:2.3,y:-1.2};
    var q = {};
    q.x = 2.3; q.y = -1.2;
(3)関数定義式(関数直接量)
    var square = function(x) {
                   return x*x
     }
属性アクセス式
var book = {
   topic:"javascript",
   fat:"true"
}
オブジェクトの属性にアクセスします.
book.topic=>javascript
名前付きの属性が存在しない場合、属性全体のアクセス表現の値はundefiendです.
式を呼び出す
f(0)/fは関数式で、0はパラメータ式Math.max(x,y,x)Math.maxは関数です.x,y,zはパラメータa.sort()//は関数です.パラメータがありません.
オブジェクトの表式を作成してオブジェクトを作成し、関数==>を呼び出して新しいオブジェクトの属性を初期化します.new Object()new Point(2,3)オブジェクトの表現値を計算すると、まず新しい空オブジェクトを作成し、指定されたパラメータを入力して、この新しいオブジェクトをthisとして指定関数を呼び出します.この新規作成オブジェクトの属性は、thisで初期化できます.
演算子
演算式
+
‘1’+‘2’ // 12
1+{}  // 1[object,object]
true + true  // 2

2 + null  // 2  null   0
2 + undefinend // NaN 

1+1 +'hello'   // 2hello
++
var i = 1   j = ++i    //  j    i      2
var j = 2  j = i++    // i  2  j    1
ビット演算子
&124^
関係式
(1)等しい演算子と等しい演算子==厳密に等しい演算子は、2つの動作数が厳密に等しいかどうかをチェックします.等しい演算子は、2つの動作数が等しいかどうかを確認します.厳密に等しい演算子は、まずその動作数の値を計算し、その後、2つの値を比較します.いいえ、同じです.(2)比較演算子<>===(3)inとinstanced of演算子inの左演算数は、1つの文字列(変換可能文字列)の右演算数は、1つのオブジェクトです.
var point = {x:1,y:2}
'x' in point    //true
'z' in point   // false
'toString()'   in point //true       toString()  
instance of左操作数は、オブジェクトを右操作数で識別するクラスです.
var d = new Date();
d instanceof Date;  //true
d instanceof Object; //true
d instanceof Number //false
論理式
𞓜𞓜!ブール演算を行います.
与えられた表式
i=0変数iを0 o.x=1に設定し、オブジェクトo属性xを1に設定します.
=変数または属性への左の操作数は、左の値(変数、オブジェクトの属性)の右の操作数であり、任意の種類の任意の値であります.
操作子の結合性は右から左までです.
i=j=k=0;//3つの変数を初期化します.
式計算
eval()evalは元々関数ですが、直接evalに対して演算子として扱われることが多いです.呼出されたコンテキストのスコープ内で実行されます.
間接eval(エイリアス):グローバルオブジェクトをコンテキストスコープとして使用します.
その他の演算子
(1)条件演算子(?:)三元の操作子の最初の操作数は?前の二つ目は?中間の三つ目は:その後
x>0x:-xはx絶対値(2)typeof演算子typeof null/object(3)delete削除対象属性または配列要素の副作用を求めます.削除操作は1つの値を返すためのものではありません.
var a = [1,2,3]
delete a[2]
2 in a   //false
a.length  //3           undefiend  
配列要素を削除します.配列長を変えないと、var宣言の変数は削除できません.function定義の関数と関数パラメータは対象について削除できません.固有属性のみ削除できます.継承属性は削除できません.
(4)void演算子の単項演算子は、頻繁に使用されないが、動作数は任意のタイプであっても良いが、計算結果を無視してundefiendに戻ると、クライアントurl 新しいウィンドウを開く(5)カンマ演算子の二元演算子、i=0,j=1,k=2に一般的に使用される.