선언이란 보관함을 확보 즉 저장공간을 확보하는 것을 의미한다.
1. let userName; // let은 재선언 x 재할당 o
2. const myBirthday; // const는 재선언 x 재할당 x
3. var message; / var는 재선언 o 재할당 o
let userName = 'Tom', age = 20, message = 'Hello'; // A타입 한줄에 여러 변수를 작성.
let userName = 'Tom',
age = 20,
message = 'Hello'; // B타입 한줄에 하나의 변수를 작성.
A타입과 B타입은 서로 기술적인 차이가 있지 않으며, A타입이 다소 짧지만 가독성을 위해 B타입을 권장한다.
등호기호 " = " 는 할당연산자로 "같다" 라는 뜻이 아닌 데이터를 저장한다는 의미로 사용된다.
userName = 'Tom';
선언과 할당을 같이 사용하면 아래와 같이 작성할 수 있다.
let userName = 'Tom';
let sum = 1;
sum = sum + 2;
sum = sum + 3; // 동일한 변수를 이용해 대입할 수 있다.
let sadius = 5;
pi * radius * radius; // 반지름이 5인 원의 넓이
let areaOfCircle = pi * radius * radius; // 결과물을 다시 변수로 담을 수 있다.
임의의 값을 입력받아 수(number)의 형태로 리턴해야 합니다.
입출력 예시
let output = convertToNumber('123');
console.log(output); // --> 123
let output2 = convertToNumber('hello');
console.log(output2); // --> NaN
let output3 = convertToNumber('3.141952');
console.log(output3); // --> 3.141952
코드 작성
function convertToNumber(anything) {
let anything = Number(anything);
return anything;
}
매개변수(parameter) anything을 Number()
함수를 이용해 숫자로 결과 값을 받는 코드를 작성했다.
하지만 문법 오류 즉 매개변수 anything이 중복 선언이 되었다고 나왔다.
function convertToNumber(anything) {
let result = Number(anything);
return result;
} // 이처럼 result를 새로 선언을 하여 값으로 할당을 해주어도 되지만
function convertToNumber(anything) {
return Number(anything);
} //매개변수가 하나이기에 새로 선언을 해주지 않고 바로 'Number()' 함수 값을 받는 코드로 작성을 해주니 훨씬 간편하고 직관적인 코드라 더 낫다고 생각한다.
let n = 123;
let str = "Hello";
// 큰따옴표, Hellolet str2 = 'Hello';
// 작은따옴표, Hellolet name = "Tom";
console.log(`${str}, ${name}!`);
// 역 따옴표(백틱) Hello, Tom!불리언은 논리타입으로 긍정을 의미하는 true와 부정을 의미하는 false 두가지 값 밖에 없다.
undefined는 '값이 할당되지 않은 상태’를 나타낼 때 사용하며,
변수는 선언했지만 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당된다.
undefined 또한 데이터형인 동시에 값인 것으로 볼 수 있다.
JavaScript에선 null을 변수에 할당이 이루어졌지만 ‘존재하지 않는 (nothing) ’ 값 , ‘비어 있는(empty)’ 값 , ‘알 수 없는(unknown)’ 값 을 나타내는 데 사용한다.
let age = null; // 값이 없음을 명하시하는 경우 null 또한 데이터형인 동시에 값이라고 할 수 있다.
typeof 연산자는 두가지 형태의 문법을 지원하며 변수를 호출하면 인수의 자료형을 반환한다.
typeof undefined // "undefined"
typeof 0 // "number"
typeof true // "boolean"
typeof "foo" // "string"
typeof Math // "object"
typeof null // "object"