코어 자바스크립트는 자바스크립트의 핵심 개념을 말한다.
오늘 배운 개념들을 정리해보자면 다음과 같다
자바스크립트는 오랫동안 기존의 기능을 변경하지 않으면서 새로운 기능이 추가 되었지만, ES5(ECMAScript)가 등장하고부터 기존 기능 중 일부가 변경되었다.
기능의 변경으로 하위 호환성의 문제가 생기지 않기 위해 use strict라는 지시자를 활성했을때만 변경사항이 활성화 되게 된다.
이 지시자가 스크립트 최상단에 오면 스크립트 전체가 모던한 방식으로 동작하고, 함수 내부 최상단에 오면 해당 함수만 엄격모드로 실행된다. 한번 실행시키면 취소할 수 없다.
만약 클래스나 모듈을 사용하게 되면 모던 자바스크립트가 제공하기 때문에
use strict가 자동으로 적용되어 use strict를 생략해도 된다.
자바스크립트에서는 let, const, var로 변수를 생성 할 수 있는데,
한줄에 여러 변수를 선언하는 것도 가능하다.
let num=1,name='John'
예전에는 선언자 없이도 변수 선언이 가능했지만, 엄격모드에서 에러를 발생 시킬 수 있기 때문에 선언자를 쓰는것이 좋다.
나는 변수를 여러개 만들면 코드가 길어져서 좋지 않은 방법이라고 생각했었고 그래서 최소한의 변수만 활용하려고 했었다. 그런데 오히려 변수를 재사용하면 해당 변수의 정보를 알기 위해서 디버깅에 쏟는 시간이 길어지게 되어 변수 추가가 좋은 방법이라는 것을 배웠다.
자바스크립트에는 여덟가지 기본 자료형이 있다. 자바스크립트의 변수는 자료형에 관계없이 모든 데이터일 수 있는데,
이와같이 변수에 저장되는 값의 타입이 언제든지 바뀔 수 있는 언어를 동적 타입 언어라고 부른다.
let ex=1;
console.log(typeof(ex)) //number
ex='lala'
console.log(typeof(ex)) //string
숫자형
숫자형에는 숫자외에도 Infinity, -Infinity, NaN같은 값이 포함된다.
NaN값은 추가연산을 해도 그대로라서, 연산과정 중에 NaN값이 포함되어있다면 모든 결과에 영향을 미친다.
bigInt
(2^53)-1보다 크거나, -(2^53)-1보다 작은 정수는 숫자형으로 나타낼 수 없다. bigInt형은 길이에 상관없이 정수를 나타낼 수 있다. 정수 리터럴(숫자로 인식되는 문자열)끝에 n을 붙이면 만들어진다.
문자형
문자열을 따옴표로 묶는데, 큰따옴표, 작은 따옴표 말고도 역따옴표(백틱)이 있다. 역따옴표로 변수나 표현식을 감싸고 ${}안에 넣어주면 문자열 중간에 원하는 변수나 표현식을 넣을 수 있다.
let ex='lala'
console.log(`lulu, ${ex}`)
console.log(`the result if ${1+2}`)
console.log(`hello ${"name"}`) //이 경우 큰 따옴표는 무시되고, hello name이라고 출력된다.
typeof x , typeof(x)형태로 사용하고, 결과는 동일하다.
null의 타입은 객체라고 뜨지만, 고유한 자료형을 가지는 특수값이지 객체가 아니다. 하위호환성 유지를 위해 오류를 수정하지 않고 남겨둔 상태이다.
피연산자가 함수면 function을 반환하지만, 함수형은 없다. 함수는 객체형에 속한다. 이 또한 하위호환성 유지를 위해 오류를 수정하지 않고 남겨둔 상태이다.
참고 사이트 : https://ko.javascript.info/