eslint 환경만들기
메모리란? 1바이트 단위로 저장된 셀단위
int i = 정적타입 언어 타입이 정적이다 (선언할때)
var a 동적타입 언어 타입이 동적이다 (할당할때 변수에 값에따라 종류가 달라진다)
선두 주소만 기억하고, 타입에 의해서 몇 바이트를 가져와야겠다 앎
자바스크립트는 개발자가 타입을 덜 신경쓰게 만든 언어다. 타입이 없는게 아니다.
type스크립트를 쓰면 (자바 스크립트를 정적 타입언어 처럼 사용할 수 있게 만듬)
자바스크립트 실행환경 3가지
cmd창에 node 치고 거기에 자바스크립트 코드 작성
console
에디터사용
초기화단계
var x 자바스크립트 엔진한테 x라는 변수명(식별자)를 사용하겠다고 알리는것
실행컨텍스트때, x라는거 사용하겠다고 써두고 메모리공간확보
원시타입값은 변경불가 객체(참조)타입의 값은 변경가능
undefined타입, undefinded값 immutalbe
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
변수 선언의 실행시점 (런타임 이전)
var x 변수가 undefinde로 초기화 되기 떄문에 선언보다 참조가 먼저 발생했을때 undefined가 나오는것
변수호이스팅(공사장 끌어올리는거): 이런식으로 코딩하면 안된다
var 키워드로 선언한 변수들은 '함수의 블록만을 scope'로 잡는다 (함수레벨 스코프)
예를들어 if문안에 있는 변수는 밖에서 다보인다.
프로그램언어에서 상수는 변수의 반대말(재할당 이 불가능)
할당을 딱 1번만 할 수 있게 만든것 ( 상수도 따지면 변수에 속함. ) 재할당 불가x
const 딱1번만 let는 var처럼 동작 (변수호이스팅을 안하는 것 '처럼' 동작)
스코프 = 폴더 라고 생각하면 됨
모든선언문은 호이스팅을 하는데, 방법이 다 조금다름 (var, let, function)
함수명 지을때: 동사 + 명사형으로 많이 지음
코딩컨벤션 어떻게 써요? 카멜로 써왔습니다
타입이 왜 필요한가?
숫자를 8바이트 단위로 메모리 공간확보 (및 선두 주소를 가르킨다)
주소공간을 보고 몇바이트 가져와야되는지 알기 위해
수학에서 실수는 리얼넘버 실제 존재하는것 ( 프로그래밍에선 소숫점이 있는것)
값이란
더이상 평가할 수 없는 하나의 표현식
평가랑 표현식을 알아야한다.
평가: 하나의 값으로 만든다.
10+20 = 표현식이다 = 30 (동치) 표현식은 하나의 값으로 평가할 수 있음
10+20을 평가하면 30 , 10을 평가하면 10 , 더이상 평가할 수 없는 표현식 = 값
사실은 메모리에 저장된 0101 (이런게 값이다)
30 우리가 아는방식(리터럴) - 파싱되지 않은것 , 가장 최소단위의 표현식 = 값을 만드는 방식
30이란 값이자 리터럴이자 표현식이자 문도 된다
var sum = 10 + 20 (값이 될 수 있는것은 모두 올 수 있어서 함수,객체 모두올수있음)
10<- (리터럴이란 , 값을 만드는 방법중 가장 심플한 값을 만드는 방법이다.)
리터럴 표기법으로 숫자 리터럴을 만듬(자바스크립트 엔진에 의해) = 값이 된다. (동치)
10 + 20 리터럴과 연산자로 만든 표현식 (리터럴은 값이 되지만, 값이 리터럴이 될순없다)
10 리터럴이자 표현식이자 리터럴표현식, 숫자리터럴표현식
var a = 10 ;
a (식별자 표현식)
a+10
식별자표현식과 숫자리터럴을 연산한 표현식
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
function() {} - > 문법에러 함수리터럴
(function() {}) ->나옴
expression=식은 값을 만들어낸다
sum = 10 할당문이 값을 할당(표현식)
square() 함수호출을 하면 리턴값을 반환한다 (함수 호출 표현식)
person.getName()메소드도 프로퍼티, 함수를 호출하는 친구기 때문에 값으로 평가
Symbol 프로퍼티 명을 만들기 위한 친구
숫자타입(시험에 잘나옴)
Infinity (자바스크립트가 표현할 수 있는 수를 넘으면)
-Infinity
NaN:숫자가 아니다 스펠링
+는 세가지 종류가 있다
앞 뒤가 다숫자 타입이면 산술연산자
앞 뒤 중에 문자열이면 문자열 연결연산자
단항일경우 단항연산자로 동작 (부호변경)
문자열은 왜 따옴표로 막을까? 가로막지 않으면 식별자
가로막아야 시작과 끝을 알릴 수 있다.
매개변수 (이쪽 함수밖에 있는 실제값과 함수안으로 값을 넣는것)
프로그램 :문의 집합
문의 순서가 있음 (순서를 바꾸고 싶음, 제어문 사용)
++
-- 는 부수효과가 있다
// undefined는 숫자로 타입 변환되지 않는다. console.log(+undefined); // NaN console.log(1 + undefined); // NaN
'공부 > TIL' 카테고리의 다른 글
스코프 , 객체 (0) | 2019.05.08 |
---|---|
연산자,조건문,형변환 (0) | 2019.05.07 |
var, let, const의 차이는? (0) | 2019.05.02 |
자바스크립트, 동작원리 (0) | 2019.05.01 |
자바스크립트와 ES의 차이 (0) | 2019.04.30 |