728x90
독서진행 : 25-58p (종이책)
오늘의 메모
- 자바스크립트는 변수를 비교할 때 암묵적으로 타입캐스팅을 실행한다. 때문에 false == 0이나 "" == 0과 같은 비교가 true를 반환한다. 암묵적 캐스팅으로 인한 혼동을 막기 위해서는, 항상 표현식의 값과 타입을 모두 확인하는 ===와 !== 연산자를 사용해야 한다.
- parseInt()를 사용하면 문자열로부터 숫자 값을 얻을 수 있다. 이 함수는 두 번째 매개변수로 기수(ex) 8진수)를 받는데, 생략하는 경우가 많지만 그래서는 안된다. 파싱 할 문자 열이 0으로 시작할 경우 문제가 생길 수 있다.
- 문자열을 숫자로 변환하는 또 다른 방법으로는 다음과 같은 것들이 있다. +"08" , Number("08") 이 방법들은 대체로 parseInt() 보다 빠르다. parseInt()는 단순히 변환만 하는 것이 아니라 이름이 뜻하는 바대로 파싱을 하기 때문이다. 그러니 입력값으로 "08 hello" 같은 값이 들어올 수 있다면 parseInt()를 사용해야 숫자를 얻을 수 있다. 다른 방법을 사용하면 NaN이 반환되면서 실패해 버린다.
- 중괄호는 생략할 수 있을 때도 항상 써야 한다. 기술적으로는 if나 for문에 명령어 한 줄 뿐일 경우 중괄호를 생략할 수 있지만, 그런 경우에도 중괄호를 써야 한다. 이를 통해 코드에 일관성을 유지할 수 있고 수정하기도 쉬워진다. 한 줄짜리 블록에도 항상 중괄호를 사용하는 것이 장기적으로 최선책이라고 할 수 있다.
- 자바스크립트는 까다롭지 않아서 세미콜론을 쓰지 않고 행을 종료하면 알아서 대신 세미콜론을 추가해 준다. 이러한 동작 방식은 함수의 반환 값이 객체 리터럴이고 이 객체의 여는 중괄호가 다음행에 올 경우 문제를 일으킬 수 있다.
- 항상 중괄호를 쓰고, 여는 중괄호는 선행하는 명령문과 동일한 행에 두어야 한다.
- 중괄호와 마찬가지로, 세미콜론도, 자바스크립트 파서가 대신해 줄 수 있는 경우에도 세미콜론을 빼먹지 말고 사용해야 한다. 코드에 대한 좀 더 엄격한 접근과 규율을 장려할 뿐 아니라 앞선 예제에서 본 것과 같은 애매한 문제를 해결하는 데 도움이 된다.
- 생성자도 여전히 함수이기 때문에, 함수 이름만 보고 생성자로 쓸 함수인지 일반적인 함수인지 알아챌 수 있다면 도움이 된다. 생성자의 첫 글자를 대문자로 쓰면 이런 힌트를 줄 수 있다. 함수와 메서드 이름에 소문자를 사용하면 이것들은 new와 함께 호출되지 않는다는 의미이다.
- 비공개 메서드에는 메서드나 프로퍼티명에 접두어로 밑줄을 붙여 구별하기 쉽게 해 놓을 수 있다.
- 접근자에 관해서도 명명규칙이 있는데, _protected 프로퍼티에는 밑줄 한 개, __private 프로퍼티에는 밑줄 두 개를 사용한다.
- 객체 리터럴 표기법을 사용하면 생성 시점에 객체에 기능을 추가할 수 있다. 명백한 이점은 코드 길이가 짧고, 객체란 그저 변형가능한 해시에 불과하며 클래스로부터 생성해야만 하는 특별한 것이 아님을 확실히 보여준다. 이것도 리터럴로 객체를 생성하는 패턴의 장점 중 하나다. 리터럴 표기법을 사용하면 유효범위 판별 작업도 발생하지 않는다. 생성자 함수를 사용했다면 지역 유효범위에 동일한 이름의 생성자가 있을 수 있기 때문에 Obejct()를 호출한 위치에서부터 Object 생성자까지 인터프리터가 쭉 거슬러 올라가며 유효범위를 검색해야 한다.
- Object() 생성자는 인자를 받을 수 있는데, 인자로 전달되는 값에 따라 생성자 함수가 다른 내장 생성자에 객체 생성을 위임할 수 있고, 이 같은 동작 방식 때문에, 런타임에 결정하는 동적인 값이 생성자에 인자로 전달될 경우 예기치 않은 결과가 반환될 수 있다. 거듭 말하지만 결론적으로, new Object()를 사용하지 마라. 더 간단하고 안정적인 객체 리터럴을 사용하라.
쪼개서 가지고 있던 팁들이 한 번에 모여있었다.
미묘하게 연결되어 있는 것 같은데.. 하는 부분도 뿌리는 같았다는 걸 알았고
모르고 쓴 것들이 잘 아는 사람이 본다면 아주 어지럽겠다 느껴졌다
보면서 재미있었고 왜 이렇게 쓰냐고 물어봤던 것들에 대답이 그냥이었는데
그냥이 아니었다. 이런 이유로 나왔구나 알 수 있어서 더욱더 재미있었다
손으로 익히다 보니, 직감적으로 습득한 것도 있었고 안티패턴으로 자리 잡은 버릇도 많았다
이제 언제 다 뜯어고쳐보지? 하는 흥미도 생긴다
뭐든 물음표가 생기는 게 진짜 시작인 거 같다
728x90
'습관 > 독서' 카테고리의 다른 글
자바스크립트 코딩 기법과 핵심 패턴 - Day 4 (0) | 2023.01.30 |
---|---|
뉴스는 싫지만 호구도 되기 싫다 : 경제상식 편 - Day 1 (0) | 2023.01.28 |
자바스크립트 코딩 기법과 핵심 패턴 - Day 2 (0) | 2023.01.27 |
자바스크립트 코딩 기법과 핵심 패턴 - Day 1 (0) | 2023.01.26 |
코딩을 지탱하는 기술 (0) | 2023.01.23 |