私のフロントエンド入門ノート(5)--Js-ECMAScript

4036 ワード

1.JavaScriptの構成とデータの種類
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