4

abooleanは 32 ビット整数としてメモリに格納されていますか? null値はどうですか?

Speaking Javascriptでは、メモリに格納されている値の型を示すために使用されるtype タグを指します。例 type の type タグObjectは 000 でした。 type タグとは何ですか?

またはなどの値型の型タグを見つけるにはどうすればよいですか?booleanstring

4

1 に答える 1

3

このトピックに関するAndy Wingo のブログ投稿から:

当初、すべての JavaScript 実装はタグ付きポインターを使用して JS 値を表していました。これは、割り当てられたメモリが少なくとも 4 バイトまたは 8 バイトを占め、最下位ビットまたは 3 ビットがゼロになるように配置されているという観察に由来する古いトリックです。

したがって、型タグを使用すると、すべての値を均一に格納できます。すべての値は 1 つのマシン ワード (32/64 ビット) を占め、タグ (最下位ビット) に応じて、オブジェクトへのポインターとして、またはタグに応じて整数/ブール値などとして解釈されます。

boolean は js メモリに 32 バイトの整数として格納されますか?

ブール値も 1 ワードを占めます。より具体的な答えについては、v8 ソースを調べる必要があります。しかし、私の記憶が正しければ、trueルートfalseポインターとして表されます。

値型(boolean,undefined,string,number)の型タグを取得する方法;

JavaScriptからそれを行う方法はありません。内部実装の詳細です。

于 2015-09-23T20:41:59.533 に答える