Javascript Types
13420 ワード
ダイナミック入力(Dynamic Type)
動的言語を使用して変数を設定する場合、JavaScriptは事前にタイプを指定する必要はありません.
変数の値によってタイプが指定されるからです.var ex1 = 42; // ex1은 이제 Number 임
var ex2 = "bar" // ex2는 이제 String 임
var ex3 = true // ex3는 이제 Boolean 임
データ型
最新のECMAScript(ES)規格には7種類のデータ型があります.
var ex1 = 42; // ex1은 이제 Number 임
var ex2 = "bar" // ex2는 이제 String 임
var ex3 = true // ex3는 이제 Boolean 임
最新のECMAScript(ES)規格には7種類のデータ型があります.
元のデータ型(Primitive Type)
オブジェクト以外のすべての元のデータ型は可変ではありません.
Javascriptにはstring, number, undefined, symbol, boolean, null, bigint
があります.var ex1 = "hello";
console.log(ex1); // hello
ex1 = "hi";
console.log(ex1); // hi
ex 1にhelloを割り当てると、文字列「hello」がメモリに書き込まれます.
ex 1は、「hello」の文字列メモリアドレスを参照します.
hiをex 1に後で再割り当てすると、文字列「hello」のメモリを変更せずに、新しいメモリにhiが作成され、そのアドレスが参照されます.
これにより、異なるString値を異なるメモリに格納し、変更時に異なるメモリアドレスを参照できます.
つまり、メモリに割り当てられたデータは変更されません.
Boolean
TrueとFalseの2つの値の論理タイプがあります.
Null
nullという名前の値しかありません.通常、どのオブジェクトも結果値に一致しないことを意味します.
nullとundefinedの違いtypeof null // "object"
typeof undefined // "undefined"
null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null // true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
意図的なクリア値
var ex1 = "hello";
console.log(ex1); // hello
ex1 = "hi";
console.log(ex1); // hi
typeof null // "object"
typeof undefined // "undefined"
null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null // true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
Undefined
値は未割当てを表し、値はundefinedです.
Number
64ビットフォーマットの整数(int)タイプはありません.+finity-finity Nanなどがあります
String
16ビットの符号なし整数要素の集合.
Symbol
ES 6に追加されたタイプで、オブジェクトのキーとして使用できます.
一意で変更できないデフォルト値.
構文
Symbol([description])
const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol('foo');
console.log(typeof symbol1);
// expected output: "symbol"
console.log(symbol2 === 42);
// expected output: false
console.log(symbol3.toString());
// expected output: "Symbol(foo)"
console.log(Symbol('foo') === Symbol('foo'));
// expected output: false
()に構成部品の説明を入力できますが、この値では構成部品にアクセスできません.参照タイプ
Object
キー(key)と値(value)の組み合わせ.
属性はkeyによって識別されます.keyはStringまたはSymbolからなる.
valueは、デフォルトのタイプのすべての値を指定できます.
さまざまな組み合わせのオブジェクトを生成できます.
ただし、キー値にSymbolを設定するとアクセスできない場合があります.(繰り返し文ではJSON.Stringify()
Function
特殊資料型で、補足機能があります.
オブジェクトと見なすことができます.
タイプ区分で機能を確認できます.
Primitive TypeとReference Typeの違い
つまり、メモリの使用方法とコピー方法の2つのタイプが異なります. let x1 = 3;
let y1 = x1;
y1 = 2
console.log(x1) // 3
console.log(y1) // 2
let x2 = {num: 1}
let y2 = x2
y2.num = 3
console.log(x2.num) // 3
console.log(y2.num) // 3
上記の例では、string
(Primitive Type)がx1
に割り当てられ、y1
にコピーされた場合、x1, y1
は、その値自体を保存するために異なるメモリを割り当てる.
ただし、オブジェクトx2
がy2
にコピーされると、オブジェクトは{num:1}
のアドレス値を有し、メモリに格納される.
したがって、互いに同一のオブジェクトを有するアドレス値は、それぞれx2, y2
である.
したがって、x2, y2
のいずれかのnum
と呼ばれるkey
のvalue
を修正すると、同じオブジェクトが変更される.
このような状況は配列中にも同様に発生する.
したがって、配列またはオブジェクトをコピーおよび操作する際にソースコードを遵守する必要がある場合は、追加の操作が必要です.
Spread operator (...) let printNums = function (...arg) {
console.log(arg)
}
printNums(10,20,30); // [10,20,30]
残りの演算を使用して、特定の変数として前の値以外の値を配列に読み込みます.let arg = [10,20,30,40];
let newArr = [0,...arg];
console.log(newArr);
let book = {
title: "Hello world",
createdAt: "2020-12-07",
author: "uom",
}
let newBook = {
...book
author: "jaewon"
}
console.log(newBook)
// {title: "Hello world", createdAt: "2020-12-07", author: "jaewon"}
配列またはオブジェクト内部の値を展開して割り当てます.上書きすることもできます.
もっと勉強しなさい
つまり、メモリの使用方法とコピー方法の2つのタイプが異なります.
let x1 = 3;
let y1 = x1;
y1 = 2
console.log(x1) // 3
console.log(y1) // 2
let x2 = {num: 1}
let y2 = x2
y2.num = 3
console.log(x2.num) // 3
console.log(y2.num) // 3
上記の例では、string
(Primitive Type)がx1
に割り当てられ、y1
にコピーされた場合、x1, y1
は、その値自体を保存するために異なるメモリを割り当てる.ただし、オブジェクト
x2
がy2
にコピーされると、オブジェクトは{num:1}
のアドレス値を有し、メモリに格納される.したがって、互いに同一のオブジェクトを有するアドレス値は、それぞれ
x2, y2
である.したがって、
x2, y2
のいずれかのnum
と呼ばれるkey
のvalue
を修正すると、同じオブジェクトが変更される.このような状況は配列中にも同様に発生する.
したがって、配列またはオブジェクトをコピーおよび操作する際にソースコードを遵守する必要がある場合は、追加の操作が必要です.
Spread operator (...) let printNums = function (...arg) {
console.log(arg)
}
printNums(10,20,30); // [10,20,30]
残りの演算を使用して、特定の変数として前の値以外の値を配列に読み込みます.let arg = [10,20,30,40];
let newArr = [0,...arg];
console.log(newArr);
let book = {
title: "Hello world",
createdAt: "2020-12-07",
author: "uom",
}
let newBook = {
...book
author: "jaewon"
}
console.log(newBook)
// {title: "Hello world", createdAt: "2020-12-07", author: "jaewon"}
配列またはオブジェクト内部の値を展開して割り当てます.上書きすることもできます.
もっと勉強しなさい
let printNums = function (...arg) {
console.log(arg)
}
printNums(10,20,30); // [10,20,30]
let arg = [10,20,30,40];
let newArr = [0,...arg];
console.log(newArr);
let book = {
title: "Hello world",
createdAt: "2020-12-07",
author: "uom",
}
let newBook = {
...book
author: "jaewon"
}
console.log(newBook)
// {title: "Hello world", createdAt: "2020-12-07", author: "jaewon"}
Reference
この問題について(Javascript Types), 我々は、より多くの情報をここで見つけました https://velog.io/@j901207/JavascriptTypesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol