→ 변수에 어떤 데이터타입을 할당해도 에러가 발생하지 않음.
변수 : 각 보관함에 붙인 이름을 의미, 재사용성
데이터 보관함(메모리)의 크기는 모두 동일
let sum = 1 ;
sum = sum +2 ; //여기서 = 는 같다는 의미가 아닌, 대입의 의미!
단일형(원시자료형)
**number**
: 숫자
**string**
: 문자열 ( ‘ ‘, “ “ 사용)
문자열에선 ‘ “, “ ‘ 혼용 불가
But, “내가 말한 ‘이민형’ 그 아이 있잖아 “ ⇒ 같이 감싸서 사용은 가능(그 반대도 가능하다)
**boolean**
: True / False 반환
console.log(!0 === true) //true -> true = 0으로 형변환
console.log(!0) //true
**undefined
** : 아무것도 할당하지 않았을 때
**null
:** 변수값이 없다는 것을 의도적으로 명시할 때 사용
let ar = ‘Hoho’
ar = null //이전에 할당된 값을 비우고 싶을 때
function
: 함수
자료자료형
- 위 타입이 서로 섞인 타입(compound)
**array**
: 배열
let fruits = ['banana', 'apple', 'pinaapple'] ;
object
: 객체
let person {name : 'steve', age : 32, isStudent : true} ;
💡 typeof 값 ;typeof 연산자 사용법
console.log(typeof 1) // number
console.log(typeof '1') //string
console.log(typeof (1<2)) //boolean
ruturn
문이 반드시 필요function cal(param1, param2) {
console.log(param1 + parma2)'
return param1 * 10 ;
}
cal(10, 20)
→ 결과 100
함수를 이용하여 구구단 출력하기
function multablePrinter(num) { //muntanleprint함수는 num이라는 수를 매개변수로 받음
console.log(num * 1);
console.log(num * 2);
console.log(num * 3);
console.log(num * 4);
console.log(num * 5);
console.log(num * 6);
console.log(num * 7);
console.log(num * 8);
console.log(num * 9);
}
multablePrint(2) //()내부에 숫자값을 인자로 전달 -> 구구단 2단
multablePrint(3) //3단
//..
multablePrint(9)
function getTriangleArea(base, height) { //여기서 function도 키워드!
let tTriangleArea = (base * height) /2 ;
return TriangleArea
}
const getTriangleArea = function(base, height) {
let tTriangleArea = (base * height) /2 ;
return TriangleArea
}
const getTriangleArea = (base, height) => {
let tTriangleArea = (base * height) /2 ;
return TriangleArea;
}
IF 함수의 본문(body)에 rerturn문만 있는 경우 → return과 중괄호{} 생략가능
//1)
const getTriangleArea = (base, height) => base * height /2
getTriangleArea(3,4) //6, 정상작동
//2)
const getTriangleArea = (base, height) => {base * height /2}
getTriangleArea(3,4) //undefined 리턴
return문에서 *소괄호 *사용은 가능
const getTriangleArea = (base, height) => (base * height /2)
getTriangleArea(3,4) //6, 정상작동
⇒ But, 함수 내 표현식이 2줄 이상인 경우 → return과 중괄호{}를 명시적으로 사용한는게 좋음
선언
function getTriangleArea(base, height) {
→ (base, height) : 매개변수
호출
getTriangleArea(3,4) //결과 6
→ (3,4) : 전달인자(매개변수에 할당되는 값)
let word = returnWordWithJoy(
💡 **추가 공부**
💡 function도 객체(object)?
💡 Null과 undefined의 차이
💡 키워드 [var, let, const]의 차이 / var의 문제점은 무엇? let은 어떻게 보완했을까
var은 옛날 방법
let은 var가 가진 문제점을 보완한 신문법
⇒ var은 더 이상 사용하지 않음. 따라서 let을 쓰면 됨
const(상수, constance)로 선언한 변수는 재할당이 불가능하다
⇒ 변하지 않은 상수를 사용할 때 const를 사용
const num3 = 3;
num 2 = 22;
num 3 = 33; //오류 => const는 변수 재할당 불가
💡 ==, === 차이 (===를 더 많이 사용, ==는 사용할 일 없음으로 그냥 이렇구나 하고 이해만!)
💡 **함수선언과 함수표현의 차이**
매개변수(parameter)
function foo(z,d) //z, d 는 함수 foo의 매개변수
전달인자(argument)
console.log(foo(100,200)) / /100, 200과 같이 함수를 호출할 때 ()안에 넣은 넣는 것이 전달인자
매개변수가 전달인자보다 많은 경우
(a,b,c)
(1,2) // 1, 2, undefined 로 호출
매개변수보다 전달인자가 많은 경우
(a,b)
(1,2,3) //1,2 만 호출