드디어 CSS가 끝나고 오늘부터 JavaScript를 배우기 시작했다. JavaScript의 첫인상은 기대와는 상당히 많이 달랐다. CSS처럼 웹 개발에서 기능적인 부분만 담당하는 언어인 줄 알았는데 Python처럼 범용 프로그래밍 언어였다. 하지만 급하게 만들어진 언어라 아직도 이상한 부분이 꽤 많이 남아있는 것 같았다.
transition: 속성명 지속시간 변화곡선 지연시간;@keyframes : CSS의 애니메이션 효과를 직접 지정하는 기능@keyframes 이름 {
from {시작 스타일;}
to {끝 스타일;}
}
.class {
animation: 이름 지속시간 형태 반복횟수;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.spinner {
width: 50px;
height: 50px;
border: 3px solid black;
border-top: 3px solid white;
border-radius: 50%;
/* animation 적용 */
animation: spin 1.4s linear infinite;
}
console.log() = 파이썬의 print()// 변수의 선언
var a;
console.log(a);
// 초기화, 값의 할당
a = 10;
console.log(a);
// 값의 재할당
a = 100;
console.log(a);
// 변수의 중복 선언
var a = 1000;
console.log(a);
// 변수의 선언
let b;
console.log(b);
// 초기화
b = 3.14;
console.log(b);
// 재할당
b = "재할당";
console.log(b);
// 변수의 중복선언 불가
let b = 100;
// 변수의 선언만 하는 것 불가
const c;
// 변수의 선언과 초기화를 함께
const c = 1000;
console.log(c);
// 재할당 불가
c = 10000;
console.log(c);
let myVar// 숫자 시작 불가능
let 1
// 키워드 사용 불가능
let let
let if
// 변수에 공백 불가능
let my var;
// 특수문자 : _ $ 사용 가능
let $myVar;
let my_var;
let text = "안녕하세요";
console.log(text);
// 안녕하세요
let text2 = " 반갑습니다";
console.log(text + text2); // 문자열의 결합
// 안녕하세요 반갑습니다
let name = "태현";
let age = 27;
console.log("안녕하세요 저는 " + name + "입니다. 나이는 " + age + "살입니다.");
// 안녕하세요 저는 태현입니다. 나이는 27살입니다.
console.log(`안녕하세요 저는 ${name}입니다. 나이는 ${age}살입니다.`);
// 안녕하세요 저는 태현입니다. 나이는 27살입니다.
let num = 100;
let num2 = 3.14;
console.log(num, num2);
// 100 3.14
let isTrue = true;
let isFalse = false;
console.log(isTrue, isFalse);
// true false
let greeting = null;
console.log(greeting);
greeting = "안녕";
console.log(greeting);
// null
// 안녕
let x;
console.log(x);
// undefined
let fruits = ["사과", "바나나", "수박", "포도", "딸기"];
console.log(fruits);
// Array(5)
// 0: "사과"
// 1: "바나나"
// 2: "수박"
// 3: "포도"
// 4: "딸기"
// length: 5
console.log(fruits[4]);
console.log(fruits[-1]);
// 딸기
// undefined
.at(idx) 사용 시 음수 인덱싱 가능console.log(fruits.at(4));
console.log(fruits.at(-1));
// 딸기
// 딸기
fruits[3] = "샤인 머스킷";
console.log(fruits);
// Array(5)
// 0: "사과"
// 1: "바나나"
// 2: "수박"
// 3: "샤인 머스킷"
// 4: "딸기"
// length: 5
const korean = [
["가", "나", "다"],
["라", "마", "바"],
["사", "아", "자"],
];
console.log(korean[1][1]);
// 마
let cat = {
name: "장화",
age: 10,
isCute: true,
};
console.log(cat);
// age: 10
// isCute: true
// name: "장화"
console.log(cat.name);
console.log(cat.age);
console.log(cat.isCute);
// 장화
// 10
// true
console.log(cat["name"]);
console.log(cat["age"]);
console.log(cat["isCute"]);
// 장화
// 10
// true
let myKey = "name";
console.log(cat[myKey]);
// 장화
typeof 사용console.log(typeof "문자"); // string
console.log(typeof 100); // number
console.log(typeof 3.14); // number
console.log(typeof true); // boolean
console.log(typeof false); // boolean
console.log(typeof null); // object? -> 설계상의 실수
console.log(typeof undefined); // undefined
console.log(typeof fruits); // object
console.log(typeof cat); // object
console.log("2" + 3);
console.log("" + 100);
// '23'
// '100'
String()let str1 = 123;
let str2 = true;
let str3 = undefined;
console.log(String(str1), typeof String(str1));
console.log(String(str2), typeof String(str2));
console.log(String(str3), typeof String(str3));
// 123 string
// true string
// undefined string
.toString() 사용console.log(str1.toString(), typeof str1.toString());
// 123 string
Number()let n1 = "123";
let n2 = false;
let n3 = "문자열";
let n4 = 3.14;
let n5 = "3.14";
console.log(Number(n1), typeof Number(n1));
console.log(Number(n2), typeof Number(n2));
console.log(Number(n3), typeof Number(n3));
console.log(Number(n4), typeof Number(n4));
// 123 'number'
// 0 'number'
// NaN 'number'
// 3.14 'number'
console.log(Number(undefined), typeof Number(undefined));
console.log(Number(null), typeof Number(null));
// NaN 'number'
// 0 'number'
parseInt / parseFloat 사용console.log(parseInt(n4, 10));
console.log(parseFloat(n5));
// 3
// 3.14
let a = 20;
let b = 3;
console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(a / b);
console.log(a % b);
console.log(a ** b);
// 23
// 17
// 60
// 6.666666666666667
// 2
// 8000
// 몫 나누기 연산자 없음== / ===!= / !==== , != : 값만 비교, 자료형은 비교 X (사용X)=== , !== : 값과 자료형 모두 비교console.log(1 == "1"); // true
console.log(1 != "1"); // false
console.log(1 === "1"); // flase
console.log(1 !== "1"); // true
Python을 다뤄보니 확실히 다른 언어도 이해하기 쉬워져서 상당히 많은 내용을 다룬 것 같다. 그런데 Python만 다루다가 JavaScript를 다루니까 이상하게 느껴지는 부분도 많고, 적응이 안 되는 부분이 상당히 많은 것 같다. 과연 앞으로 JavaScript에 잘 적응할 수 있을지 걱정이 된다.
MY NOTION (CSS. 02)
MY NOTION (JavaScript. 01)
MY NOTION (JavaScript. 02)