[コードステータス]完全Pre 11、日付9

11325 ワード

CodeStates wewin 20週完全版11期🔥


9日目


Week 2-1)JS終了大量データ処理&Week 2-2:JS詳細


JSは配列とオブジェクトに対する大量のデータ処理を終了し、JS深さの「既知」sprintはPrimitive&Reference、Scope、Closureで開始する.以前は公費支援でJavaを学び、メモリ領域についての知識を学んだ際、stackやheap領域に格納されているアドレス値などを学び、Javascriptを学ぶとともに、元の資料型や参考資料型の特徴によって、より面白く感じました(道理で新しい感じがしました).😟)
ある程度、関数式プログラミングを学ぶと同時に、理解できるようですが、本当に問題に遭遇すれば、混同の問題は一般的な問題ではありません.Closerは以前も理解していませんでしたが、今見ても分からないような曖昧な概念を理解していません...今こそ火の匂いか!TILを書くたびにn味の本物のエンクロージャは私にとって火味ㅠㅠ
私たちは正規時間の外に時間を費やしたり、週末にスコフとクロゼを勉強したりすべきだと思います.😩 不思議なことに、知っているようで分からない奇妙な概念......コッド・スティーブンの授業は基本的な概念を理解させてくれて、とても良い授業ですが、深い概念は自分で理解する必要があるようです.

第3対のプログラミング


今回はもう一つの分野のプレイヤーとしてもコードを始めたばかりのプレイヤーで、運がいいかどうか分かりませんが、今でもいいプレイヤーに出会えました.言叶を通じて、楽しい雰囲気で始まり、鼻翼を解く时、真摯な姿で相手に直面し、フィードバックを与え合い、学び合い、成長し、学び合うように感じます.
今回私は運転手を運転していて、フェルさんはナビゲーションをしました.初めてのナビゲーター役で、初めてOTの日にナビゲーターを演じたとき、方向性をほのかに指摘し、ドライバの意見を待つのが難しくても、辛抱強く待って私たちと一緒に進むように要求しました.私は性格が穏やかではありませんが、ナビゲーションの指示を待つのは難しくありません.
ドライバとして考えるコードとナビゲーションが与える方向が違いますが、同じ答えが出てくると、そのような方向があることに驚き、お互いに学習の過程のようです.😋
3つ目の公平なプログラミングは、以前の公平なプログラミングとは異なる場所を学んだようだ.

(怒った先生…ふふ;;;;いろいろヒントを与えたと思いますが、決定的なヒントを与えなかったので、悲しいでしょうㅠㅠ)

