let name = "John";
name = "Doe";
const PI = 3.14;
let age = 20;
let isStudent = true;
let city;
let person = {
name: "John",
age: 25
};
let numbers = [1, 2, 3, 4, 5];
함수는 특정 동작을 수행하는 코드 블록
function greet(name) {
return "Hello, " + name + "!";
}
console.log(greet("John"));
let score = 85;
if(score >= 90) {
console.log("A");
} else if(score >= 80) {
console.log("B");
} else {
console.log("C");
}
let day = 2;
switch(day) {
case 1:
console.log("Monday");
break;
case 2:
console.log("Tuesday");
break;
default:
console.log("Invalid day");
}
for(let i=0; i<5; i++) {
console.log(i);
}
let i = 0;
while(i < 5) {
console.log(i);
i++;
}
배열은 여러 개의 값을 하나의 변수에 저장
let colors = ["red", "green", "blue"];
colors.push("yellow");
colors.pop();
console.log(colors.length);
let globalVar = "I am a global variable";
function testScope() {
var functionVar = "I am a function variable";
if (true) {
let blockVar = "I am a block variable";
console.log(globalVar);
console.log(functionVar);
}
}
testScope();
변수의 쉐도잉은 같은 이름의 변수가 내부 스코프에서 외부 스코프의 변수를 가리는 현상을 의미
let name = "John";
function shadowingExample() {
let name = "Doe";
console.log(name);
}
shadowingExample();
console.log(name);
객체의 속성으로 저장된 함수를 메서드라고 부른다. this는 실행 컨텍스트에 따라 가리키는 객체가 달라지며, 대부분의 경우 메서드를 호출하는 객체를 가리킨다.
let person = {
name: "John",
greet: function() {
console.log("Hello, " + this.name);
}
};
person.greet();
function outerFunction() {
let outerVar = "I am an outer variable";
function innerFunction() {
console.log(outerVar);
}
return innerFunction;
}
let closure = outerFunction();
closure();
function average(arr) {
let sum = 0;
for (let value of arr) {
sum += value;
}
return sum / arr.length;
}
let numbers = [10, 20, 30, 40, 50];
console.log(average(numbers));