#2 JS 기초 이론
Return
- console.log 없이 function의 코드 안에서 결과값 얻고 싶음.
- console창 말고 화면에서 출력하거나 데이터를 받아서 이용할 수 있게. console이나 alert 사용하면 브라우저에 띄워지는 사건이 일어나고 그게 끝임.
- 즉, function의 계산 결과를 받고 싶음! 보통은 어떤 값을 얻기 위해 function 사용.
- { } 안 코드 앞에 return을 씀.
- const age = 96;
function calculateKrAge(ageOfForeigner) {
return ageOfForeigner + 2;
}
const krAge = calculateKrAge(age); - function을 실행하면 그 결과로 calculateKrAge(age)를 대체함.
- 반환값이 있는 function을 호출하는 코드(예. calcultator.plus(2, 3);)를 쓰면, 그 자리에 반환값(5)을 받을 수 있음.
- const age = 96;
- return을 써야 하는 이유
- 예) const calculator = {
add: function (a, b) {
console.log(a + b);
}
const plusResult = calculator.add(2, 3); - plusResult 변수에 함수를 할당하면 이 변수는 해당 함수의 결과 타입을 가질 것. 근데 add 함수는 반환값 없음. 계산 결과를 console.log할 뿐.
- 따라서 plusResult = undefined. 함수의 값을 콘솔 외부에서 얻기에 적합하지 않음.
- 예) const calculator = {
- 한번 return하면 function은 작동을 멈추고 끝남.
- 그 뒤에 console.log든 뭐든 써도 그 코드는 작동하지 않음.
- function은 실행되고 나면 결과를 남기고 사라짐.
Conditionals(조건문)
- 조건문 : true/false를 확인해줌.
- 예) 사용자가 로그인되어 있다면, 뭔가를 보여주기
- [예시] 음주 가능 나이 판별 계산기
- prompt 함수 : 2개의 argument를 받아서 사용자가 창을 띄울 수 있게 해줌.
- 메시지(string)와 디폴트. 지금은 메시지만 씀.
- 사용자에게 메시지를 보여주고 값을 넣으라고 함.
- 문제
- 값을 받을 때까지 JS를 멈춰둠. 그 다음 코드가 작동되지 않음.
- 그리고 prompt 창에 CSS 적용할 수 없음.
- 브라우저에서 팝업 차단당하기도 함.
- 그래서 잘 사용하지 않음. 아주 오래된 기능.
- typeof 변수 : 변수의 유형을 확인할 수 있음.
- parseInt 함수 : 문자열 -> 숫자. 데이터 타입 변경하기.
- 사용자가 무슨 데이터를 입력하든 간에 숫자 타입으로 바꾸는 방법.
- 예) "15" => 15
저는 왜 안되죠?
- 예) "15" => 15
- 숫자가 아닌 걸 입력하면 NaN(not a number)라고 알려줌.
- 입력 받은 age가 NaN이 아니면 메시지 띄움.
- 사용자가 무슨 데이터를 입력하든 간에 숫자 타입으로 바꾸는 방법.
- isNaN 함수 : 인자가 숫자인지 아닌지 불리언으로 알려줌.
- prompt 함수 : 2개의 argument를 받아서 사용자가 창을 띄울 수 있게 해줌.
- 조건문 만드는 법
- if(condition) {
condition === true
} else {
condition === false
} - 컨디션 위치의 코드는 불리언으로 판별가능해야 함. true와 false 뿐.
- 컨디션이 true면 if {} 안 코드가 실행되고 false면 else {} 안 코드가 실행됨.
- if(condition) {
- 조건이 여러 개일 때
- if(condition1) {
condition1 === true
} else if(condition2) {
condition2 === true
} else {
condition2 === false
} - 꼭 else로 끝내지 않아도 됨.
- if(condition1) {
- 동시에 여러 조건을 물을 때
- and 연산자, && : 이어진 두 개의 조건을 동시에 만족해야 함. 하나라도 false면 false.
- 예 : (age >= 18 && age <=50)
- or 연산자, || : 둘 중 하나만 true라도 true.
- 예 : 음수를 입력했을 때, (isNaN(age) || age < 0)
- === : 값이 아예 같은 경우.
- 앞에 나온 범위에 그 값이 포함될 수도 있음. 그럼 앞에서 코드가 실행되어버리므로 === 일 때 원하는 코드로 작동하지 않음. === 값이 포함되는 범위가 나오기 전에 if === 먼저 쓰기!
- 예 : if (age > 80) {
console.log("you can drink");
} else if (age === 100) {
console.log("you are wise");
}- 이렇게 하면 100일 때 앞에서 80이상에 포함되어 you can drink로 실행되기 때문에 (age === 100)을 먼저 써야 함.
- !== : 값이 같지 않은 경우.
- and 연산자, && : 이어진 두 개의 조건을 동시에 만족해야 함. 하나라도 false면 false.
'TIL' 카테고리의 다른 글
[TIL-42] 노마드코더 크롬앱(JS) 클론코딩 #3.3~#3.5 (0) | 2021.10.21 |
---|---|
[TIL-41] 노마드코더 크롬앱(JS) 클론코딩 #3.0~#3.2 (0) | 2021.10.20 |
[TIL] 노마드코더 바닐라 JS 챌린지 DAY 1~DAY 11 (0) | 2021.10.19 |
[TIL-39] 노마드코더 크롬앱(JS) 클론코딩 #2.7~#2.10 (0) | 2021.10.17 |
[TIL-38] 노마드코더 크롬앱(JS) 클론코딩 #2.2~#2.6 (0) | 2021.10.16 |