웹/JavaScript

[JS]공부하며 얻은 짧은 팁s.

  1. 자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않는다.
  2. 자바스크립트 엔진은 소스코드를 한 줄씩 순차적으로 실행하기에 앞서 먼저 소스코드의 평가 과정을 거치면서 소스코드를 실행하기 위한 준비를 한다.
  3. 자바스크립트의 함수에서 return 값을 지정하지 않았을 경우 undefined 를 반환한다.
  4. Vscode에서 fs 모듈이 먹히지 않을경우 경로명에 있는 폴더나 파일의 이름을 확인하여 한글혹은 영문으로 시작하는 폴더 이름으로 바꾸어서 실행한뒤 다시 해보면 정상적으로 작동한다.(아직 이유모름).
  5. 값이 할당될때는 undefined가 저장되어있던 메모리 공간을 지우고 그 메모리 공간에 새로운 값을 할당하는게 아니라 새롱누 메모리 공간을 확보하고 그곳에 할당값을 지정한다.
  6. 배열의 앞에 사용 : unshift, shift // 배열의 뒤에 사용 : push, pop
  7. 값은 표현식이 평가되어 생성된 결과이다.
  8. 변수는 하나의 값을 저장하기위해 확보한 메모리공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이다.
  9. 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 통해 값을 생성하는 표기법이다.(런타임에 리터럴을 평가하여 값을 생성한다.)
  10. 표현식은 값으로 평가될 수 있는 '문'이다. 즉 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
  11. 문은 프로그램을 구성하는 기본단위이자 최소 실행 단위이다.
  12. 토큰이란 문법적인 의미를 갖으며, 더 이상 나눌 수 없는 코드의 기본 요소이다.
  13. 변수는 선언이 아닌 할당에 의해 타입이 결정된다.(타입추론)
    그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.
  14. NaN은 자기자신과 일치하지 않는 유일한 값이다.
  15. Math.pow()의 역할을 하는 '**' 연산자가 있다.
  16. + 연산자는 피연산자중 하나 이상이 문자열이면 문자열 연결 연산자로 동작한다.
  17. 산술연산자의 피연산자 중에서 숫자 타입이 아닌 피연산자를 숫자타입으로 암묵적 변환한다.(비교연산자도 그렇다)
  18. 객체와 빈 배열이 아닌 배열, undefined는 변환되지 않는다.
  19. 논리곱 연산자(&&)는 연산의 결과를 결정하는 두 번째 피연산자를 그대로 반환한다.
  20. 논리곱 연산자(||)는 연산의 결과를 결정하는 피연산자를 그대로 반환한다.
  21. 단축평가는 표현식을 평가하는 도중에 평과결과가 확정된 경우 나머지 평과 과정을 생략하는것을 말한다.
  22. 인스턴스란 클래스에 의해 생성되어 메모리에 저장된 실체를 말한다.
  23. 객체에 존재하지 않는 프로퍼티에 접근하면 undefined를 반환한다.
  24. 프로퍼티키가 식별자 네이밍 규칙을 준수하지 않는 이름이라면 반드시 대괄호 표기법을 사용해야한다. 단 숫자로 이루어져 있을경우 따옴표를 생략할 수 있다.
  25. 원시값을 객체처럼 사용하면 원시값을 감싸는 래퍼객체로 자동 변환된다.
  26. 함수는 함수 이름으로 호출하는 것이 아니라 함수 객체를 가리키는 식별자로 호출한다.(함수 선언문이 평가되면 자바 스크립트 엔진이 암묵적으로 식별자를 생성한다.)
  27. 값의 성질을 갖는 객체를 일급 객체라 한다.
  28. 함수 선언문은 '표현식이 아닌 문'이고 함수 표현식은 '포현식인 문'이다.
  29. 함수 표현식으로 함수를 정의하면 함수 호이스팅이 발생하는 것이 아니라 변수 호이스팅이 발생한다.(var 키워드로 선언된 변수는 undefined로 초기화 되고, 함수 선언문을 통해 암묵적으로 생성된 식별자는 함수 객체로 초기화 된다.)(변수 선언은 런타임 이전에 실행되어 undefined로 초기화되지만 변수 할당문의 값은 할당문이 실행되는 시점, 즉 런타임에 평가되므로 함수 표현식의 함수 리터럴도 할당문이 실행되는 시점에 평가되어 함수 객체가 된다.)
  30. 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 선언해야 한다는 당연한 규칙을 무시한다. 이런 이유 때문에 함수 선언문 대신 함수 표현식을 사용할 것을 권장한다.
  31. 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 콜백함수(callback function)라고 하며, 매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 고차함수를(Higher-Order- function, HOF)라고 한다.
  32. 자바스크립트는 함수 정의가 평가되는 시점에 상위 스코프가 정적으로 결정되는 렉시컬 스코프 이다. 
  33. 호이스팅은 스코프를 단위로 동작한다.
  34. 전역 객체는 코드가 실행되기 이전 단계에 자바스크립트 엔진에 의해 어떤 객체보다도 먼저 생성되는 특수한 객체이다.
  35. 캡슐화(encapsulation) : 객체의 상태를 나타내는 프로퍼티와 프로퍼티를 참조하고 조작할 수 있는 동작인 메서드를 하나로 묶는것을 말한다.
  36. var Counter = (function () {
    	//private
        var num=0;
        
       	return {
        	increase(){
            	return ++num;
            },
            decrease(){
            	returen --num;
            }
        };
    }());
  37. const는 재할당을 금지할 뿐 '불변'을 의미하지는 않는다.
  38. 프로퍼티의 상태를 나타는 프로퍼티 어트리뷰트. 프로퍼티 어트리뷰트 정보를 제공하는 프로퍼티 디스크립터.

 

=== 알고리즘 ===

1. 나누기와 나머지를 잘 사용하면 순환을 돌릴 수 있다.

a3[i%a3.length])

 

작성중===============

' > JavaScript' 카테고리의 다른 글

모던 자바스크립트 Deep Dive  (0) 2021.08.25
모던 자바 스크립트 Deep Dive 21  (0) 2021.08.25
자료구조 구현  (0) 2021.08.18
객체와 변경불가성  (0) 2021.08.03
알고리즘 문제풀이 입력 받아오기.  (0) 2021.07.30