오늘은 10시부터 6시까지 AWS 강의를 들었습니다
이 내용도 나중에 정리할 수 있다면 정리해 올려보겠습니다 :)
자바스크립트에는 여덟가지 기본 자료형이 있습니다.
자바스트립트의 변수는 자료형에 관계없이 모든 데이터를 담을 수 있습니다.
이는 같은 변수가 문자열일 수도 있고 숫자가 될 수도 있다는 이야기입니다.
// 에러 안남!!!
let message = "Hello!!";
message = 12345;
이와 같이 변수에 저장되는 값의 타입을 언제든지 바꿀 수 있는 언어를 동적타입 언어라고 합니다.
let number = 123;
n= 123.4;
숫자형은 정수 및 실수형을 나타냅니다.
숫자형과 관련된 연산은 곱셉* , 나눈셈 / , 덧셈 + , 뺄셈 - 등이 대표적입니다.
자바스크립트에선 문자열을 따옴표로 묶습니다.
let string = "Hello"; //큰 따옴표
let string2 = 'Hello World'; //작은 따옴표
let backtick = `Hello ${name}`; //역 따옴표(백틱)
자바스크립트는 큰따옴표와 작은따옴표의 차이를 두지 않습니다.
역 따옴표로 변수나 표현식은 감싸고 ${...} 안에 넣어주면 문자열 중간에 편리하게 넣을 수 있습니다.
let name = 'kim';
alert(`Hello ${name}`);
alert(`1+2 = ${1 + 2}`);
불린형은 true 와 false 두 가지 값만 갖는 자료형입니다.
긍정이나 부정을 의미하는 값을 저장할 때 사용한다. true 는 긍정 false 는 부정을 의미합니다.
let isGreater = 4 > 1;
alert(isGreater); // true;
불린형은 논리 연산자에서 주로 쓰입니다.
let name = null;
자바스크립트에서 null은 존재하지 않는 값, 비어 있는 값, 알 수 없는 값을 나타내는 데 사용합니다.
undefined는 '값이 할당되지 않은 상태'를 나타냅니다.
변수는 선언했지만 값을 할당하지 않았다면 해당 변수에 undefined 가 자동으로 할당됩니다.
let name;
alert(name); // 'undefined' 가 출력된다.
typeof 연사자는 인수의 자료형을 반환합니다. 자료형에 따라 처리 방식을 다르게 하고싶거나 변수의 자료형을 알아내고자 할때 사용합니다.
typeof undefined // "undefined"
typeof 0 // "number"
typeof true // "boolean"
typeof "foo" // "string"
함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 변환됩니다. 이런 과정을 형 변환 이라고 합니다.
문자형으로 형 변환은 문자형의 값이 필요할 때 일어납니다.
alert 함수는 매개변수로 문자형을 받기 때문에alert(값)에서 값이 문자형이여야 합니다.
만약 다른 형의 값이 들어가면 자동으로 문자형으로 변환됩니다.
String(값) 함수를 이용해 값을 문자열로 변환 할 수도 있습니다.
let isOK = true;
alert(typeof isOK); //boolean
isOK = String(isOK);
alert(typeof isOK); // string
숫자형으로 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어납니다.
alert("4" / "1"); // 4 , 문자열이 숫자형으로 자동변환된다.
Number(값) 함수를 사용하면 주어진 값을 숫자형으로 명시해서 변환할 수 있습니다.
let str = "123";
alert(typeof str); // string
let num = Number(str);
alert(typeof num); // number
불린형으로 변환은 논리 연산을 수행할 때 발생합니다.
Boolean(값)을 사용하면 명시적으로 불리어느로 형 변환을 수행할 수 있습니다.
alert( Boolean(1) ); // 숫자 1(true)
alert( Boolean(0) ); // 숫자 0(false)
alert( Boolean("hello") ); // 문자열(true)
alert( Boolean("") ); // 빈 문자열(false)
let x = 1;
x = -x;
alert( x ); // x = -1
덧셈연산자 +는 보통 숫자를 더한 결과를 반환하지만 피연산자로 문자열이 전달되면 덧셈 연산자는 문자열을 연결합니다.
let hw = "Hello" + " World";
alert(hw); // Hello World
피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환됩니다.
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
alert(2 + 2 + '1' ); // '221'이 아니라 '41'이 출력된다.
변수에 연산자를 적용하고 그 결과를 같은 변수에 저장해야 하는 경우가 생깁니다
let number = 3;
number = number+5;
이때 += *= /= -= 같은 복합 할당 연산자를 이용하면 쉽게 저장할 수 있습니다.
let number = 3;
number += 5; // number = 3+5
숫자를 하나 늘리거나 줄이는 자주 있는 연산입니다.
let counter = 3;
counter++; // counter = counter + 1과 동일.
alert( counter ); // 4
let counter = 3;
counter--; // counter = counter - 1과 동일.
alert( counter ); // 2
증감 연산자는 변수에만 사용가능!!!!
비교 연산자는 불린형을 반환합니다.
alert( 2 > 1 ); // true
alert( 2 == 1 ); // false
alert( 2 != 1 ); // true
반환된 불린값은 변수에 할당 할 수 있습니다.
let result = 10 > 1; // 비교 결과를 변수에 할당
alert( result ); // true
문자열을 비교할 때에는 유니코드의 순서대로 크기를 비교합니다
비교하려는 값이 자료형이 다르면 값들을 숫자형으로 바꿉니다.
if문은 괄호 안에 들어가는 조건을 평가하는데 그 결과가 true이면 코드 블록이 실행됩다.
let age = 20;
if (age<20) alert("미성년자입니다");
위 예시에서 age가 조건에 부합하기 때문에 코드블럭이 실행되어 "미성년자입니다" 라고 창이 뜹니다.
조건문으로 여러 문들을 실행하고 싶으면 중괄호로 코드블록을 감싸야 합니다.
if (answer == 15) {
alert( "정답입니다!" );
alert( "아주 똑똑하시네요!" );
}
실행되는 코드 구문이 한줄이여도 중괄호를 씌워주는 것이 코드 가독성에 좋습니다.
if문엔 else 절을 붙일 수 있다. else 뒤에 이어지는 코드 블록은 조건이 거짓일 때 실행됩니다.
let age = 20;
if (age<20) {
alert("미성년자입니다");
}else{
alert("성인입니다");
}
조건을 여러개를 처리할 때 else if 를 사용합니다.
let age = 20;
if (age<0) {
alert("나이는 음수일 수 없습니다");
}else if(age<20){
alert("미성년자입니다");
}else{
alert("성인입니다");
}
자바스크립트는 위에서 부터 조건을 확인하며 실행합니다.
조건부 연산자를 사용하면 간단한 조건문을 짧게 작성할 수 있습니다.
let isAdult = (age >= 20) ? true : false;
// 위아래 두 식은 같은 식이다.
if(age >= 20){
isAdult = true;
}else{
isAdult = false;
}
age>=20을 만족하면 isAdult 변수에 true, 만족하지 않으면 false가 할당됩니다.
age>=20 옆의 괄호는 생략 가능합니다.
자바스크립트에는 세 종류의 논리 연산자가 있습니다.
OR 연산자는 두개의 수직선 기호로 표시합니다.
result = a||b
인수중 하나라도 true이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
let hour = 9;
if (hour < 10 || hour > 18){
alert( '영업시간이 아닙니다.' );
}
두 개의 앰퍼샌드를 연달아 쓰면 AND 연산자 &&를 만들 수 있습니다.
result = a&&b
인수 두가지 다 true여야지 true를 반환합니다.
let hour = 12;
let minute = 30;
if (hour == 12 && minute == 30) {
alert( '현재 시각은 12시 30분입니다.' );
}
논리 연산자 NOT은 !를 써서 만들 수 있습니다.
result = !a
NOT연산자는 인수를 하나만 받고 인수의 불린값의 역을 반환합니다.
alert(!true); // false
alert(!false); // true
개발을 하다 보면 특정 동작을 반복해야 하는 경우가 생깁니다.
이때 반복문을 사용하면 편하게 반복할 수 있습니다.
while문의 문법은 다음과 같습니다
while(조건){
//반복할 코드
}
조건이 참이라면 반복문 안의 코드가 실행됩니다
let i = 0;
while (i < 5) { // 0, 1, 2, 3, 4가 출력된다.
alert( i );
i++;
}
위 코드는 i<5 를 만족할 때까지 i에 1을 더하며 i 값을 출력합니다.
'do while'반복문은 'while'반복문과는 다르게 조건이 본문 아래에 위치합니다.
let i = 0;
do {
alert( i );
i++;
} while (i < 5);
'do while'반복문은 반복문을 한번이라도 실행시키고 싶을때 사용합니다
가장 많이쓰는 반복문!!!!!
for(let i = 0 ; i < 5 ; i++){
alert(i);
}
위 식의 let i = 0 부분은 초기식, i<5 부분은 조건식, i++ 부분은 증감식이라고 합니다.
while , do while 의 예시식과 같은 출력을 합니다.
반복문은 대부분 false가 되면 빠져나오지만
특별한 지시자인 break 를 사용하면 언제든 원하는 때에 반복문을 빠져나올 수 있습니다.
let sum = 0;
while (true) {
let value = +prompt("숫자를 입력하세요.", '');
if (!value) break; // break!!!!
sum += value;
}
alert( '합계: ' + sum );
break가 쓰인 줄에서 반복문이 참이 된다면 while반복문은 중단되고 그 다음인 alert가 실행됩니다.
continue 지시자는 break 의 약한 버전이다. continue는 전체 반복문을 멈추진 않고 실행 중인 반복이 다음 반복으로 넘어갑니다.
for (let i = 0; i < 10; i++) {
// 조건이 참이라면 남아있는 본문은 실행X.
if (i % 2 == 0) continue;
alert(i); // 1, 3, 5, 7, 9가 차례대로 출력됨
}
복수의 if 조건문은 switch 문으로 대체 가능합니다.
switch문은 하나 이상의 case 문으로 구성되는데 default문도 있지만 필수는 아닙니다.
let a = 2
switch(a) {
case 1:
alert('a값이 1입니다');
break;
case 2:
alert('a값이 2입니다');
break;
case 3:
alert('a값이 3입니다');
break;
default:
alert('이상한 값이에요!');
break;
}
코트가 같은 case 는 한데 묶을 수 있습니다.
let a = 2
switch(a) {
case 1:
alert('a값이 1입니다');
break;
case 2:
case 3:
alert('a값이 1이 아닙니다');
break;
default:
alert('이상한 값이에요!');
break;
}
이러면 a가 2와 3일 때 모두 'a값이 1이 아닙니다'가 출력됩니다.