オブジェクトプロトタイプの値()オブジェクトの valueOf は、オブジェクトのプリミティブ値を返すように設計されており、必要な場合はいつでもオブジェクトをそのプリミティブ値に自動的に変換します。詳細はここをクリックしてください。 オブジェクトプロトタイプtoString()toString() メソッドはオブジェクトの文字列表現を返し、オブジェクトが文字列に変換されることが予想される場合に自動的に実行されます。オブジェクトのデフォルトの toString() メソッドは [オブジェクト タイプ] を返します。ここで、type はオブジェクトのコンストラクターの名前です。詳細はここをクリックしてください。 シンボル.toPrimitive
obj = { [Symbol.toPrimitive](ヒント) { スイッチ(ヒント){ ケース '番号': 123を返します。 ケース '文字列': 'str' を返します。 'デフォルト'の場合: 'デフォルト' を返します。 デフォルト: 新しい Error() をスローします。 } } }; 2 * オブジェクト // 246 3 + オブジェクト // '3default' obj == 'default' // true 文字列(obj) // 'str' オブジェクト変換プリミティブ値上記の 3 つのメソッドは、オブジェクトが何らかのプリミティブ値に変換されることが予想される場合にトリガーされます。 1. 文字列型に変換される予定
出力が実行される場所(alert()など) 文字列(obj) a = {とする 文字列を変換する '2' を返す } } コンソール.log(文字列(a)) // 2 文字列連結(+)演算 a = {とする 文字列を変換する '2' を返す } } コンソールログ(a + 'vv') テンプレート文字列 a = {とする [Symbol.toPrimitive] (ヒント) { console.log(ヒント) // 文字列 戻る 2 } } console.log(`Are you old ${a}?`) // あなたは古いですか 2? 2. 数値型に変換される予定
分割: a = {とする 値(){ 戻る 2 } } コンソール.log(2 / a, a / 2) // 1 1 番号(オブジェクト): a = {とする [Symbol.toPrimitive] (ヒント) { console.log(ヒント) // 数値 戻る 2 } } console.log(数値(a)) // 2 正負の符号(加算や減算の演算ではないことに注意してください): a = {とする [Symbol.toPrimitive] (ヒント) { console.log(ヒント) // 数値 戻る 2 } } コンソール.log(+a) // 2 コンソール.log(-a) // -2 3. デフォルトタイプ(その他)に変換される予定
数値の加算(つまり、加算されるオブジェクトが数値型の場合): a = {とする [Symbol.toPrimitive] (ヒント) { console.log(ヒント) // デフォルト 戻る 2 } } コンソール.log(1 + a) // 3
ブール演算: すべてのオブジェクトが true に変換されます。 a = {とする [Symbol.toPrimitive] (ヒント) { console.log(hint) // トリガーなし false を返す } } console.log(Boolean(a), a && 123) // 真 123
3つのメソッドが実行される順序まず、オブジェクトに Symbol.toPrimitive(hint) メソッドがあるかどうかを確認します。ある場合は、そのメソッドを実行します。ない場合は、次の手順を実行します。 文字列型に変換されることが予想される場合は、まず toString() メソッドが実行されます。 デフォルト型または数値型に変換されることが予想される場合は、最初に valueOf() メソッドが実行されます。 注: valueOf() メソッドが存在しないが、toString() メソッドが定義されている場合は、toString() メソッドが実行されます。 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CSS3はシームレスなスクロールと手ぶれ防止を実現します
>>: Mysql binlog ログファイルが大きすぎる場合の解決策
目次スケルトンスクリーンとは何ですか?デモデザインのアイデア具体的な実装スケルトンスクリーンとは何で...
序文この記事では主に、MySQL で大規模なデータ テーブルのコピーの効率を向上させることに関する関...
この記事では、時間範囲効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...
シナリオ: 検査文書には n 個の検査詳細があり、検査詳細には n 個の検査項目があります。実装効果...
最近、Dreamweaver を使用して製品プレゼンテーションを作成し、画像にハイパーリンクを追加し...
最近、ビジネス側から、一部のユーザー情報の挿入に失敗し、エラー メッセージが「不正な文字列値:&qu...
1. Mycatの適用シナリオMycat は幅広いシナリオに合わせて開発されており、新しいユーザーが...
パブリック関数 json_product_list($where, $order){ グローバル ...
1. ネストされたルーティングはサブルーティングとも呼ばれます。実際のアプリケーションでは、通常、ネ...
ステップ1: ディープ「グラフィックドライバー」をインストールするdeepin v20にはデフォルト...
目次序文1.nullでない2. ユニーク3. デフォルト4.主キー自動増分主キー5. 外部キー6.チ...
Docker はホストマシン上のブリッジを仮想化します。コンテナを作成して起動すると、各コンテナには...
前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...
ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...
まず、MySQL公式サイトからインストールパッケージをダウンロードします。MySQLはオープンソース...