자바스크립트의 변수는 자료형이 오버로딩된 객체 타입이다. c++언어와 비교하며 추측할 수 있다.
var msg1 = 'Hello';
var msg2 = 10;
var msg3 = new Number(10);
// expect as C++
class Number {
Number(num) {
number = num
}
}
class String {
String(str) {
string = str;
}
}
console.log('Hello World')
node
입력 시, 이 상태에서는 JavaScript 코드를 바로 입력해서 실행할 수 있어.var msg = new Number(10);
var count = 100;
msg = count;
console.log(msg);
숫자형을 문자열 변수에 담는다는 게 어떻게 이뤄질까?
결국 변수는 값이 아닌 주소를 넘겨주는 형식
자료형의 종류 (크게 원시형과 오브젝트형)
var myAge = 20;
var myHeight = 178.5;
console.log(typeof myAge);
console.log(typeof myHeight);
var kor = 95;
var eng = 85;
var math = 52;
var total = kor + eng + math;
// 각각 숫자형 객체인데 더하는게 어떻게 가능할까? JS에서 더하기는 연산자 오버로딩되어 있다.
var avg = total / 3;
console.log(total);
console.log(avg);
var a = '난'/10;
console.log(a); // Not a number
자바스크립트 문자형은 문자열이므로 큰 따옴표와 작은 따옴표 구별이 따로 없다.
문자형과 숫자형을 더하면 문자형으로 인식된다.
//문자열
var lang1 = new String("java")
var lang = "Javascript"
var love = '사랑하';
var you = null;
var num = 5;
console.log(lang + null + love + num);
// result: Javascriptnull 사랑하5
문자열의 길이를 구하는 length
멤버함수
var count = lang.length
console.log("lang.langth : " + lang.length)
따옴표 종류로 표현하기
var msg1 = 'She said "Good bye"';
var msg2 = "She's gone"
console.log(msg1);
console.log(msg2);
var checkIn = true;
var checkOut = false
console.log(checkIn);
console.log(checkOut);
var bigger = 100 > 50;
var fake = 100 < 50;
console.log(bigger);
console.log(fake);
var love = null;
console.log(Boolean(love));
undefined 정의되지 않은 ⇒ 변수를 선언했지만 값이 할당되지 않은 상태
일종의 오류의 값
var unName;
console.log(unName);
reference