ホームページ  >  記事  >  ウェブフロントエンド  >  オブジェクトをプリミティブ値に変換する実装方法(グラフィックチュートリアル)

オブジェクトをプリミティブ値に変換する実装方法(グラフィックチュートリアル)

亚连
亚连オリジナル
2018-05-21 11:07:001286ブラウズ

次に、オブジェクトをプリミティブ値に変換する実装方法をお届けします。今からそれを皆さんと共有し、皆さんの参考にしてください。

まず、プリミティブ値の概念を理解する必要があります

プリミティブ値

は、スタックに保存される単純なデータセグメントです。つまり、その値は、次の場所に直接保存されます。変数にアクセスされます。

参照値

ヒープに格納されているオブジェクト、つまり変数に格納されている値は、オブジェクトが格納されているメモリを指すポインタ(点)です

————参照理解w3c の概念

元の値、簡単に理解すると null 未定義の文字列番号 ブール値 これらの

オブジェクトをブール値に変換するのは比較的簡単です

すべてのオブジェクト (配列と関数を含む) は true に変換され、パッケージ化オブジェクトはObject から変換されたものも true に変換されます

この本には、「文字列、数値、ブール値の属性にアクセスするときに作成される一時的なオブジェクトは、パッケージング オブジェクトと呼ばれます」と書かれています。これが私が理解している文字列です。 new によって生成される Numbers および boolean はすべてパッケージ化オブジェクトとみなされます。これらはオブジェクトとは異なりますが、主な違いは、文字列 number Boolean のプロパティは読み取り専用であるため、オブジェクトをパッケージ化するために新しいプロパティを定義できないことです。 。

オブジェクトを文字列型に変換する

オブジェクトにtoString()メソッドがある場合、プリミティブ値が返された場合はtoString()メソッドを呼び出し、プリミティブ値を文字列型に変換します。この string に toString() メソッドがない場合、またはこのメソッドによって返される値がプリミティブ値ではない場合は、 valueOf() メソッドを呼び出します。プリミティブ値が返される場合は、そのプリミティブ値を に変換します。文字列の場合、オブジェクトは文字列に変換されます。戻り値がプリミティブ値でない場合は、型変換エラーがスローされます。

toString()メソッドとvalueOf()メソッドについては、一つ一つ説明しません。

オブジェクトを数値型に変換する処理は、文字列に変換する処理と全く同じです。最初に valueOf () メソッドを呼び出し、次に toString() メソッドを呼び出します。最後に、toString() メソッドが元の値を返さない場合、js はエラーをスローします。

「==」および「+」演算子を使用して数値計算または文字列連結を実行する場合、演算子の一方がオブジェクトの場合、オブジェクトをプリミティブ値に変換する特別な方法が使用されます。日付以外のオブジェクトの場合、オブジェクトは最初に valueOf() メソッドを呼び出し、次に tostring() メソッドを呼び出すことによってプリミティブ値に変換され、これら 2 つのメソッドの呼び出しによって取得された元の値が、変換された元の値として直接使用されます。日付オブジェクトの場合は、最初に toString() メソッドを呼び出し、次に valueOf メソッドを呼び出します。

日付オブジェクトをプリミティブ値に変換する例を挙げてみましょう

var now=new Date(); 
typeOf(now+1);     //"string" 将日期对象转换成了字符串,因为先调用的是toString()方法 
typeOf(now-1);      //"number" 体现了js的灵活性,"-"将字符串转换线成了number

上記は私がまとめたもので、将来的には皆さんのお役に立てれば幸いです。

関連記事:

JavaScriptの5つの一般的な関数の詳細説明

JavaScriptコード最適化の詳細説明

JavaScriptの呼び出しと適用

以上がオブジェクトをプリミティブ値に変換する実装方法(グラフィックチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。