반응형

1. JSON.parse와 JSON.stringify 차이

 - JSON.parse: JSON 텍스트 문자열을 JavaScript 객체로 변환

 - JSON.stringify: js스크립트 객체를 JSON 텍스트로 변환하고 해당 JSON 텍스트를 문자열에 저장
 - toString(): 문자열로 변환

 

 - JSON.parse: JSON 형태의 객체로 변환

var my_object = { key_1: "some text", key_2: true, key_3: 5 };
var object_as_string_as_object = JSON.parse(object_as_string);  // {key_1: "some text", key_2: true, key_3: 5} 
typeof(object_as_string_as_object);          // "object" 

 

- JSON.stringify: JSON 형태의 문자열(string)로 변환

구문: JSON.stringify(value[, replacer[, space]])

 . value: JSON 문자열로 변환할 값.

 . replacer: json 문자열에 포함되어야 하는 객체의 속성. null or 제공되지 않으면, 객체의 모든 속성들이 포함됨.

                   (array 방식이면 array만 포함됨)

 . space: 가독성을 목적으로 문자열 출력에 공백을 삽입하는 객체 (=공백으로 사용되는 스페이스 수. \t도 사용됨.)

var my_object = { key_1: "some text", key_2: true, key_3: 5 };
var object_as_string = JSON.stringify(my_object);   // "{"key_1":"some text","key_2":true,"key_3":5} 
typeof(object_as_string);              // "string"

 

- 실습: s3에 저장된 json 파일을 하나 불러와서 JSON.parse, JSON.stringfy, string 형태로 각각 변환 후 출력.

 

- JSON_parse: 그 자체로 객체로 출력된다.

- JSON_stringify: JSON 형태의 문자열로 출력한다

- tostring: 전체를 문자열로 출력한다.

 

반응형
반응형

 

* 결론: '=='는 '값'만 비교하는 반면, '==='는 '값' 및 '자료형'을 동시에 비교하는 더 strict한 연산자이다.

구글링 중에 설명이 정말 잘 되어 있는 블로그가 있어서 내용을 그대로 가져왔다. (fileoscoder님 감사합니다!)

출처: https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes

  • ☝ '==' 연산자를 이용하여 서로 다른 유형의 두 변수의 [값] 비교
  • ✌ '==='는 엄격한 비교를 하는 것으로 알려져 있다 ([값 & 자료형] -> true).

 

 

🔍 간단 비교

✔ 0값은 false와 동일하므로 -> true 출력

0 == false // true 

✔ 두 피연산자의 유형이 다르기 때문에 ->false

0 === false // expected output: false 
console.log(typeof 0); 	// expected output: "number"
console.log(typeof false); // expected output: "boolean"

 

🔍 숫자와 문자열 비교

✔ 자동 유형변화 비교

2 == "2" // expected output: true

✔ 두 피연산자의 유형이 다르기 때문에 ->false

2 === "2" // expected output: false 
console.log(typeof 2);	// expected output: "number"
console.log(typeof "2");  // expected output: "string"

 

🤔 #궁굼한 케이스들

🔍 1) null 와 undefined 비교했을 때 어떤 결과가 나올 것인가?

✔ 자동 유형변화 비교

null == undefined // expected output: true

✔ 두 피연산자의 유형이 다르기 때문에 ->false

null == undefined // expected output: false 
console.log(typeof null);	// expected output: "object"
console.log(typeof undefined);  // expected output: "undefined"

 

 

🕺 변수를 비교하거나 어떤 비교를 위해 항상 '===' 연산자를 사용 할 것을 권장한다.

💃 가능한 '==' 연산자를 사용하지 않도록 하고, 대신 직접 자료형을 변환하여(casting) 보다 코드 가독성을 높이도록 한다.

 

 

 

자바스크립트: '==' 와 '===' 는 다르다!

무엇이 다른가? 저는 자바 언어를 먼저 배운 입장에서 자바스크립트에 깊게 노출되지 않았기 때문에 충격을 받았다. 비록 자바스크립트의 어떤 기능, 사건 처리, 그리고 어떤 jQuery 속임수에 상

velog.io

반응형

+ Recent posts