
📢 웹 페이지에서 복잡한 기능을 구현할 수 있도록 하는 스크립팅 언어 또는 프로그래밍 언어
✔️ 내장 방식
<script>
alert("hello");
</script>
html 페이지 안에 내장된 방식으로 위치는 어디서나 사용이 가능하다❕
✔️ 링크 방식
Javascript 파일을 따로 만들어서 링크하는 방식
<script src="./index.js"></script>
링크 방식 또한 위치는 상관없다
(1) 화면 출력
console.log("text"); 브라우저 콘솔 화면에 출력alert("text"); 브라우저 안내메시지로 출력(2) 변수( var / let / const )
var number = 4; // 선언과 할당
var number; // 재선언
number = 5; // 재할당
💡 var 사용은 지양해야 한다!
재선언은 같은 공간을 가르키며, 의도치 않은 에러를 발생시킬 수 있기 때문이다.
let number = 4;
number = 5;
const number = 4;
(3) 자료형
✔️ 기본형 (Primitive)
let name = "홍길동";let number = 123;let opacity = 0.7;let checked = true;let undef;
console.log(undef) // undefined 출력
let empty = null🛠️ 문자 + 변수를 동시에 쓰고 싶을 때!
✔️ 객체 (Object) : 기본형이 아닌 것들
let fruits = ["orange", "apple", "banana"]
console.log(fruits) // ["orange", "apple", "banana"] 출력
console.log(fruits[1]) // apple 출력
let cat = {
name: "나비",
age: 1,
mew: function() {}
};
(4) 자료형을 알려주는 typeof
console.log(typeof 3); // number 출력
(5) 형 변환
✔️ 문자열로
String() : 어떤 형태이든 문자로 형변환
String(true);
toString() : null, undefined 형변화 시 오류
a.toString();
(false).toString();
✔️ 정수로
Number() : boolean과 숫자 타입의 문자열만 형변환, 소수점 표시 가능
Number(true) // 1
Number('10')
parseInt() : 진법 표기 가능
parseInt('10', 10);
(6) 연산자
💡 비교 연산자 ==, === 둘의 차이는?
=== 는 자료형까지 동일해야 한다
ex) "123" === 123 // false
(7) 함수
함수는 특정 작업을 수행하기 위해 독립적으로 설계된 코드 집합이다.
✔️ 함수 선언 방식
function hello () { ... }let hello = function () { ... }📢 특정 조건일 때만 실행하고 싶은 구문이 있을 때 사용한다.
(1) if문
if(조건 1) {
// 조건 1이 참일 때
}
else if(조건 2) {
// 조건 1이 거짓이고 조건 2가 참일 때
}
else {
// 조건1, 2 모두 거짓일 때
}
(2) switch문
switch (number) {
case "a":
console.log("1");
break; // break를 만나면 switch를 탈출한다
case "b":
console.log("2");
break;
default: // 위에 조건이 모두 아닌 경우
console.log("모르겠어요");
break;
}
(3) 삼항 연산자
name == "lily" ? console.log("안녕하세요") : console.log("누구세요?")📢 특정 코드를 반복하고 싶을 때 사용한다
(1) for문
for(초기값; 조건문; 증감문){
실행 문장(반복하고 싶은 코드)
}
(2) while문
while(조건){
// 조건이 true일 경우 실행
실행 문장(반복하고 싶은 코드)
}
💡 for문 while문 차이
for문 : 반복할 횟수를 특정할 수 있을 때 사용
while문 : 반복할 횟수를 특정할 수 없을 때 사용(특정할 수 있을 때도 사용 가능)
do{
// 조건이 참일 때 실행할 코드
} while(조건)
(3) break & continue
✔️ break : 반복문을 멈추고 빠져나감 break;
✔️ continue : 반복문을 이번 반복 회차를 스킵하고 다음 반복 회차로 진행 continue;
(4) for / of 문 (배열에서 사용)
뒤에 있는 배열의 원소를 하나하나 탐색하면서 그 값 자체를 앞의 변수에 담는다.
for(let 변수이름 of 배열) { ... }
let fruits = ["apple", "banana", "grape"];
for(let fruit of fruits){
console.log(fruit);
}
[출력]
apple
banana
grape
함수 : (재사용 가능성이 있는) 특정 기능을 묶어둠.
메소드 : 객체 내에서 선언되어있는 함수.
✔️ 배열 관련 내장 메소드
let fruits2 = ["apple", "banana", "grape"];
fruits2.forEach((fruit, index, array)=>{
// 첫번째 매개변수 : 탐색된 원소
// 두번째 매개변수 : 인덱스
// 세번째 매개변수 : 배열(fruits2의 내용)
console.log(fruit);
console.log(index);
console.log(array);
})
let arr = [1, 2, 3, 4, 5];
let arr_filter = arr.filter((a)=>{
return a > 3;
})
console.log(arr_filter);
[출력]
[4, 5]
✔️ 문자열 관련 내장 메소드
✔️ 메소드 체이닝
📢 여러 메소드를 연결해서 사용하는 개념 (단, 메소드가 반환값을 가지고 있는 경우만 가능)
"hello".split("").reverse() -> [‘o’,’l’,’l’,’e’,’h’]
"hello".split("").reverse()).join(“”) -> olleh
자바스크립트는 처음 사용해 봤는데 내가 지금까지 사용했던 언어들 보다 확실히 쉬운 것 같다
내가 지금까지 사용해 본 언어들(C, C++, JAVA...) 나열해보니 전부 강한 타입 언어였네...ㅎㅎ
그래서 그런지 나도 모르게 무의식적으로 int를 적고있는 나를 발견한다😆😆😆
이번주부터 코테 러닝메이트를 진행하기로 했는데😱 (나 할 수 있겠지...?)