21.01.19 TIL
오늘 한일
변수와 자료형
조건문
문자열
학습언어 - Javascipt
개념정리
1) 자바스크립트에서 x의 제곱을 구하는 방법 (3가지)
const pow1 = x * x;
const pow2 = x ** 2;
const pow3 = Math.pow(x, 2);
2) '==' 와 '==='의 차이점
==는 Equal Operator이고, ===는 Strict Equal Operator이다.
==는 a == b 라고 할때, a와 b의 값이 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.(값만 같으면 true이다.)
===는 Strict, 즉 엄격한 Equal Operator로써, "엄격하게" 같음을 비교할 때 사용하는 연산자이다.
===는 a === b 라고 할때, 값과 값의 종류(Data Type)가 모두 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.
'==' 연산자를 이용하여 서로 다른 유형의 두 변수의 [값] 비교
'==='는 엄격한 비교를 하는 것으로 알려져 있다 ([값 & 자료형] -> true).
예시)
- 값은 똑같이 1이지만 값의 종류가 숫자냐, 문자열이냐에 따라 === 연산자를 사용할 때 결과가 false라고 나온다.
var a = 1;
var b = "1";
console.log(a == b); // true
console.log(a === b); // false
- null과 undefined는 공통적으로 값이 없음을 뜻하지만, 값의 종류(Data Type)가 다르기 때문에, === 연산자를 사용할 때 결과가 false라고 나온다.
console.log(null == undefined); // true
console.log(null === undefined); // false
console.log(typeof null); // expected output: "object"
console.log(typeof undefined); // expected output: "undefined"
- 기본적으로 1은 true, 0은 false로 나타낼 수 있지만, 데이터 타입은 다르다.
console.log(true == 1); // true
console.log(true === 1); // false
console.log(typeof 1); // expected output: "number"
console.log(typeof true); // expected output: "boolean"
- NaN (Not a Number)은, 숫자가 아닌 것을 의미하지만 그 값 자체끼리는 같지 않다.
어떤 것과도 같지 않다는 것을 기억해야 한다.
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
변수를 비교하거나 어떤 비교를 위해 항상 '===' 연산자를 사용 할 것을 권장한다.
*추가) 배열이나 객체의 경우
var a = [1,2,3];
var b = [1,2,3];
console.log(a == b); // false
console.log(a === b); // false
배열을 할당할때, 각 변수는 각 메모리의 주소를 참조한다.
두 변수 a, b의 값과 데이터 타입이 같지만, 이와 상관없이
참조하는 메모리의 주소가 다르기 때문에 두 a, b는 같지 않다.
var a = [1,2,3];
var b = [1,2,3];
var c = b;
console.log(b === c); // true
console.log(b == c); // ture
새로운 변수 c에 변수 b를 할당해주면, 변수 c도 b가 참조하는 같은 메모리의 주소를 참조하게 되어,
두 변수 c, b는 같다. 이때, c, b의 값과 데이터 타입이 같기 때문에, ==와 ===의 결과값이 동일하다.
객체도 배열과 같은 경우이다.
var x = {};
var y = {};
var z = y;
console.log(x == y) // false
console.log(x === y) // false
console.log(y === z) // true
console.log(y == z) // true
3) falsy한 값(6가지)
다음은 if문에서 false로 변환되므로, if 구문이 실행되지 않는다.
if(false)
if(null)
if(undefined)
if(0)
if(NaN)
if('')
Author And Source
이 문제에 관하여(21.01.19 TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@junhyeok/21.01.19-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)