Javascript
코드 작성 습관 만들기
기존의 배열, 객체 데이터 변경하지 않기
const fruits = ["banana", "apple", "orange", "strawberry"];
// fruits.forEach((item, index) => {
// fruits[index] = item + '💖';
// });
const fruits2 = fruits.map((item) => {
return item + '💖'
});
console.log(fruits2);
console.log(fruits);
- 기존의 배열과 객체 값을 그대로 보존하는 것이 데이터 변화를 추적하는데 용이하다.
- 기존 배열, 객체 값을 수정해야 한다면 새로운 배열을 만드는 것이 중요하다.
- 'forEach' 사용 시, fruits의 배열의 각 요소에 '💖'' 모양이 추가된 상태로 변경된다.(기존 배열 변경)
- 'map'은 새로운 배열을 반환하기 때문에 fruits는 보존되고, fruits2에 변경된 값들이 저장된다.(기존 배열 보존)
엄격모드 활용하기
'use strict'; // 엄격 모드, 주석을 적용하여 상태비교
str = "hello strict"; // "Uncaught ReferenceError: str is not defined" 에러발생
var undefined = "undefined"; // "Uncaught TypeError: Cannot assign to read only property 'undefined' of ..." 에러발생
console.log(undefined);
var Infinity = 100; // "Uncaught TypeError: Cannot assign to read only property 'Infinity' of ... " 에러발생
console.log(Infinity);
Math.PI = 0; // "Uncaught TypeError: Cannot assign to read only property 'PI' of ..." 에러발생
function myFunc(a, a, b) { // 엄격모드 적용시,
console.log(a + a + b); // "Uncaught SyntaxError: Duplicate parameter name ..."
} // 에러발생
myFunc(1, 2, 3);
delete Object.prototype;
// 엄격모드 적용시,
// "Uncaught TypeError: Cannot delete property 'prototype' ... "
// 에러발생
const Name = {
firstname: "gildong",
lastname: 'hong'
}
console.log(Name.firstname);
delete Name.firstname;
console.log(Name.firstname);
- 자바스크립트는 데이터 타입이 굉장히 자유롭기 때문에 엄격모드 설정하지 않으면 마음대로 설정을 바꿀 수 있다.
- 코드의 양이 방대해졌을 때 엄격모드를 적용하지 않아서 실수가 발생하면 수습하기 힘들기 때문에 사전에 방지한다.
'오늘의 학습' 카테고리의 다른 글
[오늘의학습] 220103 (0) | 2022.01.03 |
---|---|
[오늘의학습] 211223 (0) | 2021.12.23 |
[오늘의 학습] 211214 (0) | 2021.12.15 |
[오늘의 학습] 211206 (0) | 2021.12.06 |
[오늘의 학습] 211202 (0) | 2021.12.02 |