JavaScriptノートを整理する(三)
24639 ワード
1.1文法
1.1.6式式の後には、一般的に続く. 演算子と他の表現 三元演算子 関数呼び出し 属性抽出式 演算子優先度は上から下へ
1.2.1オブジェクトの字面量
-新規オブジェクト値の表示法を作成します.検索対象内の値 優先的に使用します.文法、次は[]文法です.検索した属性名が表現式である場合は[]を使用して取得します. 存在しない属性を検索するとundefinedに戻ります. は、𞓜演算子を使用してデフォルトのパディングを行うことができます.
-オブジェクトの属性名が既に存在している場合、オブジェクトの属性名を付与すると、その属性の値が更新されます.
-オブジェクトは参照によって値を伝達します.それらは永遠にコピーされません.
-オブジェクトごとに原型オブジェクトに接続します.文面量で作成したオブジェクトはすべてObject.prototypeに接続されています.
-オブジェクトの属性の種類をチェックします. for…inは、オブジェクト内のすべての属性名(プロトタイプチェーン内の属性を含む)を列挙し、ハスOwnPropertyと を使用する. typeofは、望まない属性や関数をフィルタリングします. 属性名の出現順序は不確かであり、属性が特定の順序で出現する場合は、for...inを使用しない方が良い. 1.2.9削除
-delete演算子は、オブジェクトの属性を削除するために使用します.プロトタイプチェーンの同名属性は削除されません.
-グローバル変数を最小化する方法は、唯一のグローバル変数のみを作成することです.
1.1.6式
. [] () -
delete new typeof + - ! -
* / % -
+ - - /
>= <= > < -
=== !== -
&& -
|| -
?: -
typeof演算子の生成値は、‘number’、‘string’、‘bollan’、‘undefined’、‘function’、’object’の6つの値だけです. typeof null === 'object', typeof [] === 'object', 。
:
function DataType(obj, type) {
return Object.prototype.toString.call(obj) === "[object " + type + "]" ? true : false;
}
+ 。 。 。
'0' + 1 === '01'; // true
1 + '0' === '10'; // true
1 + 0 === 1; // true
&& && , && , && , && 。
var a = 0;
a && a++; // false
a; // 0
var b = 1;
b && b++; // true
b; // 2
( ) false, ( )。
( ) true, ( )。
|| || , || , || , || 。
var c = 0;
c || c++; // true
c; // 1
var d = 1;
d || d++; // true
d; // 1
( ) false, ( )。
( ) true, ( )。
! ! ,! 。
!true === false; // true
!false === true; // true
!undefined === true; // true
!null === true; // true
!"" === true; // true
!0 === ture; // true
!NaN === true; // true
1.2オブジェクト1.2.1オブジェクトの字面量
-新規オブジェクト値の表示法を作成します.
var obj = {};
var obj_2 = {
name: "Ama_zhe",
"": "hello world"
};
obj_2[""] === "hello world"; // true
-属性名は、空の文字列を含む任意の文字列とすることができます.属性名が合法的なJavaScript識別子であり、かつ単語を保持していない場合、属性名は引用符を必要としない.var obj_3 = {
value: 1,
"first-name": "fan"
}
1.2.3検索var hello = obj_3.status || "0"; // "0"
-undefinedから属性を取得するとエラーが発生し、&&&var hi = obj_3.status && obj_3.status.value; // undefined
1.2.4更新-オブジェクトの属性名が既に存在している場合、オブジェクトの属性名を付与すると、その属性の値が更新されます.
obj_3.value = 2;
obj_3.value === 2; // true
-オブジェクトの前に属性名がない場合は、オブジェクトに属性を追加します.obj_3.name = "Stafan";
obj_3; // { value: 2, "first-name": "fan", name: "Stafan" }
1.2.5参照-オブジェクトは参照によって値を伝達します.それらは永遠にコピーされません.
var a = obj_3;
a.status = "1";
var b = obj_3.status;
b; // "1" a obj_3 ,a.status obj_3 status , b "1"。
var c = {}, d = {}, e = {}; //
c === d; // false
c === e; // false
d === e; // false
var f = g = h = {}; //
f === g; // true
f === h; // true
g === h; // true
1.2.6プロトタイプ-オブジェクトごとに原型オブジェクトに接続します.文面量で作成したオブジェクトはすべてObject.prototypeに接続されています.
if(typeof Object.create != "function"){
Object.create = function(obj){
var Fn = function(){};
Fn.prototype = obj;
return new Fn();
}
}
var obj = {
name: "a",
value: "100"
};
var obj2 = Object.create(obj);
obj2.name = "b"; //
obj2.value = "200"; //
obj.name; // "a"
obj.value; // "100"
obj2.name; // "b"
obj2.value; // "200"
-ただし、検索対象の属性の場合、そのオブジェクトに検索する属性がない場合は、原型オブジェクトから取得します.オブジェクトとそのプロトタイプのチェーンに取得する属性がない場合は、undefinedに戻ります.obj.data = "data";
obj2.data; // "data"
obj2.opt; // undefined
1.2.7反射-オブジェクトの属性の種類をチェックします.
var obj3 = {
name: "Ama_zhe",
number: 2,
obj: {}
};
typeof obj3.name === "string"; // true
typeof obj3.number === "number"; // true
typeof obj3.obj === "object"; // true
typeof obj3.aaa === "undefined"; // true
-プロトタイプチェーンのどの属性も「funtion」に戻ります.typeof obj3.toString === "function"; // true
typeof obj3.constructor === "function"; // true
typeof obj3.valueOf === "function"; // true
-ハスOwnPropertyは対象特有の属性を検査し、プロトタイプチェーンを検査しない:obj3.hasOwnProperty(name) === true; // true
obj3.hasOwnProperty(toString) === false; // true
1.2.8列挙-delete演算子は、オブジェクトの属性を削除するために使用します.プロトタイプチェーンの同名属性は削除されません.
var obj6 = {
a: 1,
b: 2
};
delete obj6.a;
obj6; // { b: 2 }
var obj = {
a: 1,
b: 2,
name: "seven"
};
var Fn = function(){};
Fn.prototype = obj;
var obj_n = new Fn();
obj_n.name = "eight";
obj_n.name; // "eight"
delete obj_n.name;
obj_n.name; // "seven"
1.2.10グローバル変数の汚染を減らす-グローバル変数を最小化する方法は、唯一のグローバル変数のみを作成することです.
var GLOBAL_VARIABLE = {};
-グローバル変数の他の変数の属性を指定します.GLOBAL_VARIABLE.API = {
common_link: ""
};
GLOBAL_VARIABLE.initFn = {
add: function(){
var sum = 0;
Array.apply(this, arguments).map(function(a){
sum += a;
});
return sum;
}
};
私のブログへようこそ.zhe------内容は個人整理です.間違いがあれば、ご指摘ください.ありがとうございます