본문 바로가기

공부/TIL

변수 ~ 연산자

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