Javascript
1. Javascript 참조 방식
💫내장 방식: 위치 어디든 사용이 가능하다.
<script>
alert("헤드 그런데 js 파일 링크 위");
</script>
💫링크 방식
<script src="./index.js"></script>
2. 데이터 종류
💫String 문자열
1 2 3 4 | let myName = "sample" let email = 'sample@g.com' console.log(myName) console.log(email) | cs |
1 2 3 4 5 6 7 | // 문자와 변수를 동시에 써보기 console.log('내 이름은', myName) // let bbbb = '내 이름은', myName let aaaa = '내 이름은' + myName+'이고, 이메일은'+email+'입니다.' let bbbb = `내 이름은 ${myName}이고, 이메일은 ${email}입니다.` console.log(aaaa) console.log(bbbb) | cs |
💫Number 숫자
1 2 3 4 5 6 7 8 9 | let number=123 let opacity=0.7 console.log(number) console.log(opacity) console.log(number+opacity) console.log(number-opacity) console.log("apple"-3) //NaN(Not a Number) | cs |
💫Boolean 참, 거짓 데이터
1 2 3 4 5 | let checked = true let isShow = false console.log(checked) console.log(isShow) | cs |
💫Undefined 미할당 데이터
1 2 3 4 5 6 7 | let undef; let obj={ abc: 123 } console.log(undef) console.log(obj.abc); console.log(obj.efg); // undefined | cs |
💫Null 빈 데이터: 어떤 값이 "의도적"으로 비어 있음을 의미할 때 사용
1 2 | let empty = null; console.log(empty) | cs |
💫Array 배열
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | let fruits =["orange", "durian", "banana", "mango"] let fruits2 =new Array("orange", "durian", "banana", "mango") console.log(fruits [3]) console.log(fruits2 [1]) // 여러 데이터 타입을 하나의 배열에 넣을 수 있음 let data = [1, true, null, "string", 100] console.log(data[0], data[4]) // 2차원 배열 let korean=[["가", "갸", "거", "겨"], ["나", "냐", "너", "녀"], ["다", "댜", "더", "뎌"]] console.log(korean [2] [0]) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // 아래 배열에서 아이스크림 출력하기 const letters = [ ["사", "스", "자", "크"], ["진", "안", "리", "이"], ["가", "수", "림", "나"], ["아", "으", "차", "운"], ]; console.log(letters [3] [0], letters [1] [3], letters [0] [1], letters [0] [3], letters [2] [2]) // 8 출력 const nums = [ [ [1, 2, 3], [4, 5, 6], ], [ [7, 8, 9], [10, 11, 12], ], ]; console.log(nums [1] [0] [1]) | cs |
💫Object 키:값 의 한 쌍으로 이루어져 있음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | let cat = { name: '나비', age: 1, gender: 'F', isCute: true } // 접근방법1 - period 접근법 console.log(cat.name) console.log(cat.isCute) cat.like = ['tuna', 'rat'] // 접근방법2 - 대괄호 접근법 console.log(cat ['name']) cat["parent"]="초롱이" console.log(cat) | cs |
👻자료형 확인 typeof👻
: 해당 자료형이 어떤 것인지 알려준다!
1 2 3 4 5 6 7 8 9 10 | let und; console.log(typeof "문자") console.log(typeof 100) console.log(typeof true) console.log(typeof {}) // object console.log(typeof [true]) // object console.log(typeof null) // object console.log(typeof und) // object console.log(typeof NaN) // object console.log(typeof function(){}) // function | cs |
📒typeof 실습📒
1 2 3 4 5 | // "number" isn't "string" data type. // typeof 를 array나 null에 사용하면, "object" 결과를 얻을 수 있습니다. console.log(`"${typeof 123}" isn't "${typeof ""}" data type.`) console.log(typeof 123+ ' isn\'t' + typeof "" +" data type." ) console.log('typeof 를 array나 null에 사용하면, "'+typeof null+ '"결과를 얻을 수 있습니다.') | cs |
3. 형 변환
💫명시적 형 변환
- 자동 형 변환에 의지하지 않고 개발자가 직접 형 변환을 시키는 것
💫문자 데이터로 변환➡️ String();
1 2 3 4 5 6 7 | let str1=true let str2=123 let str3=null console.log(String(str1)) console.log(String(str2)) console.log(String(str3)) console.log(typeof str1.toString()) | cs |
💫숫자 데이터로 변환➡️ Number();
1 2 3 4 5 6 7 8 9 10 11 | let n1 = true let n1_1 = false let n2 = "123" let n3 = "123.5" console.log(Number(n1)) // true -> 1 console.log(Number(n1_1)) // false -> 0 console.log(Number(n2)) console.log(Number(n3)) console.log(parseInt(n2)) console.log(parseInt(n3)) console.log(parseInt(3.14)) // parseInt: 정수로 바꿔줌 (소수점 절삭) | cs |
4. 변수: 데이터를 저장하고 사용하는 데이터의 이름
💫var: 재할당, 재선언 모두 가능 ➡️ var 대신 let 사용을 권장!
💫let: 재사용, 재할당 가능. 재선언 불가!
💫const: 재할당 불가 (등호를 이용해 값 변경이 불가)
5. 기본 연산자
💫% 나머지 연산자
- 홀수: num%2==1
- 짝수: num%2==0
💫** 거듭제곱
💫연산자 줄여쓰기
- num = num + 5 ➡️ num += 5
- num = num * 5 ➡️ num *= 5
💫증가, 감소 연산자
- num++;
- num--;
6. 비교 연산자
💫일치 연산자: 변수의 값 뿐만 아니라 자료형 까지 비교한다
구문 | 의미 |
A == B | A와 B의 값 비교 |
A === B | A와 B의 값과 data type 비교 |
A != B | A와 B의 값 비교 |
A !== B | A와 B의 값과 data type 비교 |
7. 논리 연산자
💫|| OR : 여러개 중 하나라도 true면 결과값이 true이다.
💫&& AND: 여러개 중 하나라도 false면 결과값이 false이다.
💫! NOT
8. 함수 Function
/**
* 함수
* - 특정 작업을 수행하기 위해 설계된 코드 집합
* - 함수의 선언 구조
* - 키워드: function()
* - 함수의 이름: camelCase로 함수의 이름 작성 (recommeded)
* - (매개변수): 함수 내부에서 사용할 변수 (매번 달라지는 변수)
* - {스코프}: 함수의 내부 코드
* 함수 선언문, 함수 표현식
* - 함수 표현식: 변수에 함수를 저장
* - 함수 선언문: 명시적 함수 선언
* */
💫함수 선언문: 어디서든 호출 가능
👻호이스팅(hoisting): 선언 순서 상관 없이 변수와 함수가 끌어올리진 모양👻
💫함수 표현식: 코드에 도달하면 생성
💫화살표 함수 (arrow function)
💫매개변수가 있는 함수 만들기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | // 매개변수가 있는 함수 만들기 // 1. 매개변수 1개, 함수 선언문 function sayHello1(text){ return text } console.log(sayHello1("안녕!")) // 2. 매개변수 2개, 함수 선언문 function sayHello2(text, name){ return `${text}! ${name}` } console.log(sayHello2("안녕", "sampleName")) // 3. 매개변수 2개, 함수 표현식 // 내부 스코프 console.log 작성 const sayHello3=function(text, name){ console.log(`${text}! ${name}`) } sayHello3("안녕", "sampleName") // 4. 매개변수 2개, 화살표 함수 const sayHello4= (text,name) =>{ return `${text}, ${name}` } const sayHelloValue=sayHello4("안녕","sampleName") console.log(sayHelloValue) | cs |
🥲백틱 ``이 익숙하지 않아 실습때 좀 헤맸다... 백틱 안에 값을 넣으면 더 편하다!
9. 조건문
💫if문: 조건식이 참일 때 실행할 문장
- 결과 값이 true, false로 나오도록 조건식을 작성해야 한다.
1 2 3 | if(5>3){ console.log('조건이 참 입니다.') } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // if else 문 let userInput= Number(prompt('점수를 입력해주세요.')); let userInput = 100 if(userInput >= 90 && userInput <= 100){ console.log('A입니다.') } else if(userInput>=80){ console.log('B입니다.') } else if(userInput>=70){ console.log('C입니다.') } else{ console.log('F입니다') } | cs |
💫조건문 중첩
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | let userId= 'user01' let userPw= '1234qwer' function loginUser(){ let promptId=prompt('아이디를 입력 해 주세요.') let promptPw=prompt('비밀번호를 입력 해 주세요.') if(userId === promptId){ if (userPw === promptPw){ console.log('로그인 성공') alert("안녕하세요 "+userId+"님") } else{ alert("비밀번호가 틀렸습니다.") } } else if(promptId===''){ alert('아이디를 입력하지 않았습니다.') } else{ alert('아이디가 틀렸습니다.') } } | cs |
💫switch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // let a = Number(prompt('숫자를 입력 해 주세요.')) let a=5 // switch의 괄호에는 조건이 아닌 값이 들어감 switch(a){ // case에는 값에 대한 경우가 들어감 case 3: console.log('a가 3입니다.') break; case 4: console.log('a가 4입니다.') break; case 5: console.log('a가 5입니다.') break; default: console.log('a가 어떤 숫자인지 알 수 없습니다.') } | cs |
💫삼항연산자
1 2 3 4 5 6 7 8 9 | let num = 5 if(num%2===1){ console.log('홀수') }else{ console.log('짝수') } // 조건? 참일때 : 거짓일 때 num%2===1?console.log('홀수'):console.log('짝수') | cs |
📒실습
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | console.log('---실습---') let now = new Date().getHours(); now<=12?console.log('오전'):console.log('오후') // console.log(now) console.log('---실습---') let theNum = Number(prompt('숫자를 입력 해 주세요.')) if(theNum<=10000){ for(let i=1; i<=10000; i++){ if(i%13===0&&i%2===1){ console.log(i) } } } console.log('---실습---') let thesum=0; for(let i=0; i<=100; i++){ if(i%5===0||i%2===0){ thesum=thesum+i } } console.log(thesum) | cs |
10. 반복문
- 특정 코드를 반복하고 싶을 때 사용
💫for문
for(변수 선언과 초기화;조건식(어디까지 감소, 증가할건지);증감){
반복 실행 코드
}
증감식: i++, i=i+1, i+=1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // 1 ~ 5까지 출력하는 방법! for(let i = 1; i<=5; i++){ console.log(i) } for(let i = 1; i < 6; i++){ console.log(i) } for(let i = 0; i < 5; i++){ console.log(i+1) } // 5 ~ 1 출력 for(let i = 5; i > 0; i--){ console.log(i) } let fruits = ['apple', 'banana', 'orange', 'mango'] console.log(fruits.length) // fruits 전체 요소 for문을 이용해서 출력 for(let i = 0;i < fruits.length;i++){ console.log(fruits[i])// 0,1,2,3 } | cs |
📒실습
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | // 1 ~ n까지 더하기 let n =11 let sum=0; // 반복문을 사용해서 덧셈 만들기 /* 3 sum = 0 sum = sum + 1 > 1 sum = sum + 2 > 3 sum = sum + 3 > 6 */ for(let i = 1; i <= n; i++){ sum = sum + i } console.log(sum) let arr = [99,98,85,77,100,50] // 배열 내부의 합 구하기 let sum2=0 for(let i = 0;i<arr.length ; i++){ sum2+=arr[i] } console.log(sum2) // 1이상 20이하의 수 중에서 // 짝수만 더한 값 출력하기 let sum3 = 0 for(let i = 1;i<=20;i++){ if(i%2===0){ sum3+=i } } console.log(sum3) let sum4 = 0 for(let i=0; i<=20;i=i+2){ sum4+=i } console.log(sum4) let sum5=0 // 홀수의 합 구하기 for(let i=0; i<10;i++){ // if(i%2===1) sum5+=i if(i%2===0) continue // 다음반복으로 넘어가도록 sum5 = sum5 + i } console.log(sum5) // 0~10 까지의 홀수 합, 25 | cs |
1 2 3 4 5 6 7 8 | let sum55=0; // 홀수의 합 구하기 for(let i=0; i<10; i++){ // if(i%2==1) {sum5+=i} if(i%2===0) continue; // i가 짝수라면 다음 반복으로 넘어가도록 sum55=sum55+i } console.log(sum55) | cs |
🔢구구단 실습
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | for(let i =0;i<5;i++){ console.log('-----') console.log(i) for(let j=0; j<5;j++){ console.log('j:',j) } } for(let i=2;i<10;i++){ console.log(i+'단') for(let j=1;j<10;j++){ console.log(i,'X', j,'=',i*j) } } | cs |
💫while문
- for문과 다르게 값을 제어하는 구문이 기본적을 포함이 되어 있지 않아 무한 루프 가능.
1 2 3 4 5 6 7 | // while문을 이용해서 10부터 1까지 홀수만 출력 let n3=10 while(n3>=1){ if(n3%2===1) console.log(n3) n3-- } | cs |
그래도 옛날에 해봤다고 어렴풋이 기억이 났다😂 (교수님 죄송해요) for문은 이후 실습에서도 많이 쓰이니 잘 익혀둬야겠다. 백틱의 중요성도 다시 짚고 간다.👍🏻
'웹 취업 부트캠프 일지' 카테고리의 다른 글
[새싹/코딩온] 풀스택 웹 개발자 취업 부트캠프 3주차 (2): Javascript (3) | 2024.11.19 |
---|---|
[새싹/코딩온] 풀스택 웹 개발자 취업 부트캠프 3주차 (1): jQuery, 반응형웹 (0) | 2024.11.17 |
[새싹/코딩온] 풀스택 웹 개발자 취업 부트캠프 2주차 (2): Javascript (3) | 2024.11.10 |
[새싹/코딩온] 풀스택 웹 개발자 취업 부트캠프 1주차 (2): CSS (0) | 2024.11.03 |
[새싹/코딩온] 풀스택 웹 개발자 취업 부트캠프 1주차 (1): HTML, CSS (0) | 2024.10.31 |