반응형
let globalName = 'global name';
{
let name = 'apple';
console.log(name);
name = 'hello';
console.log(name); //
console.log(globalName);
}
console.log(name); //실행 안됨.
console.log(globalName);
결과는
mahall
hello
lobal name
lobal name
// var는 사용하지 말고
// var hoisting 이란 선언을 가장 위로 끌어올리는 일
// var 는 블럭을 무시함. 스코프 무시함.
{
age = 4;
var age;
}
console.log(age);
결과
4
// 값이 바뀌지 않는 변수 - 상수
// 가능하면 값을 변경할 수 없는 상수를 사용
// 변할 필요가 없다면 사용
// 뮤터블 타입 let, 이뮤터블 타입 const
const daysInWeek = 7;
const maxNumber = 5;
데이터 타입
// primitive, single item: number, string, boolean, null, undefined, symbol
// object, box container
// function, first-class function(변수 할당 가능, 인자로 전달 가능, 리턴도 가능)
// number
const count = 17; // integer
const size = 17.1; // decimal number
console.log(`value: ${count}, type: ${typeof count}`);
console.log(`value: ${size}, type: ${typeof size}`);
결과
value: 17, type: number
value: 17.1, type: number
// number - speicla numeric values: infinity, -infinity, NaN
const infinity = 1 / 0;
const negativeInfinity = -1 / 0;
const nAn = "not a number" / 2;
console.log(infinity);
console.log(negativeInfinity);
console.log(nAn);
결과
Infinity
-Infinity
NaN
// 최근 추가 bigInt (fairly new, don't use it yet)
const bigInt = 1234567890123456789012345678901234567890n; // over (-2**53) ~ 2*53)
console.log(`value: ${bigInt}, type: ${typeof bigInt}`);
결과
value: 1234567890123456789012345678901234567890, type: bigint
// string
const char = "c";
const brendan = "brendan";
const greeting = "hello " + brendan;
console.log(`value: ${greeting}, type: ${typeof greeting}`);
const helloBob = `hi ${brendan}!`; //template literals (string)
console.log(`value: ${helloBob}, type: ${typeof helloBob}`);
console.log("value: " + helloBob + " type: " + typeof helloBob);
결과
value: hello brendan, type: string
value: hi brendan!, type: string
value: hi brendan! type: string
// boolean
// false: 0, null, undefined, NaN, ''
// true: any other value
const canRead = true;
const test = 3 < 1; // false
console.log(`value: ${canRead}, type: ${typeof canRead}`);
console.log(`value: ${test}, type: ${typeof test}`);
결과
value: true, type: boolean
value: false, type: boolean
// null
let nothing = null;
console.log(`value: ${nothing}, type: ${typeof nothing}`);
결과
value: null, type: object
// undefined
let x;
console.log(`value: ${x}, type: ${typeof x}`);
결과
value: undefined, type: undefined
// symbol, create unique identifiers for objects
const symbol1 = Symbol("id");
const symbol2 = Symbol("id");
console.log(symbol1 === symbol2);
const gSymbol1 = Symbol.for("id");
const gSymbol2 = Symbol.for("id");
console.log(gSymbol1 === gSymbol2); // true
console.log(`value: ${symbol1.description}, type: ${typeof symbol1}`);
결과
false
true
value: id, type: symbol
// 5. Dynamic typing: dynamically typed language
let text = "hello";
console.log(text.charAt(0)); //h
console.log(`value: ${text}, type: ${typeof text}`);
text = 1;
console.log(`value: ${text}, type: ${typeof text}`);
text = "7" + 5;
console.log(`value: ${text}, type: ${typeof text}`);
text = "8" / "2";
console.log(`value: ${text}, type: ${typeof text}`);
console.log(text.charAt(0)); // Error 숫자 타입으로 변경되어서
결과
h
value: hello, type: string
value: 1, type: number
value: 75, type: string
value: 4, type: number
// object, real-life object, data structure
const kim = { name: "mashall", age: 24 };
ellie.age = 21;
정리한다.
반응형
'소프트웨어 교육' 카테고리의 다른 글
풀스택 개발자가 되기 위한 공부 순서 - Udemy (14) | 2024.09.17 |
---|---|
프론트엔드 공부할 때 가장 많이 하는 실수 6가지와 공부 방법 (7) | 2024.09.16 |
실전 알고리즘 강좌 링크(Algorithm Programming Tutorial) - 동빈나 (38강, 동영상) (0) | 2024.09.09 |
오디세이 스킨 상단에 수정, 삭제 버튼 추가 방법 (4) | 2024.01.04 |
소프트박스 GPIO 할당 표 - 아두이노 실습 플랫폼 softbox (1) | 2022.11.18 |
소프트웨어 개발 기술 평가 양식 (1) | 2022.09.08 |
C 언어 코딩 교육 자료. Learn to code with C (0) | 2021.07.26 |
IC-PBL 교과목 개발 및 운영 계획서 제출 (0) | 2021.07.09 |
더욱 좋은 정보를 제공하겠습니다.~ ^^