ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript のヒントでのパッケージ化タイプの概要
最近 Rhino の本を読んでいませんでしたが、その本の翻訳はひどく、特にプロトタイプのセクションが汚かったです。その後、同僚に紹介されて、js の高度なプログラミングに関する本を購入しました。それから私はそれを一生懸命読み続けました。もう文句は言わないで、js の新しいパッケージングの種類について話しましょう。
1: 文字列
文字列型について言えば、非常に興味深いものです。通常、以下に示すように文字列型を定義します。
次に、部分文字列などの文字列に対して一連の操作を実行することがよくあります。以下に示すように:
var s=new String("hello") var r=s.substring(3) s="hello"
ご覧のとおり、パッケージ化タイプは、コードの実行時に実際に s を String 参照タイプにラップし、その String 参照タイプで部分文字列メソッドを呼び出してから、「hello」値を s に再割り当てします。そして最後に、その効果は s="hello"、r="lo" です。注意深く観察すると、color などの属性を s に動的に付加した場合、color を再度読み取ると、その属性は付加されないことがわかります。以下の図のような色の値を読み取ります:
先ほども言いましたが、この種のパッケージ化操作はバックグラウンドで js によって動的に追加および削除され、基本型を参照型に変換します。
f35d6e602fd7d0f0edfa6f7d103c1b57: 言うまでもなく、これはスタックとヒープです。C# をよく知っている場合は、ボックス操作とボックス解除操作と考えることができます。
2cc198a1d5eb0d3eb508d858c9f5cbdb: すべての参照型はオブジェクトから継承することがわかります。たとえば、C# ではすべての型がオブジェクトのサブクラスであることに注意してください。 🎜>
内部ではそうではありません。instanceof を使用して確認できます。
String ラッパー クラスを理解していれば、実際には Boolean ラッパー クラスもそれと同じ原理を持っていますが、null または未定義でない限り、Boolean 型を使用するときの注意点があります。それ以外の場合は常に true となり、このブール型は以下に示すように、まさにこのボックス操作を実行します:
この時点では、b はもはや単純な基本型ではなく、参照型であることがわかります。この時点で、「and or」は望む結果を生成できなくなります。 Number ラッパー クラスもあります。これについては注意事項がないため、説明しません。