카테고리 없음

2023-05-22 JavaScript 1주차.

sangwoo_rhie 2023. 5. 22. 21:11

01. 변수, 상수

// 변수, 상수
// 변수 : 기억하고 싶은 값을 메모리에 저장한다. 메모리에 저장된 값을 읽어들여서 재사용한다.

// 변수의 5가지 주요 개념

// 변수 이름: 저장된 값의 고유 이름
// 변수 값: 변수에 저장된 값
// 변수 할당: 변수의 값을 저장하는 행위
// 변수 선언: 변수를 사용하기 위해 컴퓨터에 알리는 행위
// 변수 참조: 변수에 할당된 값을 읽어오는 것

// 변수를 선언할 수 있는 3가지 방법 : var, let, const
// 1. var
var myVar = "Hello World";
var myVar = "Test1";
myVar = "GoodBye";
console.log(myVar);

// 2. let
let myLet = "Hello World1";
// let myLet = "Test2";
myLet = "GoodBye 1"
console.log(myLet);

// 3. const
const myConst = "Hello World2";
// const myConst = "Test3";
myConst = "GoodBye 2"
console.log(myConst);



 

02. 데이터타입 숫자

// 데이터 타입
// runtime : run 하는 time
// 코드를 작성할 때가 아니라, 실제 코드가 실행될 때
// -> 앞에 터미널에 코드가 실행될 때
// 그 때, 데이터 타입이 결정된다.
// java : string = "abc";
// javaScript : const a ="abc";

// 1. 숫자 타입
// 1-1 정수형 타입

let num1 = 10;
console.log(num1);
console.log(typeof num1);

// 1-2 실수형 타입 (float)
let num2 = 3.14;
console.log(num2);
console.log(typeof num2);

// 1-3 지수형 숫자(Exp)
let num3 = 2.5e5; //2.5 x 10^5 (2.5곱하기 10의 5제곱)
console.log(num3);
console.log(typeof num3);

// 1-4.
// NaN = Not a Number 숫자가 아닌값을 변환하려고할때 오류뜸.
let num4 = "Hello" / 2;
console.log(num4);

// 1-5. Infinity (무한대)
let num5 = 1 / 0;
console.log(num5);
console.log(typeof num5);

// 1-6. Infinity (마이너스 무한대)
let num6 = -1 / 0;
console.log(num6);
console.log(typeof num6);

 

03. 데이터타입 문자

// 2.문자 : string (문자열 = 문자의 나열)
// 문자열은 작은따옴표 ' ' 또는 큰따옴표 " " 로 감싼다.

let str = "Hello World!";
console.log(str);
console.log(typeof str);

// 2-1 문자열 길이 확인하기 (length)
console.log(str.length);

// 2-2 문자열 결합하기 (concatenation)
let str1 = "Hello, ";
let str2 = "World!";
let result = str1.concat(str2);
console.log(result);

// 2-3 문자열 자르기 (substring)
let str3 = "Hello, World!";
console.log(str3.substr(7, 5));
console.log(str3.slice(7, 12));

// 2-4 문자열 검색 (search)
let str4 = "Hello, World!";
console.log(str4.search("World"));

// 2-5 문자열 대체 (replace)
let str5 = "Hello, World!";
let result01 = str5.replace("World", "JavaScript");
console.log(result01);

// 2-6. 문자열 분할 (split)
let str6 = "apple, banana, kiwi";
let result02 = str6.split(",");
console.log(result02);

 

04. 기타 데이터타입

//불리언 (Boolean) , 참과 거짓 true, false
let bool1 = true;
let bool2 = false;

console.log(bool1);
console.log(typeof bool1);
console.log(bool2);
console.log(typeof bool2);

//undefined : 값이 없음. 미지정
// let x;
// console.log(x);

//null : 개발자가 의도적으로 값이 존재하지 않음을 '명시적'으로 나타내는 방법
let y = null;
console.log(y);

//object : 객체 => key-value pair
let person = {
    name : 'choi',
    age : 20,
    isMarried : true
}
console.log(typeof person);


//array : 배열 (대괄호로 감싸줌)
// 여러개의 데이터를 순서대로 저장하는 데이터 타입
//각 항목들은 순서대로 들어가있기 때문에, 위치에 대한 데이터(index)가 있다.
// 인덱스는 1이 아닌 0부터 시작한다.

let number = [1, 2, 3, 4];
let fruits = ['apple', 'banana', 'kiwi'];
 

 

05. 형 변환

// 형 변환 (형태를 바꿈)
// 명시적 형변환 : 개발자가 의도한 형변환
// 암시적 형변환 : 개발자가 의도하지 않았고, 자동적으로 바뀌는 형변환

// 1.암시적 형 변환

// // 1-1. 문자열
let result1 = 1 + "2";
console.log(result1);
console.log(typeof result1);

// // 더하기 연산자로 숫자(1)와 문자("2")가 만나면 문자열(string)으로 바뀜

let result2 = "1" + true;
console.log(result2);
console.log(typeof result2);

// // 문자열("1")과 다른 데이터타입(불리언)만났을때 역시 문자열(string)으로 바뀜
// // 즉, 문자열과 다른 데이터를 더하기(+)를 할 때, 문자열이 우선시된다.
// // { }, null, undefined + "1" => 다 문자열화 된다.

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

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

// 더하기(+)연산자가 아닌 다른 연산자 빼기(-),곱하기(*),나누기(/)에서는 항상 숫자가 우선시됨.


// 2. 명시적 형 변환

// 2-1. Boolean
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));
console.log("-----------------------");
console.log(Boolean("false"));
console.log(Boolean({}));
// Boolean(괄호) 값을 Boolean타입으로 바꾸고 싶다.
// boolean에서 빈문자열이 아닌, 값이 있는 문자열(문자"false", 빈객체{ })은 true로 나옴.

// 2-2. 문자열 명시적 형 변환
let result5 = String(123);
console.log(result5);
console.log(typeof result5);

let result6 = String(true);
console.log(result6);
console.log(typeof result6);

let result7 = String(false);
console.log(result7);
console.log(typeof result7);

let result8 = String(null);
console.log(result8);
console.log(typeof result8);

let result9 = String(undefined);
console.log(result9);
console.log(typeof result9);


// 1-3. Number타입 형 변환
let result10 = Number("123");
console.log(result10);
console.log(typeof result10);