⭐️ 고민거리
- 암묵적 타입 변환(타입 강제 변환)과 관련해서 동등 비교 연산자는 모든 경우의 수를 다 알고 있지 않는 한, 결과를 예측하기가 어렵기 때문에 일치 비교 연산자를 사용해야 한다고 생각했습니다.
- 일치 비교 연산자 중 특수한 경우를 알게 되었습니다. NaN은 자신과 일치하지 않은 유일한 값이더군요.
- 이스케이프 시퀀스를 외우는 것보다는 백틱을 활용하여 ES6 템플릿 리터럴을 사용하는 방법이 좋을까요?
웹 페이지
- 웹 페이지의 상호작용은 크게 이벤트(Event)와 함수(Function)로 구분할 수 있습니다.
- 이벤트는 사용자에 의해 발생하는 마우스 클릭, 마우스 드래그, 키보드 등을 의미합니다.
- 함수는 사용자가 발생시킨 이벤트의 결과입니다.
console.log
console.log(괄호 안의 메세지를 콘솔창에 출력합니다.);
alert()
alert(괄호 안의 메세지를 알림창으로 띄웁니다.);
주석
데이터 타입
0, 1, 100
'안녕', "Hello World!", `${name}`
true, false
undefiend
null
var key = Symbole('key');
function greeting (name) {
return `${name} 님, 안녕하세요!`;
}
[1, "서울", true]
let profile = {
name: 'unnamed',
age" 30,
}
console.log(typeof 100);
console.log(typeof null);
variables
const 변수명;
let 변수명;
var 변수명;
const myNumber = 0;
let a;
console.log(a);
let a;
a = "test";
console.log(a);
let camelCase;
let PascalCase;
let snake_case;
...
number
let year = "2023";
console.log(Number(year));
string
console.log("Hello " + "World!");
console.log(`Hello World!`);
console.log("test".length);
let word = "apple";
console.log(word[4]);
const sentence = "Hello World!";
const upper = sentence.toUpperCase();
const lower = sentence.toLowerCase();
console.log(upper);
console.log(lower);
const sentence = "오늘 저녁 메뉴는 갈비찜입니다."
const filteredStr = sentence.indexOf("갈비찜");
console.log(filteredStr);
if (filteredStr !== -1) {
console.log("문자열에 갈비찜이라는 단어가 포함되면 실행합니다.");
}
let year = 2023;
console.log(year.toString());
boolean
false
""
0
NaN
undefined
null
undefined & null
undefined
null
array
let colors = ["red", "blue"];
colors[0];
colors[1];
colors[3] = "white";
console.log(colors);
console.log(colors[2])
color[0] = "black";
console.log(colors);
let cities = [["Seoul", 0], ["Busan", 1], ["Daejeon", 2]];
cities[2][1]
array.length
array.push()
array.unshift()
array.pop()
array.shift()
const nums = [1, 2, 3, 4, 5];
const result = nums.slice(1, 4);
console.log(result);
console.log(nums.slice(-2));
const nums = [1, 2, 3];
nums.splice(1, 1, 10);
console.log(nums);
const cities = ["Seoul", "Busan"];
const numbers = [0, 1, 2];
cities.concat(numbers);
object
let profile = {
name: 'Ryu Changsun',
age: 36,
skills: ["HTML", "CSS", "JavaScript"],
isDeveloper: true,
'how to learn': 'bootcamp'
};
profile.name;
profile['age']
profile['how to learn']
profile.how to learn
const profile = {
age: 36
};
let keyName = "age";
console.log(profile[keyName]);
const profile = {
age: 36
}
profile.age = 50;
profile.address = "서울";
delete profile.age;
math expressions
let num = 1;
num++;
console.log(num)
let num = 1;
num+=2;
console.log(num)
비교 연산자
console.log(1 == '1')
console.log(1 === '1')
if (bootcamp !== "wecode") {
console.log("입장이 불가합니다.");
}
논리 연산자
if (home === "서울" || home === "인천") {
console.log("서울이나 인천에 살면 실행합니다.");
}
if (home === "서울" && isMyHome === true) {
console.log("서울에 살면서 자가라면 실행합니다.");
}
조건문
if (조건 A) {
...
} else if (조건 B) {
...
} else if (조건 C) {
...
} else {
...
}
반복문
for (시작값, 조건문, 증감식) {
반복할 코드;
}
let sum = 0
for (let i = 0; i < 4; i++) {
sum += i;
}
console.log(sum);
const arr = [];
for (let i = 0; i < 3; i++) {
arr.push(i);
}
console.log(arr);
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
function
function 함수명 (parameter) {
...
}
함수명(argument);
function sayHello () {
return "Hello";
}
console.log(sayHello());
function totalSum (num1, num2) {
return num1 + num2;
}
console.log(totalSum(100, 50));