ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Type
    개발/Javascript 2022. 6. 4. 00:13

    *복습 자료라서 뻔한 내용은 생략

     

     

    Summary.

     

     

    1. 변수명은 Unicode + Case Sensitive 이며, letter / _ / $ 중 하나로 시작

     

    2. Statement 에서 Semi-colon은 한 줄일 때는 불필요하지만 추가하는 것이 Best Practice

        + ECMAScript 규정상 자동추가됨

     

    3. 변수 선언법: var, let, const

        + var: execution context에 따라 global or local

        + let: block-scoped local

        + const: block-scoped local + read-only (Object나 Array 내용물이 바뀌는 건 방지 못함)

    // As-is
    if (true) {
      var x = 5;
    }
    console.log(x);  // x is 5
    
    // To-be (ECMAScript 2015에서 block scope 개념이 생김)
    if (true) {
      let y = 5;
    }
    console.log(y);  // ReferenceError: y is not defined

     

    4. 값 미할당이면 undefined (false 혹은 NaN으로 변환), 아예 선언 안되면 Reference Error

        ex) var x; // undefined

        ex) c + 4; // Reference Error

        ex) var y = null; // 0이나 false로 변환됨. 

        ex) d = 4; // Not recommended

     

    5. Global 변수는 사실 Global Object의 Property. 따라서 Webpage에서는 window 객체의 property

        ex) window.data;

     

    6. 총 8 types: boolean, null, undefined, Number, BigInt, String, Symbol, Object

        + Number: integer + float

        + Symbol: ECMAScript 2015 부터 등장 + unique / primitive + callback 함수와 같은 symbol table 참조용으로 사용된다고 함

        + Object: Array, Function, 등도 Object에 속함

     

    7. Type Conversion: String 포함 시 (+) 연산은 append. (-) 나 (*) 연산은 String 포함되더라도 Number로 연산됨

        ex) '47' + 7; // '477'

        ex) '47' - 7; // 40

        ex) parseInt('101', 2); // 5

        ex) +'1.1'; // 1.1

     

    8. 총 6 Literals (변수가 아닌 values): Array, Boolean, Numeric, Object, String, RegExp

        ex) const arr = ['apple', 'banana',]; // trailing comma OK

        ex) string은 ''나 "" 자유롭게 사용. multiline string은 \ backslash로 구분

        ex) Object Literal에서 Property는 아무 type이나 가능 (빈 String도 가능하지만 quote로 감싸야함)

    var car = { manyCars: {a: 'Saab', b: 'Jeep'}, 7: 'Mazda' };
    
    console.log(car.manyCars.b); // Jeep
    console.log(car[7]); // Mazda
    var obj = {
        // __proto__
        __proto__: theProtoObj,
        // Shorthand for 'handler: handler'
        handler,
        // Methods
        toString() {
         // Super calls
         return 'd ' + super.toString();
        },
        // Computed (dynamic) property names
        [ 'prop_' + (() => 42)() ]: 42
    };

     

    9. Template Literal (since ECMAScript 2015)

    // Multiline strings
    `In JavaScript, template strings can run
     over multiple lines, but double and single
     quoted strings cannot.`
    
    // String interpolation
    var name = 'Bob', time = 'today';
    `Hello ${name}, how are you ${time}?`

     

    Additional.

    1. Code Hoisting 사용 시 조심할 것 (미리 var 변수 사용 시 undefined, let/const는 Reference Error )

        + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_Types#variable_hoisting

     

    2. Tagged Template

    let myTag = (str, name, age) => `${str[0]}${name}${str[1]}${age}${str[2]}`;
    let [name, age] = ['Mika', 28];
    myTag`Participant "${ name }" is ${ age } years old.`;
    // Participant "Mika" is 28 years old.

     

    Reference.

    '개발 > Javascript' 카테고리의 다른 글

    Module System  (0) 2022.06.05
    Prototype Chain  (0) 2022.06.05
    Memory Management  (0) 2022.06.05
    Array & Loop  (0) 2022.06.04
    Function  (0) 2022.06.03
Designed by Tistory.