[Node.js_6기 본캠프] Today I Learned_0812
2024. 8. 12. 21:24ㆍ[Node.js_6기 본캠프 TIL]
▶ Javascript 기본 문법 -상-
그동안 기본 문법에 대한 요약글들을 훑어보긴 했지만, 머리에 들어오지도 않고... 문제에 바로 적용하는 것이 쉽지 않았다. 그러다보니 기존에 알던 얕은 지식과 구글링을 통해 알고리즘 문제를 풀고 있었다. 그러나 오늘부터 강의와 함께 기초부터 다시 정리하기 시작하니, 그동안 쓰던 코드들이 이런 원리와 의미를 가지고 있었구나- 라는 것을 이해할 수 있게 되었다. 머릿 속에 꽉 차 있던 구름이 조금 걷히는 기분.
1. 숫자(number)
//1-1. 정수
let num1 = 10;
console.log(num1); // 10
console.log(typeof num1); // number
//1-2. 실수(float)
let num2 = 3.14;
console.log(num2); // 3.14
console.log(typeof num2); // number
//1-3. 지수형(Exp)
let num3 = 2.5e5;
console.log(num3); // 250000(2.5 * 10^5)
console.log(typeof num3); // number
//1-4. Nan(Not a number)
let num4 = "Hello" / 2;
console.log(num4); // Nan(Not a number)
console.log(typeof num4); // number
//1-5. 무한대
let num5 = 1 / 0;
console.log(num5); // Infinity
console.log(typeof num5); // number
//1-6. 무한대
let num6 = -1 / 0;
console.log(num6); // -Infinity
console.log(typeof num6); // number
2. 문자(string)
// ' ' = " "
let str = "Hello World!";
console.log(str); // Hello World!
console.log(typeof str); // string
//2-1. 문자열 길이 확인하기
console.log(str.length); // 12
//2-2. 문자열 결합하기(concatenation)
let str1 = "Hello, ";
let str2 = "world!";
let result = str1.concat(str2);
console.log(result) // Hello World!
//2-3. 문자열 자르기
let str3 = "Hello, World!";
// substr는 몇번째 글자부터 몇개를 잘라올 것인지
console.log(str3.substr(7,5)); // World
// slice는 몇번째 글자부터 몇번째 글자까지 잘라올 것인지
console.log(str3.slice(7,12)); // World
//2-4. 문자열 검색(몇번째 글자에서 해당 단어가 시작되는지)
let str4 = "Hello, World!";
console.log(str.search("World")); // 6
//2-5. 문자열 대체
let str5 = "Hello, World!";
let result01 = str5.replace("World", "Javascript")
console.log(result01); // Hello, Javascript!
//2-6. 문자열 분할
let str6 = "apple, banana, kiwi";
let result02 = str6.split(",");
console.log(result02); // [ 'apple', ' banana', ' kiwi' ]
3. Boolean
//true, false
let bool1 = true;
let bool2 = false;
console.log(bool1); // true
console.log(typeof bool1); //boolean
console.log(bool2); //false
console.log(typeof bool2); //boolean
//Undefined(정의되지 않은)
let x;
console.log(x) // undefined
//null(값이 존재하지 않음을 명시적으로 나타내는 방법)
let y = null;
console.log(y); // null
//object(객체) *key-value pair를 잊지 말자
let person = {
name: 'choi',
age: 20,
isMarried: true,
};
console.log(typeof person); //object
//array(배열)
//여러 개의 데이터를 순서대로 저장하는 데이터 타입
let number = [1, 2, 3, 4, 5];
let fruits = ['apple', 'banana', 'orange'];
4. 형 변환
// 1. 암시적 형 변환
// 1-1. 문자열
let result1 = 1 + "2";
console.log(result1); // 12
console.log(typeof result1); // string
let result2 = "1" + true;
console.log(result2); // 1true
console.log(typeof result2); // string
// {}, null, undefined + "1" => 문자열
// 1-2. 숫자
// 더하기가 아닌, - 혹은 * 등은 숫자가 우선시된다.
let result3 = 1 - "2";
console.log(result3); // -1
console.log(typeof result3); //number
let result4 = "2" * "3";
console.log(result4); // 6
console.log(typeof result4); //number
// 2. 명시적 형 변환
// 2-1. Boolean
console.log(Boolean(0)); //false
console.log(Boolean("")); //false
console.log(Boolean(null)); //false
console.log(Boolean(undefined)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean("----------")); // true
console.log(Boolean("false")); // true
console.log(Boolean({})); // true
// 2-2. 문자열
let result5 = String(123);
console.log(typeof result5); //string
let result6 = String(true);
console.log(typeof result6); //string
let result7 = String(null);
console.log(typeof result7); //string
// 2-3. 숫자열
let result8 = number("123");
console.log(typeof result8);
5. 연산자(+, -, *, /, %)
// 1. 더하기 연산자
console.log(1 + 1); // 2
console.log(1 + "1"); // 11
// 2. 빼기 연산자
console.log(1 - "2"); // -1
console.log(1 - 2); // -1
//3. 곱하기 연산자
console.log(2 * 3); // 6
console.log("2" * 3); // 6
// 4. 나누기 연산자
console.log(4 / 2); // 2
console.log("4" / 2); // 2
// 5. 나누기와 나머지
console.log(5 / 2); // 2.5
console.log(5 % 2); // 1
// 6. 할당 연산자(assignment)
// 6-1. 등호 연산자(=)
let x = 10;
// 6-2. 더하기 등호 연산자(+=)
// 뒤의 값을 더한 다음 재할당한다.
x += 5;
console.log(x);
// 6-3. 빼기 등호 연산자(-=)
// 뒤의 값을 뺀 다음 재할당한다.
x -= 5;
console.log(x);
// 비교 연산자(true 또는 false를 반환하는 연산자)
// 1. 일치 연산자(===)
// 타입까지 일치해야 true 반환
console.log(2 === 2); //true
console.log("2" === 2); //false
console.log(2 === "2"); //false
// 2. 불일치 연산자(!==)
// 타입까지 일치해야 false를 반환하는 연산자
console.log(2 !== 2); //false
console.log("2" !== 2); //true
console.log(2 !== "2"); //true
// 3. 작다 연산자(<), 작거나 같다 연산자(<=)
console.log("-----");
console.log(2 < 3); //true
console.log(2 <= 3); //true
console.log(3 <= 3); //true
// 4. 논리 연산자
// 4-1. 논리곱 연산자(모두 true일 때 true 반환)
console.log(true && true) //true
console.log(true && false) //false
console.log(false && true) //false
console.log(false && false) //false
// 4-2. 논리합 연산자(두 값 중 하나라도 true인 경우 true 반환)
console.log("-----");
console.log(true || true) //true
console.log(true || false) //true
console.log(false || true) //true
console.log(false || false) //false
// 4-3. 논리부정 연산자(!)
console.log("-----");
console.log(!true);
let a = true;
console.log(!a);
// 5. 삼항 연산자(중요!)
// 조건문 ? true일 경우 반환하는 값 : false일 경우 반환하는 값
let k = 10;
let result = k > 5 ? "크다" : "작다";
console.log("-----");
console.log(result);
console.log("-----");
let y = 20;
let answer = y < 10 ? "작다" : "크다";
console.log(answer);
// 6. 타입연산자(typeof)
console.log(typeof "5"); //string
console.log(typeof 5); //number
6. 함수(function)
// 1. 함수 선언문
// 두 개의 숫자를 입력 받아서 덧셈을 한 후 내보내는 함수
function add(x, y) {
return x + y;
}
// 2. 함수 표현식
let add2 = function (x, y) {
return x + y;
};
// 함수를 호출한다(=사용한다)
// 함수명() -> add(입력값)
let functionResult = add(2, 3);
console.log(functionResult);
// input: 함수의 input -> 매개변수(매개체가 되는 변수)
//output: return문 뒤에 오는 값(반환값)
7. 스코프, 전역변수, 지역변수, 화살표함수
// 스코프: 영역
// 전역변수: 모든 스코프에 영향을 주는 변수
// 지역변수: 특정 스코프에 영향을 주는 변수
function printX(){
let x = 10;
console.log(x);
}
console.log(x);
printX();
// 화살표 함수
// ES6 신 문법
function add (x, y) {
return x + y
}
// 1-1. 기본적인 화살표 함수
let arrowFun01 = (x, y) => {
return x + y
}
// 1-2. 한 줄로
let arrowFun02 = (x, y) => x + y;
8. 조건문(if, else if, else, switch)
// 1. if문
let x = 10;
if(x > 0) {
console.log("x는 양수입니다.");
}
// 2. if ~ else문
let y = -10;
if(y > 0) {
console.log("y는 양수입니다.")
} else {
console.log("y는 음수입니다.")
}
// 3. if ~ else if ~ else문
let i = 10;
if(i < 0) {
console.log("i는 음수입니다.")
} else if(i >= 0 && x < 10) {
console.log("i는 0보다 크거나 작고, 10보다 작습니다.")
} else {
console.log("i는 10입니다.")
}
// 4. switch
// 변수의 값에 따라, 여러 개의 경우(case) 중 하나를 선택
// default값 필요
// break문이 없으면 함수가 계속 돌기 때문에, 잊지 않기
let fruit = "kiwi"
switch(fruit) {
case "apple":
console.log("this is apple.");
break;
case "banana":
console.log("this is banana.");
break;
case "kiwi":
console.log("this is kiwi.");
break;
default:
console.log("this is not a fruit.");
break;
}
'[Node.js_6기 본캠프 TIL]' 카테고리의 다른 글
[Node.js_6기 본캠프] Today I Learned_0814 (0) | 2024.08.14 |
---|---|
[Node.js_6기 본캠프] Today I Learned_0813 (0) | 2024.08.13 |
[Node.js_6기 본캠프] Today I Learned_0809 (0) | 2024.08.09 |
[Node.js_6기 본캠프] Today I Learned_0808 (0) | 2024.08.08 |
[Node.js_6기 본캠프] Today I Learned_0807 (0) | 2024.08.07 |