TIL

2주차 월요일 TIL

news0516 2024. 11. 4. 20:36

오늘 배운것
변수는 값을  저장하기 위한 이름, 변수에 할당된 값은 변수의 데이터 타입에 따라 다르게 처리된다.
console.log(typeof 변수이름)을 통해 타입을 확인 가능
- var는 중복 선언이 가능하지만, let과 const는 불가능
- let과 var는 재할당이 가능하지만, const는 재할당이 불가능


문자열 결합: concat() 메서드를 사용하여 문자열을 결합
문자열 자르기: substr() 및 slice() 메서드를 사용하여 문자열의 일부를 잘라낼 수 있음

hello, world! 문자열의 인덱스 번호

let str = "hello, world!";
console.log(str3.substr(7, 5)); // 시작 위치, 시작위치부터 몇개까지
console.log(str3.slice(7, 12)); // 시작 위치, 끝 위치

// 출력결과
// world
// world


문자열 검색: search() 메서드를 사용하여 특정 문자열의 위치를 찾을 수 있음
문자열 대체: replace() 메서드를 사용하여 특정 문자열을 다른 문자열로 대체
문자열 분할: split() 메서드를 사용하여 문자열을 배열로 분할
> split() 메서드를 사용 시 배열형태로 반환

암시적 형 변환

let result1 = 1 + "2";
console.log(result1);
console.log(typeof result1);

// 출력결과
// 12
// string

숫자와 문자를 더했을 때 12라는 문자열로 변환 > 자동으로, 암시적으로 변환
문자열과 다른 데이터타입이 더하기 연산자로 만날 시 문자열이 우선된다.

let result3 =  1 - "2";
console.log(result3);
console.log(typeof result3);

let result4 =  "2" * "3";
console.log(result4);
console.log(typeof result4);

// 출력결과
// -1
// number
// 6
// number

더하기 연산자가 아닌 다른 연산자가 나올 시 숫자가 우선된다.(변환이 불가하면 NaN)

명시적 형변환
어떤 타입으로 형변환을 할지 명시해야한다.

console.log(Boolean(0));
0이라는 값을 boolean 타입으로 변경
let result9 = String(undefined);
undefined를 문자열 타입으로 변경 > "undefined"
let result10 = Number("123");
123이라는 문자열을 Number 타입으로 변경

연산자 - 기본적인 사직연산, 나머지 구할 수 있다.

할당연산자

등호 연산자(=)
let x = 10; // x라는 변수 선언, 10을 할당
추가로 -=, +=, *=로 더하기, 빼기, 곱하기 등등 가능
<, >등 부등호 사용

일치연산자(===)
타입까지 일치해야 true 를 반환하는 연산자

console.log(2 === 2); // true
console.log("2" === 2); // false


불일치연산자(!==)
타입까지 일치해야 false를 반환하는 연산자

console.log(2 !== 2); // false
console.log("2" !== 2); // true


논리곱연산자, AND연산자 (&&)
두 값이 모두 true 일 때만 true 반환

console.log(true && true); //true
console.log(true && false); // flase


논리합연산자, OR연산자(||)
두 값중 하나라도 true일 때 true 반환

console.log(false || true); // true
console.log(false || false); // flase


논리부정연산자, NOT연산자(!)
값을 반대로 바꿈

console.log(!true); // false


삼항연산자
조건에따라 값을 선택할 수 있음

// (조건) ? "true일때 반환" : "false일때 반환";
let x = 10;
let result = (x > 5) ? "크다" : "작다";
console.log(result); 

// 크다


화살표함수

// 화살표 함수
// es6 산 문법
function add (x,y) {
    return x + y
}

// 1-1. 기본적인 화살표 함수
let arrowfunc01 = (x,y) => {
    return x+y
}

// 1-2. 한 줄로
let arrowfunc02 = (x, y) => x + y
// 중괄호 안 줄이 한줄일때만 가능

function testfunc (x) {
    return x;
}

// 화살표함수로 바꾸면
let arrowfunc03 = x => x
// 매개변수도 하나일 때 괄호 생략 가능


조건문
1. if문 (true or false가 출력되는 조건)

// let x = 10;


if (x > 0) {
	//조건이 true라면 main logic이 실행
	//조건이 false라면 실행 x
	console.log("x는 양수입니다.");
}

// x는 양수입니다.


2. if-else문

if (x > 0) {
     // main logic #1 - 조건에 맞는 경우 실행 로직
     console.log("x는 양수입니다.")
 } else {
    // main logic #2 - 조건에 맞지 않는 경우 실행 로직
    console.log("x는 음수입니다.")
 }


3. if - else if - else

if -else if - else
let x = -5;
if (조건1) {
     // main logic #1
    
 } else if (조건2){
     // main logic #2
    
} else {
	// 나머지 경우
}


4. switch 문

let fruit = "바나나";

switch (fruit) {
    case "사과" :
        console.log('사과입니다.');
        break; // 포함 유의
    case "바나나" :
        console.log('바나나입니다.');
        break;
    case "키위" :
        console.log('키위입니다.');
        break;
    default: // 나머지 경우
        console.log('아무것도 아닙니다.');
}

// 바나나입니다.


조건문 중첩

let age = 14;
let gender = "여성";

// 미성년자 구분
if (age >= 18) {
    // console.log("성인입니다.");
    if (gender === "여성") {
        console.log("성인 여성입니다.")
    } else {
        console.log("성인 남성입니다.")
    }

} else {
    // console.log("미성년입니다.")
    if (gender === "여성") {
        console.log("미성년 여성입니다.")
    } else {
        console.log("미성년 남성입니다.")
    }
}

 
// 미성년 여성입니다.



조건부 실행

let x = 10;

(x>0) && console.log("x는 양수입니다.")
// (조건) 만족시 실행되게 해줘

// 삼항 연산자와 단축평가
// or 조건(||)
let y;
let z = y||20;
// y가 indefined이기 때문에 ||연산자는 오른쪽 조건을 평가한다.
// z = 20


논리합 연산자 ||는 조건문의 평가에서 사용될 때와 삼항 연산자 내에서의 사용이 다르다


JavaScript에서 "truthy"로 평가되는 값
true
모든 비어 있지 않은 문자열 (예: "hello", ' ' 등)
모든 0이 아닌 숫자 (예: 1, -1, 3.14 등)
모든 객체 (예: {}, [], function() {} 등)
Date 객체, RegExp 객체 등

JavaScript에서 "falsy"로 평가되는 값
false
0
-0
0n (BigInt 0)
"" 또는 '' (빈 문자열)
null
undefined
NaN

Object.values() 메서드는 주어진 객체의 모든 값을 배열로 반환


오늘 til은 배운내용 거의 전부를 서술한 것 같다. 글을 쓰며 기록하며 배운것을 점검하는 효과를 크게 느꼈다. 팀장님이 팀에게 내주신 퀴즈를 푸는데 시간을 꽤  썻고
삼항 연산자에서 반환값을 설정하는 부분에 조건을 부여하여 문제를 해결하는 방법을 터득했다.

function clamp3(value, min, max) {
    return (value < min) ? min :(value > max) ? max : value;
};

//value 가 min보다 작으면[미만] min
//그리고 value 가 max보다 크면[초과] max 값을 리턴

'TIL' 카테고리의 다른 글

2주차 수요일 TIL  (1) 2024.11.06
2주차 화요일 TIL  (0) 2024.11.05
1주차 금요일 TIL  (1) 2024.11.01
1주차 목요일  (0) 2024.10.31
1주차 수요일 TIL  (0) 2024.10.30