js基本データタイプ
9281 ワード
jsの基本データタイプ文字列 数字 ブール
JavaScriptでは、nullは元の値の一つとしてマークされています.その行為は元のように見えるからです.しかし、その目的はオリジナルではなく、各Objectはnull値から派生しているので、typeoff checker objectはこのために「」のタグを返します.
undefined
undefinedは、先に宣言された変数に自動的に割り当てられたか、または実際のパラメータがない形式のパラメータの元の値です.
BigInt参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt BigIntは253−1より大きい整数を表す方法を提供する内蔵オブジェクトである.これは元々JavascriptでNumberで表現できる最大の数字です.BigIntは任意の大きな整数を表すことができる.
説明は、1つの整数字面量の後にnを加算するように、1つのBigIntを定義することができ、例えば、10 n、または関数BigInt()を呼び出すことができる.
const theBiggest Int=9007199254740991 n;
const alsoHuge=BigInt(9007199254740991);↪ 9007199254740991 n
const hugeStering=BigInt(「9007199254740991」);↪ 9007199254740991 n
const hugeHex=BigInt("0 x 1 fffffffffffffffffff")/.↪ 9007199254740991 n
const hugeBin=BigInt(「0 b 11111111111111111111111111111111111111111111111111111111111111111111111111」);↪ 9007199254740991 nは、いくつかの態様ではNumberに似ていますが、いくつかの重要な違いがあります.Mathオブジェクトには使用できない方法です.任意のNumber例との混合演算はできません.両者は同じタイプに変換しなければなりません.BigInt変数はNumber変数に変換すると精度が失われる可能性がありますので、2つのタイプの往復変換には注意してください.
タイプ情報にtypeofテストを使うと、BigIntオブジェクトは「bigint」に戻ります.
typeof 1 n==「bigint」//true typeof BigInt(‘1’)==‘bigint’;trueはObjectで包装した後、BigIntは普通の「Object」と見なされます.
type of Object(1 n)==‘object’;true演算以下の操作子はBigIntと一緒に使用できます.+、
const previous MaxSafe=BigInt(Number.MAX HuSAFE INTEGER)//↪ 9007199254740991 n
const maxPlusOne=previous MaxSafe+1 n;/↪ 9007199254740992 n
const theFuture=previous MaxSafe+2 n;/↪ 9007199254740993 n、this works now!
const multi=previous MaxSafe*2 n;/↪ 1801498509481982 n
const subtr=multi–10 n;/↪ 1801498509481972 n
const mod=multi%10 n;/↪ 2 n
const bigN=2 n*54 n;/↪ 1801498509481984 n
bigN*-1 n//↪ –1801498509481984 n/演算子は整数の演算に対しても大丈夫です.しかし、これらの変数はBigIntであり、BigDecimalではないので、この操作子は結果的にゼロに整理されます.つまり、小数点以下の部分には戻りません.
BigIntを使用すると小数点以下の演算が消去されます.
const expected=4 n/2 n;/↪ 2 n
const rounded=5 n/2 n;/↪ 2 n,not 2.5 n
BigIntとNumberを比較すると厳密には同等ではないが、緩和は同等である.
0 n==0//↪ false
0 n==0//↪ true NumberとBigIntは比較できます.
1 n<2//↪ true
2 n>1/↪ true
2>2/↪ false
2 n>2//↪ false
2 n>=2//↪ trueの両方も1つの配列に混ぜて並べ替えられます.
const mixed=[4 n,6,-12 n,10,4,0,0 n]↪ [4 n,6,-12 n,10,4,0,0 n]
mixed.sort()//↪ [-12 n,0 n,10 n,4 n,4,6]Objectに包装されたBigIntsはObjectの比較規則を用いて比較し,同じオブジェクトだけが比較時に等しいことに注意する.
0 n==Object(0 n)//false Object(0 n)==Object(0 n)//false
const o=Object(0 n);o==o//true条件BigIntはBooleanに変換する必要がある時の表現はNumberに似ています.Boolean関数で変換すると.Logical Operators𞓜、
if(0 n){consolie.log(‘Hello from the if!]);}else{consolone.log(‘Hello from the else!’);}
//↪ 「Hello from the else!」
0 n 124 12 n/↪ 12 n
0 n&&12 n//↪ 0 n
Boolean(0 n)//↪ false
Boolean(12 n)//↪ true
!12 n///↪ false
!0 n///↪ trueコンストラクタBigInt()はBigIntオブジェクトを作成します.静的方法BigInt.asIntN()は、BigInt値を1つの-2 width-1と2 width-1-1の間の符号付き整数に変換する.BigInt.asUintN()は、1つのBigInt値を0と2 width-1の間の符号なし整数に変換する.例示的な方法BigInt.prototype.toLocaleString()は、この数字のlangage-sensitive形式の文字列を返します.Object.prototype.toLocal Stringを上書きする方法.BigInt.prototype.toString()は、指定された数字を基数で表す文字列を返します.Object.prototype.toString()を上書きする方法です.BigInt.prototype.valueOf()は、指定されたオブジェクトのベース値を返します.Object.prototype.valueOf()を上書きする方法です.推奨変換は、NumberとBigIntの間で変換すると精度が損なわれるため、値が253より大きい場合のみBigIntタイプを使用し、2つのタイプの間で相互変換しないことを示唆している.
暗号学はBigIntの動作が定数時間ではないので,BigIntは暗号学に適していない.
JSONではどのBigInt値に対してもJSON.stringify()を使うとType Errorを誘発します.デフォルトではBigInt値はJSONでは順番に並べられません.しかし、必要であれば、toJSON方法を実現することができる.
BigInt.prototype.toJSON=function(){return this.toString()}JSON.strigifyは現在、以下のような文字列を生成しています.
JSON.strigify(BigInt(1)/‘「1」
1.
var str='str' //var
2.
let str1=new String('str1') //let new
let str2=String('str1') //
Symbol , Symbol() ,symbol ,
, ,symbol ,
, ,
let sy=Symbol ('Sy') //let
let firstSymbol = Symbol();
let person = {
[firstSymbol]: 'symbolName'
}
let dog = {
};
dog[firstSymbol] = "sybolName"
参考:https://www.cnblogs.com/SamWeb/p/10686811.html 参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Object/Symbol1.
var num=123 //var
2.
let num1=new Number('123') //let new
let num2=Number('123')
Big Int1. (BigInt )
var big=123n //var
2.
let big1=BigInt (123) //let
Number BigInt , 253 BigInt , 。
1.
var boo=true //var
2.
let num1=new Boolean(true) //let new
let num2=Boolean(true)
nullJavaScriptでは、nullは元の値の一つとしてマークされています.その行為は元のように見えるからです.しかし、その目的はオリジナルではなく、各Objectはnull値から派生しているので、typeoff checker objectはこのために「」のタグを返します.
undefined
undefinedは、先に宣言された変数に自動的に割り当てられたか、または実際のパラメータがない形式のパラメータの元の値です.
BigInt参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt BigIntは253−1より大きい整数を表す方法を提供する内蔵オブジェクトである.これは元々JavascriptでNumberで表現できる最大の数字です.BigIntは任意の大きな整数を表すことができる.
説明は、1つの整数字面量の後にnを加算するように、1つのBigIntを定義することができ、例えば、10 n、または関数BigInt()を呼び出すことができる.
const theBiggest Int=9007199254740991 n;
const alsoHuge=BigInt(9007199254740991);↪ 9007199254740991 n
const hugeStering=BigInt(「9007199254740991」);↪ 9007199254740991 n
const hugeHex=BigInt("0 x 1 fffffffffffffffffff")/.↪ 9007199254740991 n
const hugeBin=BigInt(「0 b 11111111111111111111111111111111111111111111111111111111111111111111111111」);↪ 9007199254740991 nは、いくつかの態様ではNumberに似ていますが、いくつかの重要な違いがあります.Mathオブジェクトには使用できない方法です.任意のNumber例との混合演算はできません.両者は同じタイプに変換しなければなりません.BigInt変数はNumber変数に変換すると精度が失われる可能性がありますので、2つのタイプの往復変換には注意してください.
タイプ情報にtypeofテストを使うと、BigIntオブジェクトは「bigint」に戻ります.
typeof 1 n==「bigint」//true typeof BigInt(‘1’)==‘bigint’;trueはObjectで包装した後、BigIntは普通の「Object」と見なされます.
type of Object(1 n)==‘object’;true演算以下の操作子はBigIntと一緒に使用できます.+、
*
、-
、**
、%
.>>(符号なしで右にシフト)以外のビット操作もサポートできます.BigIntはすべて符号が付いているので、>>(符号なしで右にシフト)はBigIntには使えません.asm.jsに対応するために、BigIntは単眼(+)演算子をサポートしていません.const previous MaxSafe=BigInt(Number.MAX HuSAFE INTEGER)//↪ 9007199254740991 n
const maxPlusOne=previous MaxSafe+1 n;/↪ 9007199254740992 n
const theFuture=previous MaxSafe+2 n;/↪ 9007199254740993 n、this works now!
const multi=previous MaxSafe*2 n;/↪ 1801498509481982 n
const subtr=multi–10 n;/↪ 1801498509481972 n
const mod=multi%10 n;/↪ 2 n
const bigN=2 n*54 n;/↪ 1801498509481984 n
bigN*-1 n//↪ –1801498509481984 n/演算子は整数の演算に対しても大丈夫です.しかし、これらの変数はBigIntであり、BigDecimalではないので、この操作子は結果的にゼロに整理されます.つまり、小数点以下の部分には戻りません.
BigIntを使用すると小数点以下の演算が消去されます.
const expected=4 n/2 n;/↪ 2 n
const rounded=5 n/2 n;/↪ 2 n,not 2.5 n
BigIntとNumberを比較すると厳密には同等ではないが、緩和は同等である.
0 n==0//↪ false
0 n==0//↪ true NumberとBigIntは比較できます.
1 n<2//↪ true
2 n>1/↪ true
2>2/↪ false
2 n>2//↪ false
2 n>=2//↪ trueの両方も1つの配列に混ぜて並べ替えられます.
const mixed=[4 n,6,-12 n,10,4,0,0 n]↪ [4 n,6,-12 n,10,4,0,0 n]
mixed.sort()//↪ [-12 n,0 n,10 n,4 n,4,6]Objectに包装されたBigIntsはObjectの比較規則を用いて比較し,同じオブジェクトだけが比較時に等しいことに注意する.
0 n==Object(0 n)//false Object(0 n)==Object(0 n)//false
const o=Object(0 n);o==o//true条件BigIntはBooleanに変換する必要がある時の表現はNumberに似ています.Boolean関数で変換すると.Logical Operators𞓜、
&&
と!の操作数またはif statementのような条件文で使用します.if(0 n){consolie.log(‘Hello from the if!]);}else{consolone.log(‘Hello from the else!’);}
//↪ 「Hello from the else!」
0 n 124 12 n/↪ 12 n
0 n&&12 n//↪ 0 n
Boolean(0 n)//↪ false
Boolean(12 n)//↪ true
!12 n///↪ false
!0 n///↪ trueコンストラクタBigInt()はBigIntオブジェクトを作成します.静的方法BigInt.asIntN()は、BigInt値を1つの-2 width-1と2 width-1-1の間の符号付き整数に変換する.BigInt.asUintN()は、1つのBigInt値を0と2 width-1の間の符号なし整数に変換する.例示的な方法BigInt.prototype.toLocaleString()は、この数字のlangage-sensitive形式の文字列を返します.Object.prototype.toLocal Stringを上書きする方法.BigInt.prototype.toString()は、指定された数字を基数で表す文字列を返します.Object.prototype.toString()を上書きする方法です.BigInt.prototype.valueOf()は、指定されたオブジェクトのベース値を返します.Object.prototype.valueOf()を上書きする方法です.推奨変換は、NumberとBigIntの間で変換すると精度が損なわれるため、値が253より大きい場合のみBigIntタイプを使用し、2つのタイプの間で相互変換しないことを示唆している.
暗号学はBigIntの動作が定数時間ではないので,BigIntは暗号学に適していない.
JSONではどのBigInt値に対してもJSON.stringify()を使うとType Errorを誘発します.デフォルトではBigInt値はJSONでは順番に並べられません.しかし、必要であれば、toJSON方法を実現することができる.
BigInt.prototype.toJSON=function(){return this.toString()}JSON.strigifyは現在、以下のような文字列を生成しています.
JSON.strigify(BigInt(1)/‘「1」