私のフロントエンド入門ノート(5)--Js-ECMAScript
4036 ワード
1.JavaScriptの構成とデータの種類
JavaScriptの構成:ECMAScript、DOM、BOM ECMAScript:基本文法;DOM:ドキュメントオブジェクトモデルを使用して、ドキュメントオブジェクトを操作します.BOM:ブラウザのオブジェクトモデル、ブラウザを操作して、ブラウザに関する情報を取得する.
簡単なデータタイプ:Number、String、Boolean、Null、Unidefined.引用タイプ:(Aray、function、Json)→Object;
2.ローカル変数とグローバル変数
局所変数:内部変数ともいい、関数内で定義されたもので、その作用領域は関数内部に限定されます.大域変数:外部変数とも呼ばれ、関数の外部に定義され、その作用領域はソースプログラム全体です.ローカル変数とグローバル変数を理解するための簡単なコンソールプログラムです.
関数宣言:ステートメントの関数解析器については、いつでも起動できます.
argments:配列パラメータの小部分コードは以下の通りです.
対+:
任意のタイプと文字列の加算を先に文字タイプに変換します.(数字は文字列に変換されます.10+';文字列は数字に変換されます.パーrseInt("100")は文字以外に、他のタイプは数字と加算して先に数字の種類に変換されます.
数字以外のタイプはデジタルタイプに変換され、変換できない場合はNANに戻ります.
全部numberなら、直接比較はstringなら、直接比較はnumberなら、もう一つをnumberに変換して比較します.
=:赋価は、a=1;==部分が等しくて、変換した後に等しいことができます.例えば:11="11";true,NAN==NANfalse;===まったく等しい.例えば:11==11";false;注:NAN==NANfalse;!==まったく同じではない
通常はtypeofでデータタイプを判断しますが、参照タイプを判断すると戻り値がobjectとなります.この場合はinstance ofでより正確に判断します.
JavaScriptの構成:ECMAScript、DOM、BOM ECMAScript:基本文法;DOM:ドキュメントオブジェクトモデルを使用して、ドキュメントオブジェクトを操作します.BOM:ブラウザのオブジェクトモデル、ブラウザを操作して、ブラウザに関する情報を取得する.
簡単なデータタイプ:Number、String、Boolean、Null、Unidefined.引用タイプ:(Aray、function、Json)→Object;
2.ローカル変数とグローバル変数
局所変数:内部変数ともいい、関数内で定義されたもので、その作用領域は関数内部に限定されます.大域変数:外部変数とも呼ばれ、関数の外部に定義され、その作用領域はソースプログラム全体です.ローカル変数とグローバル変数を理解するための簡単なコンソールプログラムです.
var a = 1,b;
function num(){
var a = 2;
b = 5 ;
console.log(a);//2
console.log(b);//5
};num();
console.log(a);//1
console.log(b);//undefined
3.関数宣言、関数式および宣言前関数宣言:ステートメントの関数解析器については、いつでも起動できます.
alert(count(10,10));//20
function count(a,b){
return a+b;
}
関数式:解析器は式がある行才でのみ実行されます.つまり前に呼んだらエラーが発生します.alert(count(10,10));
var count = function(a,b){
return a+b;
};//
var count = function(a,b){
return a+b;
};
alert(count(10,10));//20
前の宣言: console.log(a);
var a ="hello";//undefined
:
console.log(a);
var a;
a = "hello";// var a ,
var a;
console.log(a);
a = "hello";//"hello"
4.for-i n循環出力対象内の値var man = {
'name': 'kevin',
'sex': 'man'
}
for(var key in man){
console.log(man[key]);
}// :kevin
man
var man = {
'name': 'kevin',
'sex': 'man'
}
for(var key in man){
console.log(man);
} :Object {name: "kevin", sex: "man"}
var man = {
'name': 'kevin',
'sex': 'man'
}
for(var key in man){
console.log(key);
}// :name
sex
var man = {
'name': 'kevin',
'sex': 'man'
}
for(var key in man){
console.log(man.name);// console.log(man['name'])
}// :kevin
Jsonの解析var obj = {"name":"keivn", "age": 100};
var objStr = JSON.stringify(obj); // ie8+ json
var str = '{"a":1, "b":2}';
var o = JSON.parse(str);// json
5.argments重荷重を実現するargments:配列パラメータの小部分コードは以下の通りです.
function newSum( ){
var sum = 0;
for(var i=0; i < arguments.length; i ++){
sum += arguments[i];
}return sum;
}
newSum(1,2,3);//6
newSum(1,4,7);//12
6.異なる文字タイプ間の演算と変換対+:
任意のタイプと文字列の加算を先に文字タイプに変換します.(数字は文字列に変換されます.10+';文字列は数字に変換されます.パーrseInt("100")は文字以外に、他のタイプは数字と加算して先に数字の種類に変換されます.
1 + "num";//"1num"
1 + "100";//"1100"
10 + true;//11
10 +false;//10
10 + null;//10
10 + undefined;//NaN
10 + "hello";//"10hello"
に対して、*、/、%数字以外のタイプはデジタルタイプに変換され、変換できない場合はNANに戻ります.
10 - "2";//8
10 /"2";//5
10 /"0";//Infinity
10*true;//10
10/"hello";//NaN
関係><全部numberなら、直接比較はstringなら、直接比較はnumberなら、もう一つをnumberに変換して比較します.
2 > 1; //true
"b" > "abc" //true
"23" < 3 //false
NaN < 3 // false
NaN >= 3 // false
"a" > 3 //fasle
"a" <= 3 //false
注:NaNはデータタイプです.typeof NaN; //"number"
NaNに関しては、一般的にisNaN()で判断されます.var a = NaN;
var b = NaN;
console.log(isNaN(a) && isNaN(b)); //true
7.=====、!==の違い=:赋価は、a=1;==部分が等しくて、変換した後に等しいことができます.例えば:11="11";true,NAN==NANfalse;===まったく等しい.例えば:11==11";false;注:NAN==NANfalse;!==まったく同じではない
var a1 = 'a';
var a2 = new String('a');
var a3 = new String('a');
a1 == a2; // true
a1 == a3; // true
a2 == a3; // true
a1 === a2; // false
a1 === a3; // false
a2 === a3; // false
8.typeofとinstance ofの違い通常はtypeofでデータタイプを判断しますが、参照タイプを判断すると戻り値がobjectとなります.この場合はinstance ofでより正確に判断します.
var arr = [];
typeof arr;//"object"
arr instanceof Array;//true