構文、変数、scope、テンプレート文字、命名規則を展開...

10163 ワード

プロジェクトで、既存のjson形式のデータに新しいオブジェクトを追加する場合.
配列を作成し、独立した配列として追加します.
この方法を解決しようとしたときにspread構文が見つかりました.

Spread Syntax

var city= [2,3,4,5]
var number=[1,2,3,4]
city.push(number)

city
(5) [2, 3, 4, 5, Array(4)]

//이렇게 독립적인 배열의 형태로 city배열에 추가된다.

city.push(...number)

city
(8) [2, 3, 4, 5, 1, 2, 3, 4]

//spread syntax를 사용하면 모든 배열을 펼쳐 넣을 수 있다.

新Regexp作成者

/ab+c/i
new RegExp(/ab+c/, 'i') // 리터럴
new RegExp('ab+c', 'i') // 생성자
match関数とともに使用できます.
//예시
function findMatches(wordToMatch, cities) {
        return cities.filter((place) => {
    //       //도시 혹은 주- 입력한 단어로 검색
        //   return place.city.match(/bos/i)
    //       //이렇게 하면... bos하나만 검색이 되므로, 정규표현식 안에 들어가는 단어를 변수로 지정해주어야 한다.

          const regex = new RegExp(wordToMatch, "gi");
    //       //gi:global, insenssive - 글로벌 정규표현식, 대소문자 구분하지 않음
          return place.city.match(regex) || place.state.match(regex);
        });
    }

Naming Convention


CamelCase


宣言変数が
  • 定数の場合、大文字
  • を使用します.

    snake_case

  • は、1つの単語の終了時に(underDash)を用いて毒性を高める
  • である.

    var,let,const



    Block Level Scope


    ブロックは、0個以上の構文をグループ化し、境界をカッコ{}で区切るために使用されます.ブロックスキャン変数は、関数外宣言時に関数スキャン変数のようにグローバルにアクセスできます.ブロックで宣言すると、独自のブロックとサブブロックが定義されている場合にのみアクセスできます.
    let foo = "I'm foo";
    if(true) {
        let bar = "I'm bar";
        console.log(foo);   //I'm foo
        console.log(bar);   //I'm bar
    }
    
    console.log(foo);   //I'm foo
    console.log(bar);   //Uncaught ReferenceError: bar is not defined.`
    https://eblee-repo.tistory.com/37

    Template Literals

  • backtic`記号とともに使用します.
  • 文字列交差(String Interpolation):+演算子を使用する必要はありません.
  • console.log('My name is ' + first + ' ' + last + '.');
    // "My name is Ung-mo Lee."
    
    // ES6: String Interpolation
    console.log(`My name is ${first} ${last}.`);
    // "My name is Ung-mo Lee."
  • 文字列ポーリング内の式は、強制的に文字列タイプに変換されます.