元のタイプ(元のタイプ)と参照タイプ(参照タイプ)

  • number、string、booleanなどの固定記憶空間を占有するデータを元のタイプのデータと呼ぶ.
  • 配列、オブジェクト、および関数は、このような特殊な記憶空間を使用する.アドレスタイプ(referencetype)データと呼ばれます.
  • 元のタイプと参照タイプのフィーチャー

  • 原始資料型配分の場合、変数には値(値)そのものが含まれ、参考資料型配分の場合、保管箱の住所(引用)が含まれます.
  • したがって、参照資料型は、従来の固定サイズの保管箱ではなく、特殊で動的にサイズを変更した保管箱を使用することができる.

    元のデータの詳細


    JavaScriptでは、元のタイプのデータ(元のデータ型;元のデータ型)は6種類あり、オブジェクトではありませんが、メソッドはありません.
    string, number, bigint, boolean, undefined, symbol, (null)

  • 元の資料型には、「一」の情報、すなわちデータが含まれています.

  • 元の資料型の保管箱変数は元の資料型を1つしか入れられません.

  • 元のデータ型は値自体を変更することはできません(可変ではありません)が、変数に異なるデータを割り当てることができます.

  • bigintおよびsymbolは、特別な場合に使用されるデータ型である.

  • nullは元のタイプとほぼ同じであると考えられる.作業方法も他の元のタイプと同じです.しかし、厳密には元のタイプとは言えない.
  • 参考資料を深く理解する

  • 配列([])とオブジェクト({})、および関数(){}です.このデータ型は、JavaScriptにおいても参照データ型(reference data type;reference type)と呼ばれる.
  • 変数に
  • 参照データ型を割り当てると、非値アドレスが格納されます.
  • function printMaxNums(...args) {
      console.log(args) // [10, 30, 40]
    }
    
    printMaxNums(10, 30, 40) 
    
    function printMaxNums(num1, ...args) {
      console.log(args) // [30, 40]
    }
    
    //따로 매개변수를 지정했었다면, 남은 매개변수만 배열의 형태로 rest parameter args에 할당.
    (..arr):spread syntaxは、「展開」iterableのすべての(文字列、配列を表す)要素の構文を表します.
    let arr = [10, 30, 40, 20]
    let value = Math.max(...arr) // 40
    // Math.max(10, 30, 40, 20) 와 같다.

    Scope & Closure


    Scope:変数アクセス規則の有効範囲

  • Local Scope内部で宣言された変数は外部で使用できません.
  • 変数は、任意の環境でのみ使用でき、プログラミング言語にはそれぞれの変数アクセスルールがあります.
  • 変数とその値の有効範囲.
  • デフォルトでは、
  • Javascriptは関数を宣言しながら独自のScopeを所有します.
  • 外部変数/関数には、
  • の内部Scopeからアクセスできます.
  • 外部Scopeから内部変数/関数にアクセスできません.
  • Scopeはオーバーラップすることができる(関数に関数を加えることができる).
  • グローバルScopeの最上位レベルはScopeであり、グローバル変数は任意の場所からアクセスできます.
  • 領域変数は、関数の優先度がグローバル変数よりも高い.
  • Block:括弧の先頭と末尾の単位

  • {}
  • varキーワード/letキーワード

  • 変数を定義する別のキーワードvar(varを使用して再宣言した場合、エラーは発生しません)
  • Javascriptは基本的に関数単位で独自のScope→varキーワード(oldway)
  • を持つ.
  • しかし、ブロック単位でScopeを分割する場合、予測しやすいコード→letキーワード
  • を記述することができる.

    constキーワード

  • の値が変わらない変数、すなわち定数を定義する際に使用されるキーワード.
  • letキーワードと同様に、Block Scopeに従います.
  • の値を再定義すると、タイプエラーが発生します.
  • let:(有効範囲)ブロック範囲(再定義値)不可(再宣言)
  • const:(有効範囲)ブロック範囲(再定義値)不可(再宣言)
  • var:(有効範囲)機能範囲(再定義値)不可(再宣言)
  • グローバル変数とウィンドウオブジェクト

  • グローバル範囲を表すオブジェクトwindow
  • グローバル範囲で宣言された関数、およびvarキーワードで宣言された変数を使用してウィンドウオブジェクトに関連付ける
  • 警告グローバル範囲内で多くの変数を宣言しないでください
  • let windowオブジェクト
  • に接続できません.

    初期化されたグローバル変数が宣言されていません


    宣言キーなしで変数
  • を初期化しないでください.
  • 'use strict'; →jsファイルを一番上に書いて開始:文法上で発生する可能性のあるエラーを誤って判断します.
  • Closure


    エンクロージャ


    「関数と関数によって宣言される語彙環境の組合せ.この環境は、モジュールの生成時に有効な範囲内のすべての領域変数から構成されます.」

    Closer関数


    外部関数の変数にアクセスできる内部関数
    Closer関数では、
  • 地域変数
  • 外部関数の変数
  • グローバル変数はすべて
  • にアクセス可能

    シリアル:n個の関数を作成し、各関数にn個のパラメータを受信させ、1つの関数ではなくn個のパラメータを受信させる。

    function adder(x){
    	return function(y) {
    		return x + y;
    	}
    }
    adder(2)(3); // 5
    下図に示すように、xの値を固定して再使用できます.
    let add100 = adder(100);
    add100(2); // 102
    add100(10); // 110
    
    let add5 = adder(5);
    add5(2); //7
  • 外部関数の変数を保存すると、テンプレート関数のように
  • を使用できます.

    モジュール化モジュールモード:関数外に露出せずに変数をミラー内に配置する方法

    function makeCounter() {
    	let privateCounter = 0;
    
    	return {
    		increament: function() {
    			privateCounter++;
    		},
    		decrement: function() {
    			privateCounter--;
    		},
    		getValue: function() {
    			return privateConter;
    		}
    	}
    }
    privateCounterという変数は外では操作できません.
    関数を使用してアクセスおよび操作する方法のみです.