JAvascriptカーネル集約332.Primitive Type(元のデータ型)
6584 ワード
Primitive Type(元のデータ型)
非オブジェクトデータ型は、元のデータ型(primitive type)または元のデータ型と呼ばれます。
これらのデータはオブジェクトでもメソッドでもありません.元のデータ型以外のすべてのデータ型はオブジェクトです.
元の値には7種類のタイプが含まれています
あります.(上記の元の値のデフォルト値は簡単ですが、スキップします.)
元の値は変更されません
元の値の特徴の1つは「不変」です.var bar = "baz";
console.log(bar); // baz
bar.toUpperCase();
console.log(bar); // baz
var foo = [];
console.log(foo); // []
foo.push("plugh");
console.log(foo); // ["plugh"]
bar = bar.toUpperCase(); // BAZ
barの大文字を文字列メソッドtoUpperCaseで置き換えてみましたが、変更はありません.
しかしfoo配列にpushを用いてplughを挿入すると変化した.
オブジェクトとは異なり、これらの元の値は「変更」できません.
fooは配列(すなわち元の値)ではないため、変更できます.
でもbar=bar.toUpperCase()出力BAZ.
これは、この値が「再割り当て」されているため、置換されている可能性があります.
🤔ここで奇妙な点は、オブジェクトではなく元の値で方法を使用する方法です.
元の値は再割り当てで変更できますが、元のオブジェクトに割り当てられた関数で、toUpperCaseメソッドを使用して元の値(barと呼ばれます)を処理します.元ならおかしいですがjavascriptは「柔軟な」言語であることを常に知っておく必要があります^^.
元の値を変更するために、JavaScriptの作成者は元のRapperオブジェクトを作成しました.
元のRapperオブジェクト(オブジェクトラッピング)
元の値がメソッドまたはプロパティにアクセスしようとすると、元のタイプに一致する追加機能を提供する特殊なオブジェクト「元のRapperオブジェクト」が作成されます.
Rapperオブジェクトごとに提供される方法も異なります.元の値を使用しようとすると、Repperオブジェクトの内部プロセスが元の値を単純に保つため、メソッドが呼び出されることがあります.
var bar = "baz";
console.log(bar); // baz
bar.toUpperCase();
console.log(bar); // baz
var foo = [];
console.log(foo); // []
foo.push("plugh");
console.log(foo); // ["plugh"]
bar = bar.toUpperCase(); // BAZ
変数は新しい値を再割り当てできますが、オブジェクト、配列、関数とは異なるため、作成された元の値を変換することはできません.🤗
以下に、少し異なる例を示します.
let foo = 5;
let foo2 = 2;
function addTwo(num) {
num += 2;
}
function addTwo_v2(foo) {
foo += 2;
}
foo2++;
console.log(foo2); // 7
addTwo(foo);
console.log(foo); // 5
addTwo_v2(foo);
console.log(foo2); // 3
foo 2の場合は演算子として理解できますただし、addTwo、addTwo v 2の演算子を使用し、foo値は変更されません.
これは、関数の内部スキャン内で計算されるパラメータが、コピーではなくグローバル領域参照fooであるためである.
関数の引数はコピーです。
関数に「foo=num」の値を再割り当てする必要があります.
Primitive Type(元のデータ型)
「銀は変わらない」という知識を得て終わります~
Reference
この問題について(JAvascriptカーネル集約332.Primitive Type(元のデータ型)), 我々は、より多くの情報をここで見つけました https://velog.io/@404/자바스크립트-핵심컨샙33-2.-Primitive-Types원시-자료형テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol