ホームページ ウェブフロントエンド jsチュートリアル js変数型変換の共通関数とコード【総合】_javascriptスキル

js変数型変換の共通関数とコード【総合】_javascriptスキル

May 16, 2016 pm 06:40 PM
変数の型変換

1. 変換関数:

js には、parseInt() と parseFloat() という 2 つの変換関数が用意されています。前者は値を整数に変換し、後者は値を浮動小数点数に変換します。 String 型でこれらのメソッドを呼び出すことによってのみ、これら 2 つの関数が正しく実行されます。他の型では NaN (Not a Number) が返されます。

parseInt() と parseFloat() は両方とも、文字列が数値であるかどうかを判断する前に、文字列を注意深く分析します。 parseInt() メソッドは、最初に位置 0 の文字をチェックして、それが有効な数値であるかどうかを判断します。そうでない場合、メソッドは NaN を返し、他の操作は実行しません。ただし、文字が有効な数値の場合、メソッドは位置 1 の文字を調べ、同じテストを実行します。このプロセスは、有効な数値ではない文字が見つかるまで継続され、検出された時点で、parseInt() がその文字の前の文字列を数値に変換します。

たとえば、文字列「1234blue」を整数に変換する場合、parseInt() は文字 b を検出すると検出プロセスを停止するため、1234 を返します。文字列に含まれる数値リテラルは数値に正しく変換されるため、文字列「0xA」は数値の 10 に正しく変換されます。ただし、小数点は整数では無効な文字であるため、文字列「22.5」は 22 に変換されます。いくつかの例は次のとおりです。

parseInt("1234blue"); // 1234 を返します
parseInt("0xA") // 10 を返します
parseInt("22.5"); 22
parseInt("blue"); //NaN を返します

parseInt() メソッドには、2 進数、8 進数、16 進数、またはその他の基本文字列を整数に変換できる基本モードもあります。基数は parseInt() メソッドの 2 番目のパラメータで指定されるため、16 進値を解析するには、次のように parseInt() メソッドを呼び出す必要があります。
もちろん、2 進数、8 進数、または 10 進数 (デフォルト モード) の場合は、次のように parseInt() メソッドを呼び出すことができます。
parseInt("10", 2) //returns 2
parseInt ("10", 8); // 8 を返します
parseInt("10", 10); // 10 を返します
10 進数の先頭に 0 が含まれる場合は、基数 10 を使用するのが最善です。誤って 8 進数値を取得しないようにします。例:
parseInt("010"); // 8 を返します
parseInt("010", 8); // 8 を返します
parseInt("010", 10); // 10 を返します🎜 >このコードでは、コードの両方の行が文字列「010」を数値に解析します。コードの最初の行は、この文字列を 8 進数値として扱い、コードの 2 行目 (基数 8 を宣言) と同じ方法で解析します。コードの最後の行では基数 10 を宣言しているため、iNum3 は最終的に 10 になります。

parseFloat() メソッドは parseInt() メソッドに似ています。このメソッドは、位置 0 から最初の無効な文字が見つかるまで各文字を調べ、その文字の前の文字列を数値に変換します。ただし、このメソッドの場合、最初の小数点は有効な文字です。小数点が 2 つある場合、2 番目の小数点は無効とみなされ、parseFloat() メソッドはこの小数点より前の文字列を数値に変換します。これは、文字列「22.34.5」が 22.34 として解析されることを意味します。
parseFloat() メソッドを使用する場合のもう 1 つの違いは、文字列が浮動小数点数を 8 進数または 16 進数形式ではなく 10 進数形式で表す必要があることです。
メソッドは先頭の 0 を無視するため、8 進数 0908 は 908 として解析されます。 16 進数 0xA の場合、x は浮動小数点数では有効な文字ではないため、メソッドは NaN を返します。さらに、parseFloat() には基本モードがありません。

次に、parseFloat() メソッドの使用例を示します。
parseFloat("1234blue") //1234.0 を返します
parseFloat("0xA") //NaN を返します
; parseFloat(" 22.5"); // 22.5 を返します
parseFloat("22.34.5"); // 22.34 を返します
parseFloat("0908") // 908 を返します
parseFloat("blue"); ; // NaN を返します


2. 強制的な型変換
変換された値の型を処理するために型キャストを使用することもできます。特定の値にアクセスするには、それが別の型であっても、キャストを使用します。
ECMAScript で使用できるキャストの 3 つのタイプは次のとおりです。
Boolean(value) - 指定された値をブール型に変換します。
Number(value) - 指定された値を数値に変換します。整数または浮動小数点数);
String(value) - 指定された値を文字列に変換します。
これら 3 つの関数のいずれかを使用して値を変換すると、元の値から直接変換された値を格納する新しい値が作成されます。これにより、予期せぬ結果が生じる可能性があります。
Boolean() 関数は、変換される値が文字列、ゼロ以外の数値、または少なくとも 1 つの文字を含むオブジェクトである場合に true を返します (これについては次のセクションで説明します)。値が空の文字列、数値 0、未定義、または null の場合は、false を返します。

次のコード スニペットを使用して、ブール型変換をテストできます。

Boolean(""); //false – 空の文字列
Boolean("hi"); //true – 空でない文字列
Boolean(100);ゼロの数値
Boolean(null); //false - null
Boolean(0); //true - オブジェクト

Number() の強制は、値の一部ではなく値全体を変換する点を除いて、parseInt() および parseFloat() メソッドと似ています。parseInt() メソッドと parseFloat() メソッドは最初の無効な文字の前の文字列のみを変換するため、「4.5.6」は「4.5」に変換されることに注意してください。 Number()、「4.5.6」を使用してキャストすると、文字列値全体を数値に変換できないため、NaN が返されます。文字列値を完全に変換できる場合、Number() は parseInt() メソッドを呼び出すか parseFloat() メソッドを呼び出すかを決定します。次の表は、Number() メソッドがさまざまな値で呼び出された場合に何が起こるかを示しています:

使用結果
Number(false) 0
Number(true) 1
Number(未定義) NaN
数値(null) 0
数値( "5.5 ") 5.5
数値( "56 ") 56
数値( "5.6.7 ") NaN
数値(new Object()) NaN
Number(100) 100

最後のキャスト メソッド String() は、任意の値を文字列に変換できるため、最も単純です。このキャストを実行するには、パラメーターとして渡された値に対して toString() メソッドを呼び出すだけで、1 が "1" に、true が "true" に、false が "false" に変換されます。文字列へのキャストと toString() メソッドの呼び出しの唯一の違いは、null または未定義の値をキャストすると、エラーが発生せずに文字列が生成されることです。

var s1 = String(null);
var oNull = null;
var s2 = oNull.toString(); // 動作せず、エラーが発生します

3. JS 変数の弱い型変換を使用します

小さな例を挙げてみましょう。見ればわかります。



上記の例は、js の弱い型の特性を利用し、算術演算のみを実行して文字列から数値への型変換を実現します。ただし、この方法は推奨されません。 //オブジェクトを文字に変換します

function object2String(obj) {
var val, Output = ""
if (obj) {
output = "{ ";
for (var i in obj) {
val = obj[i];
switch (typeof val) {
case ("object"):
if (val[0 ]) {
出力 = i ":" array2String(val) ",";
} else {
出力 = i ":" object2String(val) ",";
ブレーク;
case ("string"):
出力 = i ":'" val "',";
デフォルト:
出力 = i ":" val ", ";
}
}
output = Output.substring(0, Output.length-1) "}";
}
出力を返す;
}


配列を文字列に変換します function array2String(array) {
var Output = "";
if (array) {
output = "["; (配列内の変数 i) {
val = array[i];
switch (typeof val) {
case ("オブジェクト"):
if (val[0]) {
出力 = array2String(val) ",";
} else {
output = object2String(val) ",";
case ("string"):
output = "'" encodeURI(val) "',";
break;
default:
output = val ",";
}
}
output = 出力substring(0, Output.length-1) "]";
}
出力を返す



関数 string2Object(string) {
("var result = " decodeURI(string));
return result;



function string2Array(string) {
eval("var result = " decodeURI(string));
return result;
}
日付型を js の文字列形式に変換します


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10 jQueryの楽しみとゲームプラグイン 10 jQueryの楽しみとゲームプラグイン Mar 08, 2025 am 12:42 AM

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

Ajaxを使用して動的にボックスコンテンツをロードします Ajaxを使用して動的にボックスコンテンツをロードします Mar 06, 2025 am 01:07 AM

このチュートリアルでは、Ajaxを介してロードされた動的なページボックスの作成を示しており、フルページのリロードなしでインスタントリフレッシュを可能にします。 JQueryとJavaScriptを活用します。カスタムのFacebookスタイルのコンテンツボックスローダーと考えてください。 重要な概念: ajaxとjquery

jQuery Parallaxチュートリアル - アニメーションヘッダーの背景 jQuery Parallaxチュートリアル - アニメーションヘッダーの背景 Mar 08, 2025 am 12:39 AM

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

JavaScript用のクッキーレスセッションライブラリを作成する方法 JavaScript用のクッキーレスセッションライブラリを作成する方法 Mar 06, 2025 am 01:18 AM

このJavaScriptライブラリは、Cookieに依存せずにセッションデータを管理するためにWindow.nameプロパティを活用します。 ブラウザ全体でセッション変数を保存および取得するための堅牢なソリューションを提供します。 ライブラリは、セッションの3つのコア方法を提供します

See all articles