본문 바로가기
Web Front-end 공부/Java script

Js 기본적인 내용

by Hanachoi 2022. 5. 19.
  • 코드의 끝에는 항상 세미콜론(;)을 침으로써,여기가 명령의 끝임을 알려주는게 좋다. 세미콜론과 치면 한줄에 코드를 다 작성할 수도 있긴 함.하지만 권장은 안한다 가독성이 떨어짐
  • [error : Unexpected identifier] 무엇인가 넣어야되는데 안넣었을때 뜨는 에러
  • 주석은 사람과 사람사이의 소통창, 코드에 대한 설명이 필요할때 사용. 주석은 코드와 코드 사이에도 넣을 수 있다.
  • 주석안에 있는 코드는 컴퓨터도 무시를 하고 실행시키지 않는다. 여러개의 코드를 적어놓고 주석처리를 해둔 다음에 요리조리 바꿔가면서 실행시켜 볼 수도 있음 
  • 들여쓰기는 안해도 되지만 왠만하면 습관으로 만들기

 

#자바스크립트 자료형

  • 프로그램이 조작할 수 있는 데이터를 값(value)라고 부른다. 문자, 숫자, 불리안 등은 모두 값. 이런 값을 카테고리 형으로 분류한게 자료형이다.
  • 문자열 : string. 자바스크립트에서 문자열은 반드시 따옴표''/""로 감싸줘야된다. 앞 뒤로 짝만 맞춰주면 됨
  • 백틱도 문자열을 표현할때 사용이 가능. 백틱의 특징은 줄바꿈이 가능함(다른애들은 안됨)
  • '' / ""에서도 줄은 바꿀 수 있다. \n을 문장뒤에 쓰면 줄바꿈이 된다. 
  • ' '  사이에 아무것도 안쓰더라도 문자열로 취급된다. 
  • typeof 를 사용하면 자료형을 찾아볼 수 있다. 
typeof '' //string
typeof 1212//number
  • '' == ' ' 완전 붙힌 애와 ' ' 한칸 떨어진애랑은 다른 값이다 그래서 false가 뜬다. 띄어쓰기 갯수가 완전 같다면 true로 출력됨. 
  • 만약에 문자열 안에 따옴표를 사용하고 싶으면 어떻게 해야되지? 
  • 내가 쓰고싶은 애랑 다른 따옴표로 감싸주기. 
"how're you>" //문자열안에 쓰고싶은 따옴표랑 겉 따옴표를 다르게 써주기
`how're you` // 벡틱으로 문자열을 감싸주기
  • 하지만 죽어도 겉과 속에서 같은 따옴표를 써야겠다고 한다면 역슬래시를 사용하면 사용할 수 있음 
'how\'re you?'// how're you로 출력
  • 그럼 문자열안에 역슬래시를 쓰고싶다면? 역슬래시를 두번써주면 무시되지 않고 같이 출력된다.
'how\\are you' // how\are you 로 출력됨

 

#연산자

  • 문자열도 +로 합쳐지기가 가능하다. '바나나' + '사과' 하면 바나나사과 출력
  • 문자열끼리 합칠 때는 띄어쓰기도 따옴표 안에 다 넣어야 반영된다. 

 

  • 숫자형 : 숫자는 따옴표를 붙이지 않고도 사용가능. 
  • 지수표기법도 있음. 매우 큰 숫자나 소수점을 아래자리수가 많을 때 숫자를 표현하는 방법. e뒤에 나오는 숫자만큼 10의 거듭제곱을 하면 원래 숫자가 된다.
  • 2진법, 8진법, 16진법 등도 표시가 가능하다. 얘네를 typeof 해보면 'number'라는 자료형을 알려준다
5e4; // 5 * 10000 = 50000
5e+4; // 5 * 10000 = 50000
5e-3; // 5 * (1/1000) = 0.005


0b111 // 이진법 표현으로 7
  • 헷갈리는것 하나. NaN은 Not a number 라는 뜻이지만 얘는 자료형에서 숫자로 취급된다.  
  • 문자열을 숫자로 바꾸고 싶을때는 아래처럼 코드 작성하면 바뀜
parseInt('124') // 문자열에서 숫자로 자료형 변경
number('124') // 얘도 똑같이 작동함, 소수도 사용가능 


parseFloat('3.14') // 문자열을 소수로 바꿈

 

  • 항상 코드르 짤때는 내 감을 믿지말고 컴퓨터에 입력을 해보고 눈으로 보기. 
