본문 바로가기

자바스크립트

[❤️두근두근 자바스크립트 공략❤️] 2장 변수, 자료형

728x90

교재 : 자바스크립트 프로그래밍 입문

이건 알고 들어가자~

1. 자바스크립트는 코드 끝에 ';(세미콜론)'을 붙여줘야 한다!!

=> why? 세미콜론을 안 써도 돌아가긴 하는데, 웹 브라우저에서 사용하는 자바스크립트는 코드를 조금이라도 줄이려고 개행을 제거하는데 이 때 세밀콜론이 필요하다. 즉, 세미콜론으로 문장을 구분해주는 것이 자바스크립트 개발자의 관례다. 

 

2. 자바스크립트 자료형은 요기서 체크

https://velog.io/@imjkim49/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85-%EC%A0%95%EB%A6%AC

 

자바스크립트- 데이터 타입 정리

자바스크립트 데이터 타입은 기본형, 참조형 이렇게 크게 두가지로 볼 수 있다.일전 자바스크립트 이해하기-2 에서도 간략하게 살펴보았었지만 책을 읽고 정리해보면서 더욱 자세하게 살펴보려

velog.io

3. python과 똑같은 것은 제외함

 

 


1. 변수 선언은 3가지 방식이 있다.

a = 10;
let a = 10;
var a = 10;
const = 10;  // 상수

 


2. let과 var는 뭐가 다를까?? 

 재선언의 차이다. 

 

 코드를 보면 알겠지만, let의 경우 똑같은 이름의 변수를 재선언할 시 이미 선언된 변수라는 에러가 뜨지만 var는 그렇지 않다. var의 경우 코드가 길어질 때 똑같은 이름의 변수를 재선언 할 수도 있어서 굉장히 위험한 코드 선언 방식이다. 

 

(+) 변수 선언문을 쓰지 않고 정의 했을 때는 var와 똑같은 결과를 보인다. 

 

(+) let과 var를 섞어 쓰면 어떨까 했는데, 일단 let이 들어가면 모두 이미 선언되었다는 에러가 뜨는 것 같다. 

 


3. typeof

let a = '자바스크립';
console.log(typeof(a)); // 기존 변수
console.log(typeof a);

console.log(typeof 10); 
console.log(typeof(10));

 


4. boolean 

console.log(30>20>10);

a=30>20;  // True=1
b=a>10;   // 1>10? False
console.log(b)  // False

: python과 C는 이런 연산이 안 되지만 자바 스크립트는 가능하다!!! 

 

 


5. 템플릿 문자열

let a = 18;

console.log('소곡이의 나이는 ${a}세입니다. ');
console.log(`소곡이의 나이는 ${a}세입니다. `);  // 템플릿 문자열

const output1 = '소곡이의 나이는 ${a}세입니다. '; 
console.log(output1);

 

자바스크립트에서 문자열에 변수를 섞어쓸 때  '+' 연산자를 써도 되지만 이건 좀 번거롭다. 그래서 템플릿 문자열을 사용하는데 ''(작은 따옴표)가 아니라 ``(백틱)이다. esc바로 밑에 있다. 

 

정리: 백틱 문자열 안에다가 ${변수 이름}

 

 


6. 강제 자료형 변환

let a = '18';
let b = 'true';
let c = 23;

console.log(Number(a));
console.log(Boolean(b));
console.log(String(c));

 


7. NaN(Not a Number): 숫자 자료형이지만 숫자가 아님

console.log(Number(true));
console.log(Number(false));
console.log(Number('앙'));

 true가 1이고, false가 0이라는 건 이전에 프로그래밍을 배운 사람들이라면 다 알거다. 하지만 문자열은 숫자가 아니다. 

 

 


8. NaN인지 확인하는 방법: isNaN()

let nan = Number('치즈스틱');
console.log(nan==nan);
console.log(nan!=nan);
console.log(isNaN(nan));

 


9. Boolean() 

 강제 자료형 변환 중 Boolean()은 아래 5개 요소를 제외하고 모두 true로 변환한다.

  • 0
  • NaN
  • "" (빈 문자열
  • NULL
  • undefined

 


10. 자동 자료형 변환

1) 숫자 + 문자열

let a = 52+"273";
console.log(a);
console.log(typeof a);

 

2)  표현식에 !연산자를 사용할 때 bool 자료형으로 자동 변환 됨

let nan = Number('안녕'); 
console.log(nan);
console.log(!nan);  // nan은 원래 false
console.log(!null); // null은 원래 false
console.log(!true)

 

 


11. 일치 연산자 ===, !==: 자료형까지 일치하는지 검사하는 연산자

console.log(52=="52");
console.log(52==="52");

 

 


12. 나머지 연산자 %

1) 부호는 왼쪽 피연산자를 따름

console.log(-4%3);
console.log(4%-3);
console.log(-4%-3);

 

2) 소수점이 있는 숫자에 적용하면 안 됨

console.log(5.0%2.2);

: 소수점이 있는 숫자 연산에 제한이 있어서 원래는 0.6을 도출해야 하지만, 0.5999...라는 이상한 값을 출력하기 때문.

 

 

(+) 이걸 파이썬으로 해보니... 뭔가 흠....