Week 2レビュー


緒論


また短くて短くて、長くて長い1週間が過ぎたので、回顧録を残したいです.2週目はアルゴリズムを中心とした週なので,いくつかのアルゴリズムストーリーとES構文について議論する.
  • アルゴリズムとは?
  • ES文法とは?
  • 本題


    アルゴリズムとは?

  • 定義:数学、コンピュータ科学、言語学または関連分野でいかなる問題を解決するために制定された一連のプログラムまたは方法を公式化した形式で表す.
  • 簡単に言えば、どんな問題やことを解決する方法と手順です.
  • はどんな方法で勉強しますか.
  • プログラマー、Baek Junなど、様々なアルゴリズムの問題をコードで解決できるサイトがありますが、これらのサイトでは自分の好きなプログラミング言語で問題を解決すればいいのです.
  • は一般的にPythonを使用しています.しかし筆者はJSの文法を身につけたいので、JSで28のアルゴリズム問題を作りました.
  • ほとんどの問題は簡単ですが、文法的な限界ではなく、アルゴリズム的な思考力の不足が多いので、2つの問題は4時間以上考えても解けません.
  • 1問題(二次元マトリクス問題)は4時間以上悩んでやっと解けた.問題については、次のリンクに残してください.
  • https://programmers.co.kr/learn/courses/30/lessons/42576
  • https://programmers.co.kr/learn/courses/30/lessons/12950
  • https://programmers.co.kr/learn/courses/30/lessons/12930
  • ES文法とは?

  • ECMAScriptは、ECMA国際のECMA-262技術仕様で定義された標準化スクリプトプログラミング言語である.Javascriptを標準化するために作成されたもので、必ずしもjavascriptでなくても、フラッシュレスソフトウェアで使用されるアクションスクリプト、インターネットexplorer用のJスクリプトなど他の実装体が含まれています.(難しい…)
  • ESはECMAScriptの略で、ES 6、ES 5では6、5番目と一般的に考えられている.さらに、ESはプログラミング言語ではなくスクリプト言語の標準と規格である.
  • なぜES 6という単語をよく見かけますか?(ES 6が最新バージョンだからじゃない!)
    ソース:https://ssungkang.tistory.com/entry/ES6-ES%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%99%9C-ES6%EC%9D%B8%EA%B0%80
  • の上の表から見ると、重要な文法の改善と補充の大部分はES 6上で完成している.したがって,各種JSフレームワークもES 6に基づいて開発されている.
  • ES 6構文


    1.backtic(`)

    [before]
    문자열과 문자열 또는 변수와 연결하려면 병합 연산자(+)를 사용
    var str1 = "hello";
    var str2 = "react";
    var combined = str1 + ' ' + str2;
    >>> hello react
    
    [after]
    백틱(\`)으로 문자열을 표현할 수 있으며 특수 기호 $를 사용해서 변수 또는 식 포함
    const str1 = "hello";
    const str2 = "react";
    const combined = `${str1} ${str2};`
    >>> hello react

    2.展開演算子

    [before]
    배열의 일부 요소만 잘라내거나 연결하려면 배열 인덱스와 함께 배열 내장 함수들을 사용
    var arr1 = ['SUN', 'MON'];
    var arr2 = ['TUE', 'WED', 'THD'];
    var combined = arr1.concat(arr2);
    >>> ['SUN', 'MON', 'TUE', 'WED', 'THD']
    
    [after]
    전개 연산자(...)를 사용해 나열형 자료를 추출하거나 연결
    const arr1 = ['SUN', 'MON'];
    const arr2 = ['TUE', 'WED', 'THD'];
    const combined = [...arr1, ...arr2];
    >>> ['SUN', 'MON', 'TUE', 'WED', 'THD']

    3.宣言変数

    [before]
    var로 변수 선언시 변수스코프가 호이스팅되어 무조건 Global variables가 된다고한다.
    (함수 레벨 스코프)
    var str = 'hi';
    
    [after]
    let, const로 변수 선언시 함수스코프 안에서만 유효한 local variables가 되거나
    함수 밖에서 선언시 Global variables가 될 수 있다!
    (블록 레벨 스코프)
    let - 읽거나 수정 가능(가변 변수)
    const - 읽기만 가능(불변 변수)
  • 変数宣言時にvarが乱発されると、宣言前に呼び出され、論理的な問題を引き起こし、グローバル変数としてメモリの浪費を招くことが多いため、let、constをできるだけ使用します.
  • 4.矢印関数

    [before]
    function 함수명() { content }; // 함수 선언식
    var 함수명 = function() { content }; // 함수 표현식
    
    function add(a, b) {
        return a + b;
    }
    var add = function(a, b) { // 익명 함수
        return a + b;
    }
    
    [after]
    화살표 함수르 사용해 익명 함수를 선언하여 변수에 대입
    let add = (a, b) => {
        return a + b;
    };
    let add = (a, b) => a + b;

    5.オブジェクトの展開/構造の分解

    객체 확장
    [before]
    객체와 객체의 값을 선언하기 위해 키 이름과 값을 각각 할당
    var x = 0;
    var y = 0;
    var coord = { x: x, y: y };
    
    [after]
    변수 선언 형식이 간편 (key와 value가 같은 문자면 하나만 기입하면됨)
    const x = 0;
    const y = 0;
    let coord = { x, y };
    구조 분해
    [before]
    일일이 변수를 생성하고 값을 할당
    var list = [0, 1];
    var item1 = list[0];
    var item2 = list[1];
    
    
    [after]
    선언과 동시에 할당
    const list = [0, 1];
    const [item1, item2] = list;
    これらは筆者がよく使うES 6文法ですが、ネットで検索するともっと文法が見つかりますが、使ったこともないし、あまり理解していないので、私が耐えられる文法にまとめました.

    n/a.結論


    今また1週間始まりましたが、今残っているのは主な特長基礎1週間、深化1週間、熟練1週間とミニプロジェクト1週間、クローンコード1週間、実戦プロジェクト6週間、支援1週間です.一つずつゆっくりやればできるはず!