자바스크립트 문법 종합반
-연산자
(1) 산술연산자
(2) 할당연산자
(3) 비교연산자
(4) 논리연산자
(5) 삼항연산자
(6) 타입연산자
-함수
(1) 함수 정의하기
(2) 함수 호출하기
(3) 함수 매개변수와 반환값
(4) 함수 스코프
(5) 화살표 함수
연산자
1. 산술연산자 (arithmetic operators)
// 연산자 (+, -, *, /, %)
// 1. 산술 연산자(arithmetic operators)
// 1-1. 더하기 연산자(+)
// 문자열 우선순위
console.log(1 + 1); // 2
console.log(1 + "1"); // 11
console.log("1" + "1"); // 11
// 더하기 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 문자열로 변환합니다.
// 1-2. 빼기 연산자(-)
// 숫자 우선순위
console.log(1 - "2"); // -1
console.log(1 - 2); // -1
console.log(5 - 2); // 3
console.log("five" - 2); // NaN // 숫자가 아닌 수(하지만 type of 는 number)
// 빼기 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다.
// 1-3. 곱하기 연산자(*)
// 숫자 우선순위
console.log(2 * 3); // 6
console.log("2" * "3"); // 6
console.log(2 * "3"); // 6
console.log("two" * 3); // NaN // 숫자가 아닌 수(하지만 type of 는 number)
// 곱하기 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다.
// 1-4 나누기 연산자((/)
//숫자 우선순위
console.log(6 / 3); // 2
console.log("6" / "3"); // 2
console.log("6" / 3); // 2
console.log(6 / "3"); // 2
let result1 = "six" / 3
console.log("six" / 3); // NaN // // 숫자가 아닌 수(하지만 type of 는 number)
console.log(typeof result1); // number
// 나누기 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다.
// 1-5. 나머지 연산자(%)
console.log(5 % 2) // 1 // 5 나누기 2 해서 나온 나머지
// 나머지 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다.
2. 할당 연산자(assignment operators)
// 연산자
// 2. 할당 연산자(assignment operators)
// assignment 할당 ex.오른쪽 값 value를 왼쪽 변수에 할당하는 것
// 2-1. 등호 연산자(=)
let x = 10;
console.log(x); // 10
x = 5;
console.log(x); // 5
// 2-2. 더하기 등호 연산자(+=)
let x = 10;
console.log(x); // 10
x += 5; // x = x + 5 와 같은 말이다. 원래 있던 x값에서 5를 더해줘
console.log(x); // 15
x += 5; // x = x + 5 와 같은 말이다. 원래 있던 x값에서 5를 더해줘
console.log(x); // 총 x = 10 에 + 5 총 두번이므로 // 20
// 2-3. 빼기 등호 연산자(-=)
let x = 10;
console.log(x); // 10
x -= 5;
console.log(x); // 5
// 2-4. 곱하기 등호 연산자(*=)
let x = 10;
console.log(x); // 10
x *= 5;
console.log(x); // 50
// 2-5. 나누기 등호 연산자(/=)
let x = 10;
console.log(x); // 10
x /= 5;
console.log(x); // 2
// 2-6. 나머지 등호 연산자(%=)
let x = 10;
console.log(x); // 10
x %= 3;
console.log(x); // 1
3. 비교 연산자(comparison operators)
// 연산자
// 3. 비교 연산자(comparison operators)
// 좌랑 우랑 또는 어떤 값을 비교해서 true 또는 False 를 반환하는 연산자 // 중요한 개념임
// 3-1. 일치 연산자(===)
// type(자료형)까지 일치해야 true를 반환(return)하는 연산자
console.log(2 === 2); // 숫자2 와 숫자 2가 같은가? // true
console.log("2" === 2); // 문자열2 와 숫자 2가 같은가? // false
console.log(2 === "2"); // false
// 3-2. 불일치 연산자(!==)
// 일치 연산자에 반대의 개념, type(자료형)까지 일치해야 true 반환함
console.log(2 !== 2); // 숫자 2와 숫자 2가 다르니? // false
console.log("2" !== 2); // 문자열 2와 숫자 2가 다르니? // true
console.log(2 !== "2"); // true
// 3-3. 작다(<) 연산자
// 작다 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다. 숫자 우선순위
console.log(2 > 3); // false
console.log(2 > "3"); // 숫자 2와 문자열 3보다 크니?-> 문자열 3이 숫자 3으로 자동변환 // false
console.log("2" > 3); // false
// 3-4. 크다(>) 연산자
// 크다 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다. 숫자 우선순위
console.log(2 > 3); // false
console.log(2 > "3"); // false
console.log("2" > 3); // false
// 3-5. 작거나 같다(<=) 연산자
// 작거나같다 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다. 숫자 우선순위
console.log(2 <= 3); // true
console.log(2 <= "3"); // true
console.log("2" <= 3); // true
console.log(2 <= 2); // true
// 3-6. 크거나 같다(>=) 연산자
// 크거나같다 연산자는 숫자와 문자열을 함께 사용할 경우, 자동으로 숫자로 변환합니다. 숫자 우선순위
console.log(2 >= 3); // false
console.log(2 >= "3"); // false
console.log("2" >= 3); // false
console.log(2 >= 2); // true
4. 논리 연산자(logical operators)
// 연산자
// 4. 논리 연산자(logical operators)
// Boolean(ture와 false)를 비교하는 연산자
// strict한 정도 && > ||
// 4-1. 논리곱(&&) 연산자
// 두 값이 모두 true 일때 true 반환
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
console.log(true && null); // null
console.log(true && NaN); // NaN
console.log(true && undefined); // undefined
// 4-2. 논리합(||) 연산자
// 두 값 중 하나라도 true 인 경우 true 반환
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false
console.log(true || null); // true
// 4-3. 논리부정(!) 연산자
// 결과값을 반대로 바꿈
console.log(!true); // false
console.log(!false); // true
console.log(!(2 > 1)); // false
console.log(!null); // true
console.log(!NaN); // true
console.log(!undefined); // true
let a = true;
console.log(!a); // false
5. 삼항 연산자(ternary operator)
// 연산자
// 5. 삼항 연산자(ternary operator)
// 활용 빈도 높음, 중요함
// 조건에 따라 값을 선택한다 // 항이 총 세개라서 삼항 연산자 // 조건항 결과항1 결과항 2
// 조건이 true이면 결과1항을 반환, false면 결과2항을 반환
let x = 10;
let result = (x > 5) ? "크다" : "작다"; // x가 5보다 큰가요 ? // true
console.log(result); // "크다"
let y = 20;
// 3항 연산자를 이용해서 y가 10보다 작은 경우 작다를
// console.log로 출력해주세요.
// 10보다 크다면 크다를 출력해주세요
let result1 = ( y < 10 ) ? "작다" : "크다";
console.log(result1); // 크다
6. 타입 연산자(type operators)
// 연산자
// 6. 타입 연산자(type operators)
// 6-1. typeof 연산자
console.log(typeof 123); // "number"
console.log(typeof "123"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof function(){}); // "function"
함수
더보기
//Function Declaration
function add(x, y) {
return x + y;
}
console.log(add(1, 3)); // 4
//Function Expression
let add1 = function(a, b) {
return a + b;
}
let result1 = add1(10, 20);
console.log(result1); // 30
1. 함수 정의하기
// 함수 = function(기능)
// input, output 을 가지고 있는 단위
// 기능의 단위로 묶은 다음 재활용한다.
// 1. 함수 정의하기
// function (input) {} // 기본 함수식은 function, 소괄호, 중괄호, 매개변수(=input=매개체가 되는 변수)로 이루어진다.
// 1-1. 함수 선언문(function declaration)
// 선언문을 통해 함수 정의하기
function add(x, y) { // add 는 함수이름
// 함수 내부에서 실행할 로직 넣기
}
// 두 개의 숫자를 입력 받아서 덧셈을 한 후 내보내는 함수
function add (x, y) {
return x + y; // return = 출력에 필요한 키워드
}
// 위 식을 풀어서 보면
function add (x, y) {
let result;
return result; // result 는 선언 먼저 해줘야함
}
// 1-2. 함수 표현식(function expression)
// 변수를 선언하는 것과 비슷함
let add2 = function(x, y) {
return x + y;
}
2. 함수 호출하기
// 2. 함수 호출하기
// 호출한다 = 사용한다
// 함수명(input)
// 예시 : add(2, 3)
function add(x, y) {
return x + y;
}
console.log(add(2, 3)); // 5
// 또 다른 예시
let addResult = add(3, 4);
console.log(add); // 7
// 연습
// add2를 가지고 10과 20을 더한 값을 출력하라
// 1. 함수 정의하기
// 함수선언문 방법으로 정의, console.log에 함수식과 input 모두 넣어 호출
function add2(x, y) {
return x + y;
};
console.log(add2(10, 20);) // 30
// 함수표현식으로 정의, result 변수 정의 후 호출
let add2 = function(x, y){
return x + y; // return 문 뒤에 오는 값 : 반환값
}
let result2 = add2(10, 20);
console.log(result2); // 30
3. 함수 매개변수와 반환값
// 3. 함수 매개변수와 반환값
// 3-1. 함수 매개변수
// add라는 함수가 x와 y라는 두 개의 매개변수를 받아들인다. 함수를 호출할 때는 매개변수에 값을 전달한다
function add(x, y) {
return x + y;
}
console.log(add(2, 3)); // 5
// 3-2. 함수 반환값
// add라는 함수가 x와 y라는 두 개의 매개변수를 받아들이고, 이를 더한 값을 반환합니다. 함수를 호출한 결과값을 변수에 할당하여 사용할 수 있습니다.
function add(x, y) {
return x + y;
}
let result = add(2, 3);
console.log(result); // 5
4. 함수 스코프 (Scope)
// 함수 스코프
// 함수 스코프(scope) : 변수의 영향 범위
// 1. 전역 스코프(global scope)
// 전체 영역에서 영향을 끼칠 수 있다.
let x = 10; // 변수 x는 전체 영역에서 선언이 된 상태
function printX() {
console.log(x); // 함수 내에서도 x 변수값이 적용됨
}
printX(); // 10 // 함수 밖에서도 모두 x 변수값이 적용됨
// 전역 스코프에서 변수 x를 선언하고, 함수 printX에서 변수 x를 참조합니다. 전역 스코프에서 선언된 변수는 어디에서든지 참조할 수 있습니다.
// 2. 지역 스코프(local scope)
// 함수 내에서만 영향을 끼칠 수 있다.
function printX() {
let x = 10; // 함수 안에서 선언된 x 변수, 함수 밖을 넘어가면 참조할 수 없는 값이 된다
console.log(x);
}
printX(); //
// 위의 예제에서는 지역 스코프에서 변수 x를 선언하고, 함수 printX에서 변수 x를 참조합니다. 지역 스코프에서 선언된 변수는 해당 함수 내에서만 참조할 수 있습니다.
// 3. 블록 스코프(block scope)
if (true) {
let x = 10;
console.log(x);
}
console.log(x); // ReferenceError: x is not defined
// if문 내에서 변수 x를 선언하고, 이를 출력합니다. if문 내에서 선언된 변수는 해당 블록 내에서만 참조할 수 있습니다.
5. 화살표 함수
// 화살표 함수
// ES6 부터 등장한 신 문법이다.
// 기존 함수 식
function add(x, y) {
return x + y;
}
// 1. 기본적인 화살표 함수
let add = (x, y) => {
return x + y;
}
console.log(add(2, 3)); // 5
// 2. 한 줄로 된 화살표 함수
// 한줄 화살표 함수를 쓸 수 있는 조건은 중괄호 안에 식이 한줄이면 가능하다
let add = (x, y) => x + y;
console.log(add(2, 3)); // 5
// 위의 예제에서는 한 줄로 된 화살표 함수를 사용하여 add라는 함수를 선언하였습니다. 함수 내부에 return문이 한 줄로 작성될 경우, 중괄호와 return 키워드를 생략할 수 있습니다.
// 3. 매개변수가 하나인 화살표 함수
let square = x => x * x;
console.log(square(3)); // 9
// 위의 예제에서는 매개변수가 하나인 화살표 함수를 사용하여 square라는 함수를 선언하였습니다. 매개변수가 하나일 경우에는 괄호를 생략할 수 있습니다.
// 위 식의 history 를 살펴보자면
function square(x) {
return x;
}
// ->
let square = (x) => x;
// ->
let square = x => x;
728x90
반응형
'부트캠프 개발일지 2023-2024 > JavaScript 자바스크립트' 카테고리의 다른 글
[2주차] 자바스크립트 문법 종합반 : 반복문, break continue (0) | 2023.10.13 |
---|---|
[2주차] 자바스크립트 문법 종합반 : 배열, 배열메소드 (0) | 2023.10.13 |
[2주차] 자바스크립트 문법 종합반 : 객체, 객체 메소드 (0) | 2023.10.13 |
[2주차] 자바스크립트 문법 종합반 : 조건문, 조건문중첩, 반복문 (0) | 2023.10.13 |
[2주차] 자바스크립트 문법 종합반 : JS란, 변수와 상수, 데이터 타입과 형 변환 (0) | 2023.10.12 |