Javascript Basic, 기초 약간 '찍먹' 하기

summerlee·2022년 9월 11일
0

TIL

목록 보기
5/39

변수 & 대입연산자


자바스크립트에서는 변수를 사용하여 특정한 값(데이터)을 저장할 수 있습니다.
변수변경 될 수 있는 값 입니다. 뭐가 변하느냐? 바로 데이터가 변합니다.

let myVariable = 5;

👉 let 이라는 키워드를 사용하여 myVariable 이라는 변수를 선언하고, 5라는 값을 할당 한 것.

let myVariable = 5; 는 자바스크립트 엔진(자바스크립트 코드를 해석하는 도구)에게
"야, 이제 데이터 저장공간을 마련해! 이름은 myVariable로 하고!" 라고 말하는 거에요.
이런 것을 변수를 선언한다라고 표현합니다.

그리고 위에서 알 수 있듯이 변수(variable)에 값을 할당할 때엔 대입연산자(=)를 사용합니다.

대입연산자는 말 그대로 오른쪽 항에 있는 값을 왼쪽에 있는 변수에 대입하는 역할을 합니다.

변수를 선언하자마자 값을 대입하는 것을 초기화한다고 표현합니다.

let myVar = 5;
let myNum = myVar;

// 5를 변수 myVar의 값으로 대입합니다.
// 그 후에 myVar를 myNum의 값으로 대입합니다.

자바스크립트 변수 선언 가능한 키워드는 오직 let 하나 뿐 입니다. const 도 있지만 얘는 우선 잠시 논외로.. (사용하지 않는다는 의미가 아닙니다)
짧게 설명하자면, const 는 선언함과 동시에 값을 할당하게 되면 그 뒤로는 절대 값을 변경 할 수 없는 키워드 입니다.

👉 옛날에는 var 를 썼었는데 지금은 쓰면 안 돼요.
😮 왜요?:::::::::
대부분의 프로그래밍 언어는 변수를 선언하고 나서 값을 할당하는 것이 일반적인데, 자바스크립트 var 는 선언을 하기도 전에 값을 할당 할 수 있었습니다. 게다가 값을 할당하기도 전에 출력이 가능했다고 합니다 (헐). 원래 이런 식이라면 에러가 뜨는게 정상인데.. var 로 작성한 것은 에러 조차 안 떴다고 합니다. 🥶
이러한 현상을 var hoisting 이라고 합니다. 때문에 요즘은 사용하지 않는 추세라고 하네요.

var hoisting : 어디에 선언했느냐에 상관 없이 항상 제일 위로 선언을 끌어 올려주는 것

값이 할당되지 않은 변수


변수는 처음 선언된 경우 초기 값으로 undefined , 즉 정의되지 않은 값을 갖습니다.

let a;
console.log(a) // --> return undefined

이와 같이 a 라는 변수를 선언 했으나, 아무런 값을 할당하지 않은 경우에 console.log를 찍어 보면, undefined 가 출력되죠. 🥶

이 말은 곧, 변수를 선언하는 것과 값을 대입하는 것별개 라는 뜻이 됩니다.
선언된 변수가 특정한 값을 갖기 위해서는 대입연산자를 사용해 꼭 그 값을 대입해주어야 합니다.

🌟 한 번 선언된 변수는 다시 선언할 필요 없이 값만 대입해주면 됩니다.

let a;
let b;
let c;

console.log(a + b + c) // --> return NaN

🌟 NaN : Not A Number , 각 변수에 값이 할당되지도 않았을 뿐더러 애초에 숫자 데이터도 아니라 연산을 할 수 없기에 console.log(a + b + c) 를 찍으면 숫자가 아니다 라는 의미의 NaN 이 출력 됩니다.

변수 이름 정할 때 지켜야 할 것


  1. 대소문자 구문
    변수이름, 함수이름, 연산자 모두 대소문자 를 구분합니다.
    따라서 myNameMyName은 다른 변수입니다.
  1. 변수 이름을 정할 때, 첫 번째 문자는 반드시 글자밑줄(_) , 달러기호($) 중 하나 입니다.
  1. 두 번째 문자부터는 글자 , 밑줄 , 달러 , 숫자 중에서 자유롭게 쓸 수 있습니다.
  1. 변수이름, 함수이름 등 camelCase(카멜케이스) 표기법으로 쓸 것.
let ohMyGod;
let iLikeCoffee; //camelCase(카멜케이스) 표기법
  1. snake_case 표기법 도 있지만 잘 사용하지 않습니다.
    변수이름에 - 는 사용할 수 없으므로, _ 를 사용한 것!
let oh_my_god;
let i_like_coffee; //snake_case 표기법

null & undefined


1. undefined

선언은 됐지만 아직 value가 할당되지 않은 경우

2. null

'빈 값(blank)'을 의미하는데 null 은 사용자가 의도적으로 준 value입니다.
그래서 undefined 와는 다르게 자바스크립트가 자동적으로 null 이란 값을 줄 수는 없습니다.

👉 '값이 없다' 는 점에서 nullundefined 가 비슷한 것 같아 보여도 둘은 같지 않습니다. 왜일까요?

let name;            // undefined
let name = null;     // null

console.log(null == undefined);   // true
console.log(null === undefined);  // false

엄격일치연산(===) 은 value뿐만 아니라 type도 같아야 true가 나옵니다.

그러면 nullundefinedtype은 어떤 타입 일까요?

타입을 알아보기 위해서는 typeof 연산자를 사용 하면 됩니다.

console.log(typeof null);       // object
console.log(typeof undefined);  // undefined

nulltypeobject 가 나왔습니다. 왜일까요?
👉 null은 위에 설명한대로 값이 없음(blank) 을 의미하는 nullvalue 로 할당 된 상태이기 때문입니다.

profile
완벽하지 않아도 기록하려고 노력하기 😅

0개의 댓글