導入
JavaScriptデータ型は、基本型(またはプリミティブタイプ)と参照タイプの2つのカテゴリに分割されていることを知っています。
基本タイプの値は、スタックメモリに保存されているデータの単純なセグメントであり、値によってアクセスされます。 JSには、未定義、ヌル、ブール、数字、文字列の5つの基本タイプがあります。
参照型値は、ヒープメモリに保存されたオブジェクトであり、その値は参照によってアクセスされます。参照タイプは、主にオブジェクト、配列、関数、regexp、および日付です。
オブジェクトにはプロパティとメソッドがあるため、次のコードが表示されることは驚くことではありません。
var favs = ['egg'、 'lotus pot']; favs.push( 'okra'); console.log(favs); // ["egg"、 "lotus pot"、 "okra"] console.log(favs.length); // 3
配列は参照タイプであるため、夏にアイスクリームを食べなければならないような自然な属性(長さ)と方法(プッシュ)を自然に持つことができます。しかし、次のコードを見て、それについて慎重に考えてください、これは、これ、これ、合法ですか?
var Realmessage = "私はあなたを愛していましたが、私は嘘をつきました"; var mymessage = realmessage.substring(5,15); console.log(mymessage); //"愛してます"
「サブストリング」メソッドを実行する悲嘆の少女がいて、分裂に使用される文字列に「サブストリング」メソッドを故意に実行し、それからカットと眠りに落ちるのを喜んで見ます。しかし、しかし、文字列は基本的なタイプだと言われていませんか?なぜメソッドがあるのですか? ?他の王の法律はありますか、マスターチンティアン!
実際、これはすべて「基本的なパッケージングタイプ」と呼ばれるものが原因です。この基本的なパッケージタイプは特に正直であり、それは本当の「問題の後に服を返す、メリットと名声を隠している」!
基本的なパッケージングタイプ
最初に記載されているオブジェクトや配列などの参照タイプに加えて、JavaScriptは3つの特別な参照タイプを提供します:文字列、数字、ブール波は、対応する基本型を操作することを容易にします。
クリッピング文字列の上記の例を見てください。サブストリング方法を使用しているにもかかわらず、RealMessage自体の値は変わらないことに気付きましたか。このメソッドを呼び出すと、新しい文字列のみが返されます。
これは、基本的なパッケージングタイプが行うことです。もともとは方法がありませんが、それを使用したい場合は、調整するだけで、対応する基本包装タイプにこの方法があります。たとえば、上記のサブストリングメソッドは、基本的なタイプの文字列がこの方法を持つことは不可能ですが、パッケージングの種類の文字列には、この方法を実行した後、ささやき、結果を返します。の実行について:
このコード行(5,15)のrealmessage.substring(5,15)が発生したときに多くのことが起こりました。
まず、メモリからのRelemessageの価値を読み取ります。この読み取りモードでは、背景が機能し始めます。 JSの標高は、次のようなバックグラウンドで完了したこれらのアクションについて説明します。
1.文字列タイプのインスタンスを作成します。
2。インスタンスの指定されたメソッドを呼び出します。
3。このインスタンスを破壊します
上記の例は、次のようなコードで説明できます。
var _realmessage = new String( "私はあなたを愛しているが、私は嘘をついた」) //メソッドが呼び出された後に破壊します
したがって、このようにして、基本型文字列が独自の方法を実行するのではなく、背景が対応する基本的なラッパー型文字列を作成することを理解しています。基本タイプの値に基づいてインスタンスをインスタンスにし、このインスタンスが指定された方法を呼び出し、最終的に動いている自分自身を破壊します。
基本的なラッパータイプの最後のステップの「破壊」機能に注意してください。これにより、基本タイプの値にカスタムプロパティとメソッドを追加できないと判断されます。
var me = "sunjing"; me.age = 18; console.log(me.age); // undefined
「私」の文字列に年齢属性を追加しましたが、その値は18歳になるように設定されています。しかし、私が再びアクセスしたとき、この属性はなくなりました。これは:
コード属性の割り当ての2行目が実行されると、基本的なラッパータイプのインスタンスが背景に作成されます。この年齢の属性は確かにインスタンスに掛けられていますが、その後すぐに、インスタンスは破壊されます。 3行目に実行すると、基本的なラッパータイプの新しいインスタンスが再現され、当然のことながら年齢属性はありません。
基本的なパッケージングタイプを表示します
読み取りモードの文字列に加えて、背景は基本的なラッパータイプインスタンスを作成するのに役立ち、これも表示できます。
var str = new String( "hello"); var str2 = str.touppercase(); console.log(str2); // "hello:
これは、背景が作成されるのに役立つときに変数に保存されるものとは異なります。
var str1 = new String( "hello"); var str2 = "hello"; typeof str1 // "オブジェクト" typeof str2 // "string"
要約します
基本的なパッケージタイプのおかげで、3つの基本タイプの文字列、ブール、および数を操作する方が便利です。これらの3つの基本タイプ値が読み取られるたびに、背景は対応するラッパータイプインスタンスを作成します。このインスタンスは指定された方法を呼び出し、呼び出し後に破壊されます。この短いライフサイクルは、プリミティブタイプにカスタムプロパティとメソッドを追加できないことを決定します。
上記の記事には、文字列がJavaScriptで所有できる理由を深く理解しています。これは私があなたと共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。