parseInt('123') + 5 // 이렇게 하면 129라고 계산되어서 나옴
typeof parseInt('123') // "number"라는 타입으로 출력됨
  • parseInt() 는 정수로 바꾸는거기 때문에 3.14 소수를 넣으면 값으로 3만 출력됨 
  • parseInt 와 number의 차이는? parseInt('3월')을 하게되면 3이라는 숫자만 뽑아서 숫자로 만들어주지만 number('3 월')하면 NaN로 출력된다. 
typeof parseInt(prompt()); 
//prompt하면 브라우저에서 창을 띄어주고 거기에 값을 입력하면된다 //

 

 

  • 불값(Boolean) : true와 false로 나뉘는 자료형. 얘는 문자열이 아니기때문에 따옴표로 감싸지 않는다.
  • 자바스크립트에서는 같은 값끼리 비교했을때 false가 뜨는애가 있는데 그게 NaN = NaN // false로 출력. 앞으로 같은거 두개를 비교했는데 false라고 뜨면 그 값이 NaN이라고 생각하면 됨. 크기를 비교해도 false 가 뜸. 하지만 !=연산에서는 true가 나옴.
  • 자바스크립트에서는 문자끼리도 비교가 가능하다. 
  • true > false 비교하면 true 가 더 큰게 true. 숫자로 바꾸면 true가 1, false가 0이기 때문.
  • 문자열에서는 사전 순으로 크기가 비교된다. a보다 b가 크다. 사전 뒤로 갈수록 큰 값
  • 문자의 번호를 알아보는 방법도 있다. 
'a'.charCodeAt(); // 97나옴
'b'.charCodeAt(); // 98나옴

// 결론적으로 a<b 가 true가 되게 됨//
  • 다른 자료형끼리 비교할 수도 있다. 문자랑 숫자의 크기를 비교하면 문자가 숫자로 변환됨
'3'<5 // true출력 3이 숫자로 변환되서

'abc' < 5 //false출력,  abc를 숫자로 바꾸면 NaN이 된다. NaN의 비교는 false

0<true // true는 1이니까 이 비교는 true

 

 

  • ==와 ===의 차이 : ===을쓰면 값 뿐만 아니라 자료형까지 비교를 해주기 때문에 더 정확한 값을 받을 수 있음. ==만 쓰면 형변환이 일어나서 '1'==1 이 true가 나오는 일이 발생한다.  !=도 마찬가지로 형변환을 먼저 한 후 비교를하고 자료형까지 비교를 하려면 !==까지 쓰면됨. 자료형까지 비교하려면 문자3개를 써야된다고 기억하자

 

#논리연산자

  • && 그리고/ || 또는 
  • 10>5 && 6<8 만약 이런 연산을 하는데 헷갈린다면 괄호를 쳐서 우선순위를 설정해주면 됨. ()가 언제나 가장 우선순위의 연산자다. 
  • 참을 거짓으로, 거짓을 참으로 만드는 연산자도 있다. 식 앞에 !를 붙이면 참인 값은 false, 거짓인 값을 true가 된다.
!true // false로 출력
!false // true로 출력
!!'a'; //true
  • 대부분의 값은 불리안으로 변형했을 때 true가 되는데 false 로 나오는 애들도 있으니 얘네는 따로 기억해두자
  • false, ''(빈문자열), 0, NaN, undefined, null  얘네는 무조건 외우자. 
> !!false
< false
> !!''
< false
> !!0
< false
> !!NaN
< false

 

 

#빈 값과 null 

  • 반환할 결과값이 없을 때 undefined를 내보냄. console.log('hello world') 라고 치면 undefined가 밑에 딸려나오는데, 콘솔에 무언가를 출력하긴 하지만 그 자체로는 결과 값이 없기 때문에 undefined가 반환되는 것. 
  • undefined 는 불 값으로 형 변환을 시키면 false가 나옴. 하지만 undefiend가 false와 같은건 아니다. 
  • null 은 의도적으로 빈 값을 넣을 때 많이 사용. undefined와는 다른 자료형이다.
  • null 은 fasle와 같지는 않다. 
  • null의 자료형을 typeof null로 확인해보면 결괏값으로 object가 뜨는 것을 볼 수 있음. 아주 유명한 자바스크리브이 버그다. 그래서 null 값을 확인하고 싶을대는 ===null을 사용해야된다. 
  • 왠만하면 ===을 주로쓰는게 낫다. 
  •  

 

 

'Web Front-end 공부 > Java script' 카테고리의 다른 글

Js 상수(const)와 var  (0) 2022.05.20
Js 변수  (0) 2022.05.20
공부하기전 알아두면 좋은 것  (0) 2022.05.19
생활코딩 Java script 2  (0) 2022.05.17
생활코딩 Java script  (0) 2022.05.11

댓글