入門と階段第二三章


JavaScriptに入る
値とタイプ
-利用可能なビルドタイプ
-string、number、bollan
-nullとundefined、object、smbol(ES 6新規タイプ)
-typeof a-->aの値の種類を問い合わせる,>typeof null-->"object"
 
オブジェクト
-object-->プロパティを設定することができます.
-点記号法(obj.a)>>読みやすく、優先
-四角括弧マーカー(obj["a]]]->属性(キー)名には特殊文字が含まれます.
var obj={
        a:「ハローワールド」
        b:42

var b="a"
obj[b]                 //「ハローワールド」
obj[b];               //42
-配列と関数->objectタイプの特化バージョン
 
行列
-1つの配列-->1つのobjectは、デジタルインデックスの位置を使用します.
var arr = [
        "hello world",
        42,
        true
]; 
arr[0];                  // "hello world"
arr[1];                  // 42
arr[2];                  // true
arr.length;              // 3
typeof arr;              // "object"
 
関数
-objectのサブタイプ->「function」
function foo() {
    
        return42;
} 
foo.bar ="hello world";
typeof foo;                       // "function"
typeof foo();            // "number"
typeof foo.bar;          // "string"
 
内向きの方法
-基本タイプ値-->「箱を閉じる」は、対応する対象包装器である(操作は裏側に隠れている)
 
値の比較
-強制変換-->明示的/暗黙的
-falsy-->"/0、-0、NaN/null、undefined/false
-truthy-->その他(配列、オブジェクト、関数...)
-等価性
       -==和===>=強制変換条件で検査値の等価性を許可する(==許可せず、厳密に等価)
       -比較値にはtrue/false、0/"/[]--用==があります.
       -基本値でない(object...)>簡単なチェック引用(arrayはデフォルトではコンマでstringに変更されます)
var a = [1,2,3];
var b = [1,2,3];
var c ="1,2,3"; 
a == c;          // true
b == c;          // true
a == b;          // false
-非等価性
-関係比較-->NaNはすべての数値値に等しくないものより大きくない.
 
変数
-変数名-->合法的な識別子(予約ワード)
 
関数のスコープ
-var変数->は、現在の関数スコープ(最上階->グローバルスコープ)に属します.
-昇格-->varの声明はスコープ全体に作用し、スコープのどの位置からもアクセスできます.
-ネストのスコープ
       -let-->個々のブロックに属する変数を宣言します.
 
条件
-if、switch、条件操作子(三元操作子)
 
Strictモード
-特定の行動のルールを強化しました.より安全で合理的で、より最適化可能性が高いです.
-「use strict」、->varを省略してはいけません.自動グローバル変数宣言が含まれています.
 
関数を値として
-匿名関数式/命名関数式
 
-すぐに呼び出される関数式(IIIFE)
(functionIIFE(){
    
        console.log( "Hello!" );
})();
// "Hello!"
-常に変数に使用します.>>IIIFEの外部コードに影響を与えません.
 
包みを閉じる
-関数が実行されていても、覚えて関数のスコープにアクセスし続けることができます.
functionmakeAdder(x) {
   
        //    `x`         
        //      `add()`    `x` `x`       
        functionadd(y) {
   
                 return y + x;
        };
        return add;
}
 
// `plusOne`            `add(..)` 
// `add()`         `makeAdder(..)`     `x`
//    
var plusOne =makeAdder( 1 );
// `plusTen`            `add(..)` 
// `add()`         `makeAdder(..)`     `x`
//    
var plusTen =makeAdder( 10 );
plusOne( 3 );            // 4  
plusOne( 41 );           // 42 
plusTen( 13 );           // 23 
-モジュール-->外部から見られないプライベート実装の詳細(変数、関数)と外部にアクセス可能な共通APIを定義する.
 
this識別子
-thisは関数自体ではありません.
functionfoo() {
    
        console.log( this.bar );
} 
var bar ="global"; 
var obj1 = {
    
        bar:"obj1",
        foo: foo
}; 
var obj2 = {
    
        bar:"obj2"
};
// --------
foo();                            // "global"
obj1.foo();                       // "obj1"
foo.call( obj2 );        // "obj2"
newfoo();                        // undefined
 
正体
var foo = {
    
        a:42
};
//    `bar`        `foo`
var bar =Object.create( foo );
bar.b ="hello world"; 
bar.b;           // "hello world"
bar.a;           // 42     `foo`
 
古いものと新しいもの
-Polyfillingを埋める唯一の自分と同じではない値-->NaN
-トランジットpilingを訳せば、パラメータのデフォルト値として明確に伝達できない値-->undefined
 
Java Scriptではない
-大部分のコードは直接javaScriptコントロールではありません.
-DOM API
       -document、getElement ById()、alert()、consolie.log()、、、
第三章:YDKJSに入る
 
スコープとクローズド
-JSは「解釈言語」ですので、コンパイルされない-->エラーです.
-JSエンジンは、あなたのコードの実行前に(実行中に)コンパイルされます.
 
thisとオブジェクトの原型
-thisとは、その関数のことです.
-this関数に従ってどうやって実行されるかを動的に結合します.
-対象原型属性-->「行動依頼」
 
タイプと文法
-タイプ強制変換->コードで使用すべき
 
非同期とパフォーマンス
-コールバック-->非同期の主な方法(二つの欠点)
       -制御反転(IoC)信頼喪失
       -線形の推理性に欠ける
-ES 6は2つの新しい機構(モード)を導入する.
       -プロミス
       -ゲナート
 
ESと未来
-解凍、パラメータのデフォルト値、smbol、簡潔な方法、属性、矢印関数、ブロック作用領域、promise、generator、iterator、モジュール、エージェント、weakmap、、、、
-JavaScriptの勉強は最終目標ではなく、プロセスです.