第1章データ型
9712 ワード
01データ型のタイプ
02データ型の背景知識
1-2-1メモリとデータ
1-2-2識別子と変数
03変数宣言とデータ割当
1-3-1変数宣言
var ys;
var ys;
1-3-2データ割付
var ys;
ys = 'hi'
var ys = 'hi' // ys는 변수 영역, 'hi'는 데이터 영역
変数領域に直接値を代入しないのはなぜですか?->メモリを効率的に管理しながら、データを簡単に変換できます.
04基本データと参考データ
1-4-1不変値
変数ysで文字列「hi」を指定し、「hihello」に置き換えますか?新しい文字列「hihello」を作成し、「hihello」ではなく変数ysにアドレスを格納します。 要するに、「hi」と「hihello」は全く異なるデータです。
1-4-2可変
1-4-3レプリケーション変数の比較
var ys = 30;
var preYs = ys;
var obj1 = { c: 12, d: 'ok' }
var obj2 = obj1
preYs = 29;
obj2.c = 13;
ys !== preYs // true
obj1 === obj2 // true
var ys = 30;
var preYs = ys;
var obj1 = { c: 12, d: 'ok' }
var obj2 = obj1
preYs = 29;
obj2 = { c: 13, d: 'okk' }
ys !== preYs // true
obj1 === obj2 // false
05不変オブジェクト
1~5-1の不変オブジェクトを作成する簡単な方法
->値に渡されたオブジェクトを変更した場合、元のオブジェクトは
// 기존 정보를 복사해서 새로운 객체를 반환하는 함수(얕은복사)
var copyObject = function (target) {
var result = {};
for (var prop in target) {
result[prop] = target[prop];
}
return result;
};
1-5-2浅い放射と深い放射
// 객체의 깊은 복사를 수행하는 범용 함수
var copyObjectDeep = function(target) {
var result = {};
if (typeof target === 'object' && target !== null) {
for (var propr in target) {
result[prop] = copyObjectDeep(target[prop]); // 재귀적으로 수행
}
} else {
result = target;
}
return result;
];
// JSON을 활용한 간단한 깊은 복사
var copyObjectViaJSON = function (target) {
return JSON.parse(JSON.stringify(target));
};
// 메서드(함수)나 숨겨진 프로퍼티인 __proto__나 getter/setter 등과 같이 JSON으로 변경할 수 없는 프로퍼티들은 모두 무시합니다.
06未定義とnull
オブジェクト内部に存在しないプロパティにアクセスしようとすると、
Reference
この問題について(第1章データ型), 我々は、より多くの情報をここで見つけました https://velog.io/@0_0/코어자바스크립트-1장-데이터-타입テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol