ホームページ ウェブフロントエンド jsチュートリアル JavaScriptの値型と参照型の変換使用例を詳しく解説

JavaScriptの値型と参照型の変換使用例を詳しく解説

Jul 18, 2017 pm 04:26 PM
javascript js 変換する

JavaScript のデータ型は、null、unknown、boolean、string、number、object の 6 つの型に分類されます。 object は参照型で、他の 5 つは基本型またはプリミティブ型です。 typeof メソッドを使用して、何かがどのタイプに属しているかを出力できます。異なる型の変数を比較するには、まず型を変換する必要があります。これを型変換といいます。型変換は暗黙的な変換とも呼ばれます。暗黙的な変換は通常、加算、減算、乗算、除算、等しい、より小さい、より大きいなどの演算子を使用して発生します。 。

1. 値型間のデータ型変換:

JavaScript のデータ型については、JavaScript データ型の詳細な説明の章を参照してください。

(1). 数値と文字列に + 演算子を使用します。

数値と文字列に + 演算子を使用すると、まず数値が文字列に変換され、次に文字列の連結演算が実行されます。


var antzone = "antzone";
var num = 8;
console.log(antzone+num);
ログイン後にコピー

(2). ブール値を含む + 演算子演算:

ブール型が関係している場合、まずブール値が対応する数値または文字列に変換され、次に対応する文字列接続が行われます。または算術演算が実行されます。


var bool = true;
var num = 8;
console.log(bool + num);
ログイン後にコピー

上記のコードは、まず true を数値 1 に変換し、次に算術加算を実行します。


var bool = true;
var num = "8";
console.log(bool + num);
ログイン後にコピー

上記のブール値は、対応する文字列形式「true」に変換され、文字列の連結が実行されます。

(3). 減算演算:

減算演算が実行される場合、まず両方のオペランドが数値に変換され、次に算術演算が実行されます:


var bool = true;
var num = "8";
console.log(bool - num);
ログイン後にコピー

true は数値 1 に変換されます。 , 文字列「8」は数字の8に変換されて算術演算が行われます。

乗算、除算、より大きい、より小さい、引き算の変換についても同様なので、例は示しません。

(4).== 等価演算:

unknown と null はどちらも == 演算子を使用して true を返します。


console.log(undefined==null);
ログイン後にコピー

他の値型を比較す​​る場合、オペランドは数値に変換されます


console.log("3"==3);
ログイン後にコピー

上記のコードは文字列「3」を数値に変換して比較します。


console.log("1"==true);
ログイン後にコピー

上記のコードは、「1」とtrueをそれぞれ数値に変換して比較します。

2. 参照型から値型への変換:

参照型 (オブジェクト) から値型への変換は、以下で説明されています。

オブジェクト継承の 2 つのメソッドは、オブジェクトから値型への変換関数を実現するのに役立ちます:

(1).toString() メソッド。

(2).valueOf() メソッド。

通常、オブジェクトを文字列に変換するには toString() メソッドを呼び出す必要があり、オブジェクトを数値に変換するには valueOf() メソッドを呼び出す必要があると思いますが、それはそれほど単純ではありません実際に適用される場合は、次のコード例を参照してください。


var obj = {
 webName: "phpcn",
 url:"php.cn"
}
console.log(obj.toString());
ログイン後にコピー

上記のコードからわかるように、toString() メソッドは、オブジェクトをこのオブジェクトを反映する文字列に変換しません。


var arr = [1, 2, 3];
console.log(arr.valueOf());
ログイン後にコピー

上記のコードからわかるように、valueOf() メソッドはオブジェクトを、このオブジェクトを反映する数値に変換しません。


var arr = [1, 2, 3];
console.log(arr.toString());
ログイン後にコピー

配列オブジェクトの toString() メソッドは、配列をこの配列オブジェクトを反映する文字列に変換できます。

は次のように要約されます:

(1)。最初の例のように、一部のオブジェクトは単に toString() または valueOf() メソッドを継承します。
(2). 一部のオブジェクトは 2 つのメソッドを継承するだけでなく、それらを書き換えます。

つまり、オブジェクト メソッドの中には、文字列または数値に変換するという目標を達成できるものと、達成できないものがあります。

toString() または valueOf() を呼び出してオブジェクトを文字列または数値に変換するための規則は次のとおりです。

