목록전체 글 (305)
Shallow Copy & Deep Copy (얕은 복사 & 깊은 복사) 얕은 복사 : 객체의 주소값(참조값)까지만 복사 깊은 복사 : 객체의 실제 값까지 복사 // 객체 안에 객체가 있을 경우에도 원본과의 참조가 완전히 끊어진 객체를 말함 이중 객체나 이중 배열로 이루어진 경우, 얕은 복사로는 원하는 복사가 되지 않으니, 깊은 복사를 활용해줄 필요가 있다. 깊은 복사 let origin = { name : "otter", favoriteFood : { first : "sushi", second : "hamburger" } } 라고 한다면, const copy = JSON.stringify(origin) const deepCopy = JSON.parse(copy) 하는 형태로 깊은 복사를 해줄 수 있음 ..
// isNaN, Number.isNaN // 숫자 판별에 주로 사용 isNaN("1") isNaN("asd") // NaN 값만 판별 Number.isNaN(NaN) // indexOf const arr= ['a','b','c'] arr.indexOf("a") // 있을 시 인덱스 반환 arr.indexOf("e") // 없을 시 -1 반환 // new Array // 특정길이의 배열을 만들 때 사용 가능 const arr2 = new Array(5) arr2 // fill 빈공간을 채워주는 메서드 arr2.fill("a")
if문과 동일한 역할을 함. 허나 실무에서는 자주 사용되지는 않음 // 스위치-케이스 문법이라고도 부름 const day = '목요일' switch(day) { case "월요일" : // case 는 조건식을 의미함 "월요입입니다." break // break 미처리 시 정상 출력되지 않음 case "화요일" : "화요일입니다." break case "수요일" : "수요일입니다." break default : // 예외 처리할 때 사용 // 맨 아래 있어야 함 "로직에 없는 요일입니다." }
null과 undefined 차이 null == 변수를 선언하고 '의도적으로' 빈 값을 할당한 상태 (빈 객체) undefined == 변수를 선언하고 값을 할당하지 않은 상태 // 값이 없는 변수에 자동으로 undefined 할당됨 가볍게 정리하면 이와 비슷하지 않을까 싶다. null 은 그 말마따나 '값이 없음' 이며, undefined 역시 그 말마따나 값이 없음으로도 '정의되지 않음'이라고 볼 수 있다.
let, const, var 차이 (scope 개념, 호이스팅) 재할당과 재선언에 대한 차이 재할당 재선언 var O O let O X const X X 스코프 (함수 또는 변수의 동작 범위) 전역스코프&지역스코프 전역 스코프 : 스크립트 전역에 선언된 변수 / 어디서든 참조 가능 지역 스코프 : 함수 내에 선언된 변수 / 함수 내에서만 참조 가능 전역스코프&지역스코프 예시 블록스코프 & 함수스코프 let / const , var 사이의 가장 큰 차이점 중 하나는 스코프와 관련이 있다. let / const 는 '블록 스코프, 함수 스코프'라는 특징을 가지고 있는데, 블록 스코프는, 함수 안에서 선언된 let / const 의 경우 함수 안에서만 처리될 수 있다는 의미를 지니고 있다. 말 그대로 블록(중..
오늘은 이메일 탬플릿 만드는 방법에 대해 강의를 들었다. 등장한 주요 개념 템플릿 리터럴 숏핸드 프로퍼티 (shorthand-property) 구조분해할당 (= 비구조화할당) export / import 이메일 탬플릿이라 함은, 아래와 같다. 겉으로 보기에는 이미지처럼 보이나, HTML 코드로 구성되어 있다고 한다. 그리고 이 HTML 코드들은 변수에 저장되어 있고, 이때 HTML코드들을 묶기 위해 백틱(템플릿 리터럴)을 사용한다. 템플릿 리터럴은 백틱(``) 과 함께 사용해야 하며, 정적값과 동적값을 함께 표현할 때 사용한다. 이때, 동적값은 ${ } 으로 묶어 표현한다. 템플릿 리터럴의 특징으로는 변수와 함께 쓰기가 가능하며, 텍스트를 여러줄로 만드는 것이 가능하다는 것 기억해두자. 활용 예시는 다음..
ES6의 특징 구조 분해 할당 가능 let person = { name : "철수", age : 7, } // 위와 같은 객체에서 name값의 value와 age의 value값을 가지고 오기 위해서는 // person.name 혹은, person.age로 접근을 해야 했지만 다른 방식도 존재한다. let name = person.name let age = person.age // 위와 같은 방식으로 객체 안 요소를 직접 변수에 할당해줄 수 있다. template literals == '백틱'을 활용한 동적값과 정적값을 함께 보여주기 가능 let name = "jinho" let age = 18 console.log(`제 이름은 ${name}이며, 나이는 ${age}입니다.`) 위와 같은 경우, 동적값으로..
1. == , === 차이점 두 연산자 모두 '비교'를 하는 것에 있어서 동일한 역할을 수행한다. 비교하는 두 값이 동일할 경우는 true를 반환하며, 그렇지 않은 경우에는 false값을 반환한다. 허나, 두 연산자의 차이는 '어디까지 동일한 것으로 볼 것인가에 대한 기준'이 다르다는 것. 이번 포스팅에서는 두 연산자의 차이에 대해 간단히 언급한다. == 느슨한 연산자 (이중 등호) 등호가 두번 쓰여진 '==' 는 '느슨한 연산자'라고도 말한다. 그 말마따나 엄격한 '===' 연산자에 비해 유한 편인데, '==' 연산자의 경우, 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환한다. // 예시 10 == '10' // true 반환 true == '1' // true 반환 nul..