SOCO
opertator, if, for loop 본문
variable ; mutable(let), constant ; immutable(const)
variable -> 메모리의 값을 읽고 쓰는 게 가능함
값을 할당한 다음 변경이 가능함
constant -> 메모리의 값을 읽기만 가능함
선언&할당한 다음에는 읽기만 가능하고 다시 다른 값을 쓰는 것이 불가능함
js는 변수이ㅡ 값이 바뀔 이유가 없으면 const로 선언하는 것이 좋은 습관임
메모리의 값이 저장되는 두가지의 방법이 있음
1. 프리미티브 타입인지
2.오브젝티브 타입인지에 따라서 다른 방식으로 저장됨
1-> value 값 자체가 메모리에 저장됨
2-> object는 메모리에 한 번에 갈 수 없고 const ellie라고 선언하고 object를 할당하게 되면
엘리가 가리키고 있는 곳에는 레퍼런스가 있음 레퍼런스는 오브젝트를 가리키고 있는 곳임 레퍼런스를 통해 실제로 오브 젝트가 담겨있는 메모리를 가리키게 됨 const ellie라고 선언하면 엘리가 가리키는 포인터만 잠김 엘리가 다른 오브젝트로 변경이 불가능하지만 엘리의 이름과 나이는 계속 변경이 가능함
그래서 프리미티브 타입은 벨류로 값이 저장되고
오브젝트는 오브젝트를 가리키는 레퍼런스가 메모리에 저장된다.
immutable data types : primitive types, frozen objects
mutable data type : object
operator
string concatenation
+ 를 이용해서 문자열과 문자열을 합해서 새로운 문자열을 만들 수 있음
문자열에 숫자를 더하면 숫자가 문자열로 변환되어서 합해짐
백틱 기호를 이용해서 string literals도 만들 수 있음 ${}이용하면 변수값을 계산해서 string으로 포함해서 문자열을 만들게 됨
스트링리터럴즈의 좋은 점은 줄바꿈, 중간에 특수기호를 이용해도 그대로 문자열로 변환되어서 나옴
작은 따옴표를 이용하는 경우 중간에 작은 따옴표가 인식되지 않음 이 경우 백슬러시를 앞에 붙여줘야함
새로 줄바꿈을 할 때는 백슬러시n해야 줄바꿈이 됨
numeric operators
숫자를 더하고 뺴고 나누고 곱하고 나누고 나머지값 제곱
preincrement
preincrement = ++counter
counter = counter+1업데이트
preincrement = counter할당
postincrement
postincfement = counter 할당
counter = counter +1업데이트
++(+1) --
predecrement
postdecrement
=operator 할당 하는 오퍼레이터
x=x+y
x+=y
비교하는 오퍼레이터
<=
>=
logical operator
|| && !
or 연산자는 앞에서 true가 나오면 앞에서 멈춤(뒤로 안 감)
뒤에 true가 있어도 뒤에는 출력이 안 됨
심플한 아이를 앞에 배치하고
익스프레션이나 함수는 뒤에 배치해야함
and 연산자는 앞에서 false가 나오면 앞에서 멈춤
and도 해비한 것은 뒤에서 체크하는 것이 좋음
and는 null체크를 할 때도 많이 쓰음
object가 null이면 false가 되기 때문에 &&뒤에가 실행이 안 됨
nullableObject && nullableObject.something
-> nullableObject가 null이 아닐 때만 이 오브젝트의 something이라는 벨류를 받아오게 됨
이걸 코드로 풀어보면 if 문인 것임
!연산자
값을 반대로 바꿔줌
equality
== -> loose equality 타입을 변경해서 검사함
!=
===-> strict equality 타입을 신경써서 검사함
object는 메모리에 탑재될때 ref형태로 저장됨
conditional operators
if, else if, else
if 를 간단하게 쓸 수 있는 ternary operator (?)
condition ? value1 : value2
condition이 true면 왼쪽
아니면 오른쪽
switch
switch( ) {
case 비교:
case연달아서 묶을 수 있음
case :
case :
while() {} loop -> 조건을 검사하고 블럭을 실행
do{} while() -> 블럭을 실행하고 조건을 검사
블럭을 먼저 실행하고 싶으면 do while
조건문이 맞을 떄만 블럭을 실행하고 싶으면 while loop
for loop
for (시작;조건;스탭)
기존에 존재하는 변수를 사용할 수도 있고 for 안에서 inline variable declaration
블럭안에 let이라는 지역변수를 선언해서 작성할 수도 있음
nested loops
for문 안에 for
break, continue
break는 loop를 완전히 끝내는 것이고
continue는 지금껏만 스킵하고 다시 반복문의 처음으로 돌아가는 것임
'프론트 > java script 기초지식' 카테고리의 다른 글
배열 관련 개념 모음 (0) | 2021.06.11 |
---|---|
배열응용: forEach, map, Array().fill() (0) | 2021.06.11 |
변수, 상수, scope, 데이터타입 등 (0) | 2021.06.11 |
콘솔에 출력, script async와 defer의 차이점 (0) | 2021.06.10 |
자바스크립트 기본 _드림코딩 앨리 (0) | 2021.06.10 |