toString() を呼び出すとき、オブジェクトにこのメソッドがある場合、このメソッドが返された場合はこのメソッドが呼び出されます。値型データ。次に、この値型データを返し、コンテキストに従って関連するデータ型変換を実行します。 toString() が存在しない場合、またはこのメソッドの戻り値が値型データでない場合は、 valueOf() が呼び出されます (このメソッドが存在する場合)。 valueOf() が値型データを返す場合は、関連するデータ型変換を実行するコンテキスト環境。

さらなる説明:

(1). 上記は、デフォルトでの valueOf() メソッドと toString() メソッドの関数 (オブジェクトを数値または文字列に変換する) を説明していますが、これは厳密で高速な関数ではないことに注意してください。つまり、 valueOf() メソッドが数値を返す必要も、 toString() メソッドが文字列に変換される必要もありません。たとえば、単純に継承されたこれら 2 つのメソッドは、への変換機能を実装できません。別の例として、これら 2 つのメソッドを高く評価することもできます。戻り値は数値や文字列である必要はありません。

(2).还有需要特别注意的一点就是,很多朋友认为,转换为字符串首先要调用toString()方法, 其实这是错误的认识,我们应该这么理解,调用toString()方法可以转换为字符串,但不一定转换字符串就是首先调用toString()方法。

看如下代码实例:


var arr = [];
arr.valueOf = function () { return "1"; }
arr.toString = function () { return "2"; }
console.log(arr + "1");
ログイン後にコピー

上面的代码中,arr是要被转换为字符串的,但是很明显是调用的valueOf()方法,而没有调用toString()方法。有些朋友可能会有这样的质疑,难道[2]这样的数字转换成字符串"2",不是调用的toString()方法吗。

代码如下:


var arr = [2];
console.log(arr + "1");
ログイン後にコピー

其实过程是这样的,首先arr会首先调用valueOf()方法,但是数字的此方法是简单继承而来,并没有重写(当然这个重写不是我们实现),返回值是数组对象本身,并不是一个值类型,所以就转而调用toString()方法,于是就实现了转换为字符串的目的。

总结如下:

大多数对象隐式转换为值类型都是首先尝试调用valueOf()方法。但是Date对象是个例外,此对象的valueOf()和toString()方法都经过精心重写,默认是调用toString()方法,比如使用+运算符,如果在其他算数运算环境中,则会转而调用valueOf()方法。

代码实例如下:


var date = new Date();
console.log(date + "1");
console.log(date + 1);
console.log(date - 1);
console.log(date * 1);
ログイン後にコピー

以上がJavaScriptの値型と参照型の変換使用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

全角英字を半角に変換するための実践的なヒント 全角英字を半角に変換するための実践的なヒント Mar 26, 2024 am 09:54 AM

全角の英字を半角に変換する実践的なヒント. 現代の生活において私たちは英語の文字に触れる機会が多く、パソコンや携帯電話などを使用する際に英語の文字を入力する必要が多くなります。ただし、場合によっては全角の英字が登場するため、半角形式を使用する必要があります。では、全角の英字を半角に変換するにはどうすればよいでしょうか?ここでは、いくつかの実践的なヒントを紹介します。まず、全角英数字とはインプットメソッド内で全角の位置を占める文字のことを指しますが、半角英数字は全角の位置を占めます。

Windows 11/10でODTをWordに変換するにはどうすればよいですか? Windows 11/10でODTをWordに変換するにはどうすればよいですか? Feb 20, 2024 pm 12:21 PM

この記事では、OpenDocumentTextDocument (ODT) ファイルを Microsoft Word (Docx、DOC など) に変換する方法を説明します。フォーマット。 Windows 11/10 で ODT を Word に変換する方法 Windows PC で ODT ドキュメントを DOC または DOCX 形式に変換する方法は次のとおりです: WordPad または Word を使用して ODT を Word に変換する 最初に紹介する方法は、WordPad または Word を使用することです。 MicrosoftWord を使用して ODT を Word に変換します。これを実現する手順は次のとおりです。 まず、[スタート] メニューを使用してワードパッド アプリを開きます。さあ、ここに行ってください

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

AIファイルをCDR形式に変換する方法 AIファイルをCDR形式に変換する方法 Feb 19, 2024 pm 04:09 PM

