[TIL] Day 6 : JS 기본 문법

Q·2024년 4월 23일

TIL

목록 보기
6/59

JS는 동적 타입 언어 (dynamic typing language) 이다.

변수 타입이 런타임때 결정된다.
(the interpreter assigns variables a type at runtime based on the variable's value at the time.)

내가 코딩을 처음 접한 게 C 이다 보니, C는 진짜 하나하나 신경 쓸 게 너무 많았는데, javascript는 너무 쉬운 거 아닌가 이래도 되나? 싶은 생각이 들 때가 많다. 예를 들어, 변수 타입이랑 사이즈를 결정해주지 않아도 된다는 것?
대신 코드 사이즈가 커지면 C보다 훨씬 느려지는 단점이 있겠지?

var,   let,   const   차이점

var : 재선언 가능, 재할당 가능
let : 재선언 불가, 재할당 가능
const : 재선언 불가, 재할당 불가

non-empty string 과 object 은

boolean으로 변환 시 true 이다.

Boolean("") : false (string은 empty이면 false이다.)
Boolean(" ") : true
Boolean("abc") : true
Boolean({}) : true (object는 empty여도 true이다.)
Boolean({key: "value"}) : true

비교 일치 연산자

===!== 였다.

나는 당연히 ==!= 인줄 알고 여태 그렇게 써왔는데, 아니었네...??

정확히는,
== 는 동등 연산자 (equality operator) 이고,
=== 는 일치 연산자 (identity operator) 라고 한다.

동등 연산자는 타입 일치 여부는 확인하지 않지만,
일치 연산자는 타입 일치 여부까지 확인한다는 차이점이 있다.

내가 그동안 썼던 코드가 문제 없이 잘 작동했던 걸 보면,
타입 일치 여부까지 확인해야 하는 과정은 없었던 것 같다는 결론이 난다.

string을 한 글자씩 분리해서 array로 만들려면?

str = "Hello, World!"; 라고 하면
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!'] 을 얻고 싶다.
그러면 split() 메소드를 이용하면 된다.
보통은 split(",") 또는 split(".") 와 같은 방식으로 문자열을 단어나 음절 단위로 나누는 방식을 많이 쓰는데,
그냥 split("") 이렇게 빈(empty) 문자열을 기준으로 나누게 되면
위와 같이 한 글자씩 분리할 수 있다.

map

map을 다양한 방법으로 활용할 수 있다.

const strings = ["Apple", "orAnge", "graPe", "BaNNaA", "kIWi"];
const loweredStrings = strings.map((str) => str.toLowerCase());
console.log(loweredStrings);

=> result: [ 'apple', 'orange', 'grape', 'bannaa', 'kiwi' ]

이렇게 써도 되고,
map 안 쪽의 함수 부분을 좀 더 길게 사용해도 된다.

let newStrings = strings.map((str) => {
    const 3rdLetter = str.slice(3, 4);
    return 3rdLetter.concat(str);
});

console.log(newStrings);

=> result: [ 'lApple', 'norAnge', 'PgraPe', 'NBaNNaA', 'ikIWi' ]

0개의 댓글