-
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