AI ファイルは Adob​​e Illustrator (略して AI) ソフトウェアで作成されたベクター グラフィック ファイルを指しますが、CDR ファイルは CorelDRAW ソフトウェアで作成されたベクター グラフィック ファイルを指します。これら 2 つのソフトウェアは異なる製造元によって開発されているため、ファイル形式が異なるため、相互に直接変換することはできません。ただし、いくつかの方法で AI ファイルを CDR ファイルに変換できます。よく使われる変換方法を以下に紹介します。ステップ 1: AI ファイルを EPS 形式でエクスポートする Adob​​eIllust

Golang の時間処理: Golang でタイムスタンプを文字列に変換する方法 Golang の時間処理: Golang でタイムスタンプを文字列に変換する方法 Feb 24, 2024 pm 10:42 PM

Golang の時間変換: タイムスタンプを文字列に変換する方法 Golang では、時間操作は非常に一般的な操作の 1 つです。表示や保存を容易にするために、タイムスタンプを文字列に変換する必要がある場合があります。この記事では、Golang を使用してタイムスタンプを文字列に変換する方法と、具体的なコード例を紹介します。 1. タイムスタンプと文字列の変換 Golang では、タイムスタンプは通常、1970 年 1 月 1 日から現在時刻までの秒数を表す整数の形式で表現されます。文字列は

仮想マシンを物理マシンに変換するにはどうすればよいですか? 仮想マシンを物理マシンに変換するにはどうすればよいですか? Feb 19, 2024 am 11:40 AM

仮想マシン (VM) を物理マシンに変換することは、仮想インスタンスおよび関連するアプリケーション ソフトウェアを物理ハードウェア プラットフォームに移行するプロセスです。この変換は、オペレーティング システムのパフォーマンスとハードウェア リソースの使用率を最適化するのに役立ちます。この記事は、この変換を行う方法を詳しく説明することを目的としています。仮想マシンから物理マシンへの移行を実装するにはどうすればよいですか?通常、仮想マシンと物理マシン間の変換プロセスは、サードパーティ ソフトウェアによって仮想マシンの外部で実行されます。このプロセスは、仮想マシンの構成とリソースの転送を含む複数の段階で構成されます。物理マシンを準備する: 最初のステップは、物理マシンが Windows のハードウェア要件を満たしていることを確認することです。変換プロセスにより既存のデータが上書きされるため、データを物理マシンにバックアップする必要があります。 *システムイメージを作成するための管理者権限を持つ管理者アカウントのユーザー名とパスワード。仮想になります

PHPの月を英語の月に変換する実装方法を詳しく解説 PHPの月を英語の月に変換する実装方法を詳しく解説 Mar 21, 2024 pm 06:45 PM

この記事では、PHPの月を英語の月に変換する方法と具体的なコード例を詳しく紹介します。 PHP 開発では、デジタル月を英語の月に変換する必要がある場合があります。これは、一部の日付処理またはデータ表示シナリオでは非常に実用的です。以下に実装原理、具体的なコード例、注意点について詳しく説明します。 1. 実装原理 PHP では、DateTime クラスと format メソッドを使用して、デジタル月を英語の月に変換できます。日付

qq 音楽を mp3 形式に変換する方法 携帯電話で qq 音楽を mp3 形式に変換します qq 音楽を mp3 形式に変換する方法 携帯電話で qq 音楽を mp3 形式に変換します Mar 21, 2024 pm 01:21 PM

QQ Music を使用すると、誰でも映画を楽しんだり、退屈を解消したりすることができます。このソフトウェアを毎日使用して、あなたのニーズを簡単に満たすことができます。誰もが聴くことができる高品質の曲が多数用意されています。ダウンロードして保存することもできます。次回聴くときはインターネット接続は必要ありません。ここでダウンロードした曲は MP3 形式ではないため、他のプラットフォームでは使用できません。メンバーシップ曲の有効期限が切れると、再度聴くことはできません。そのため、 , 多くの友人が曲を MP3 形式に変換したいと考えています。ここでは、編集者が説明します。誰もが使用できるように方法を提供しています。 1. コンピュータで QQ Music を開き、右上隅の [メインメニュー] ボタンをクリックし、[オーディオトランスコーディング] をクリックし、[曲を追加] オプションを選択して、変換する必要がある曲を追加します; 2. 追加した後、曲をクリックして [mp3] に変換を選択します

See all articles