잘 작동하는 소프트웨어를 만들기 위해서 목적에 맞는, 간결한 코드를 바르게 작성하기
let 변수;
num = num+1;
// num에 num+1 값 할당
let name = 'kim';
let pi =3.14;
let radius = 5;
let areaOfCircle = pi * radius * radius;
console.log(~) : ~를 출력
string(문자열), number(숫자), boolean(true/false), undefined(변수에 값이 없는 경우)
Number
숫자 표현, 산술 연산에 사용되는 데이터 타입.
+, _, *, /의 산술연산이 가능하며 Math라는 내장객체를 이용하여 수학함수를 이용한 결과를 얻을 수도 있습니다.
Not a Number :: NaN 과 isNan()
문자열 -> 숫자형으로 데이터형태 변환시, 문자열이 숫자를 포함하지 않을경우 자바스크립트는 Not a Number의 약자인 NaN을 리턴.
String
문자열을 표현하는데 사용되는 데이터 타입이 바로 string입니다.
undefined 와 Null(값 없음)
typeof undefined // undefined
typeof null // object
Boolean(null); //false
Boolean(undefined); //false
Boolean(NaN); //false
Boolean(''); //false
Boolean(0); //false
Boolean(1); //true
Boolean('false'); //true
Boolean('true'); //true
Boolean('reference'); //true
배열[], 객체{}, 함수(function(){})
let fruits = ['banana', 'apple', 'pineapple'];
let person = { name: 'Steve', age: 32, isStudent:true };
typeof 3
"number"
typeof '3'
"string"
typeof true
"boolean"
function getTriangleArea(base, height){
let triangleArea = (base * height) / 2;
return triangleArea;
}
console.log(getTriangleArea(2,4)) // 4 출력
function getTriangleArea(base, height){
let triangleArea = (base * height) / 2;
}
console.log(getTriangleArea(2,4)) // undefined 출력
keyword name(parameter){body}
function cal(param1, param2){
console.log(param1 + param2);
return param1 * 10;
}
function cal(param1, param2){
console.log(param1 + param2);
return param1 * 10;
}
let result = cal(10,20); // 100
선언식 : 호이스팅 적용 O
function getTriangleArea(base, height){
let triangleArea = (base * height) / 2;
return triangleArea;
}
표현식 : 호이스팅 적용 X
const getTriangleArea = function (base, height){
let triangleArea = (base * height) / 2;
return triangleArea;
}
화살표 함수 : 호이스팅 적용 X
const getTriangleArea = (base, height) ==>{
let triangleArea = (base * height) / 2;
return triangleArea;
}
- 화살표 함수에 return문만 있는 경우 생략가능 . 중괄호도 생략해야함. 소괄호 사용가능.
const getTriangleArea = (base, height) ==> triangleArea = base height / 2;
// 정상작동.
const getTriangleArea = (base, height) ==> triangleArea = (base height / 2);
// 정상작동.
const getTriangleArea = (base, height) ==> triangleArea = {(base * height) / 2};
// 비정상작동. undefined
- 함수내 표현식이 2줄 이상인 경우, return,{중괄호}를 명시적으로 사용.
선언 : keyword name(parameter){body}
호출 : name(argument);
- 조건문 문제를 풀 때는 순서가 중요, 영역이 좁은 것 부터 걸러준다.
- if( a ){ 1 } if( b ){ 2 } 와 if( a ){ 1 } else { 2 } 차이
- a (O,X) -> b (O,X) : 결과 따라 각각 (1,2),( ,2),(1, ),( , ) 실행
- a (O) -> 1 실행
a (X) -> 2 실행
if( Boolean(변수) )
if( ~ || ~ || ~ || ~ ... )
if (조건1) {
// 조건1이 true ->실행단계
} else if (조건2) {
// 조건1이 false, 조건2 true ->실행단계
} else {
// 조건1,조건2이 false ->실행단계
}
3 > 5; // false
'hello' === 'world'; // false
- 비교 결과는 늘 Boolean
- Boolean 타입 : true, false 값만 들어간다.
let isAdult = true; // 또는 false
let isStudent = false; // 또는 true
true && true // true
true && false // false
false && false // false
true || true // true
true || false // true
false || false // false
!false // true
!(3>2) // false
!undefined // true
!'Hello' // false
// if문에서 false로 변환되므로, if 구문이 실행되지 않음.
if ('')
if (0)
if (NaN)
if (false)
if (undefined)
if (null)
- undefined : 선언은 되었으나 값이 할당 되지 않은 상태 (초기화 안하면 무조건 undefined 상태)
**var temp;** typeof undefined //undefined Boolean(undefined) 에서는 false Number(undefined) 에서는 NaN String(undefined) 에서는 "undefined"
- null : 아무런 값도 나타내지 않는 특수한 값 (초기화 해주어야 null 상태가 존재 할 수 있음)
**var temp = null;** typeof null //obeject Boolean(null) 에서는 false Number(null) 에서는 0 String(null) 에서는 "null"
- NaN : JS에서만 존재하는 '숫자가 아니다'를 의미하는 값
undefined를 Number로 형변환 하면 NaN이 되지만, null을 변환하면 0이 나온다. NaN === NaN 은 false다. NaN을 검사하기 위해서는 `isNaN()` 이라는 전용함수를 사용해야한다. typeof NaN //Number Boolean(NaN) 에서는 false Number(NaN) 에서는 NaN String(NaN) 에서는 "NaN"
- stackoverflow : 지식인 같은 사이트
- mdn : 자바스크립트 바이블. 신뢰가능
Ex. 변수를 문자열로 변경하는 객체 찾기
- mdn 검색 "mdn 변수 문자열 변경"
- 자연어 검색 "how to convert to string in javascript"
: 검색 시 나온 키워드를 이용하여, mdn 키워드 검색하여 문제 좁혀나가기
- 에러 그대로 검색
- 조건문에 대한 여러가지 예
- if if VS if else
- if if : 각각 독립조건 , if else : 조건하나.