ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの型変換。

JavaScriptの型変換。

高洛峰
高洛峰オリジナル
2016-10-12 11:37:021023ブラウズ

ディレクトリ:
1: 擬似オブジェクト
2: 文字列に変換
3: 数値を文字列に変換
4: 数値に変換
5: ブール値に変換
6: Number() と parseInt() の違い
7: 文字列() と toString() の違い

1: 擬似オブジェクト
擬似オブジェクト: JavaScript は非常に興味深い言語です。基本的な型であっても擬似オブジェクトなので、すべてプロパティとメソッドがあります。
変数 a の型は文字列で、その長さは擬似オブジェクトである length プロパティを呼び出すことで取得できます。

<script><br/> var a="hello javascript"; <br/> document.write("变量a的类型是:"+(typeof a));<br/> document.write("<br>");<br/> document.write("变量a的长度是:"+a.length);<br/></script>

操作の効果:
変数 a の型: string
変数 a の長さ: 16

2: 文字列に変換
Number、Boolean、String のいずれであっても、変換用の toString メソッドがありますto String

<script><br/> var a=10; <br/> document.write("数字 "+a+" 转换为字符串"+a.toString());<br/> document.write("<br>");<br/><br/> var b=true; <br/> document.write("布尔 "+b+" 转换为字符串"+b.toString());<br/> document.write("<br>");<br/><br/> var c="hello javascript"; <br/> document.write("字符串 "+c+" 转换为字符串 "+c.toString());<br/> document.write("<br>");<br/><br/></script>

操作の効果:
数値 10 は文字列 10 に変換されます
ブール値 true は文字列 true に変換されます
文字列 hello javascript は文字列 hello javascript に変換されます

3: 数値は文字列に変換されます
数値は文字に変換されます文字列には、デフォルト モードとベース モードの 2 つのタイプがあります:
<script><br/> var a=10; <br/> document.write(&#39;默认模式下,数字10转换为十进制的&#39;+a.toString()); //默认模式,即十进制<br/> document.write("<br>"); <br/><br/> document.write(&#39;基模式下,数字10转换为二进制的&#39;+a.toString(2)); //基模式,二进制<br/> document.write("<br>"); <br/> <br/> document.write(&#39;基模式下,数字10转换为八进制的&#39;+a.toString(8)); //基模式,八进制<br/> document.write("<br>"); <br/><br/> document.write(&#39;基模式下,数字10转换为十六进制的&#39;+a.toString(16)); //基模式,十六进制<br/> document.write("<br>"); <br/><br/></script>
動作効果:
デフォルト モードでは、数値 10 は 10 進数の 10 に変換されます
ベース モードでは、数値 10 は 2 進数の 1010 に変換されます
ベース モードでは、数値 10 は次のように変換されます。 8 進数の 12
基本モードでは、数値 10 は 16 進数の a

4 に変換されます。 数値に変換されます。 Javascript には、数値に変換する組み込み関数 parseInt() と parseFloat() がそれぞれ用意されています

注: 変換される場合 文字列は数字と文字で同時に構成されるため、parseInt は非文字が現れるまで数字を配置し続けます。 したがって、「10abc」は 10 に変換されます

質問: 文字列「10abc8」は何に変換されますか?

<script><br/> document.write("字符串的\"10\"转换为数字的:"+parseInt("10")); //转换整数<br/> document.write("<br>");<br/> document.write("字符串的\"3.14\"转换为数字的:"+parseFloat("444 3.14"));//转换浮点数<br/> document.write("<br>");<br/> document.write("字符串的\"10abc\"转换为数字的:"+parseInt("10abc")); //判断每一位,直到发现不是数字的那一位<br/> document.write("<br>");<br/><br/> document.write("字符串的\"hello javascript\"转换为数字的:"+parseInt("h5555ello javascript")); //如果完全不包含数字,则返<br/><br/>回NaN - Not a Number<br/> document.write("<br>");<br/><br/></script>
操作の効果:
文字列「10」は数値に変換されます: 10
文字列「3.14」は数値に変換されます: 444
文字列「10abc」は数値に変換されます: 10
文字列「 hello javascript" を数値に変換: NaN

5: ブール値に変換
組み込み関数 Boolean() を使用してブール値に変換します
文字列を変換する場合:
空でない場合は true を意味します
数値を変換する場合:
0 ではない それは true
オブジェクトを変換するとき:
null 以外は true

<script><br/> document.write("空字符串&#39;&#39;转换为布尔后的值:"+Boolean("")); //空字符串<br/> document.write("<br>");<br/> document.write("非空字符&#39;hello javascript &#39;串转换为布尔后的值:"+Boolean("hello javascript")); //非空字符串<br/> document.write("<br>");<br/> document.write("数字 0 转换为布尔后的值:"+Boolean(0)); //0<br/> document.write("<br>");<br/> document.write("数字 3.14 转换为布尔后的值:"+Boolean(3.14)); //非0 <br/> document.write("<br>");<br/> document.write("空对象 null 转换为布尔后的值:"+Boolean(null)); //null<br/> document.write("<br>");<br/> document.write("非对象 new Object() 转换为布尔后的值:"+Boolean(new Object())); //对象存在<br/> document.write("<br>");<br/></script>

動作効果:
空の文字列 '' をブール値に変換した後の値: false
空でない文字 'hello javascript ' の後文字列をブール値に変換します 値: true
数値 0 ブール値に変換後の値: false
数値 3.14 ブール値に変換後の値: true
空のオブジェクト null ブール値に変換後の値: false
非オブジェクト new Object() ブール値に変換値: true

6: Number() と parseInt() の違い
Number() は、parseInt() と同様に、数値の変換に使用できます
違いは、変換されたコンテンツに数値以外が含まれる場合、Number( ) NaN (Not a Number)
parseInt() を返します。 状況によりますが、数字で始まる場合は先頭の正当な数値部分を返します。 数字以外で始まる場合は NaN
を返します。
<script><br/> document.write("通过Number() 函数转换字符串&#39;123&#39; 后得到的数字:"+Number("123")); //正常的<br/> document.write("<br>");<br/> document.write("通过Number() 函数转换字符串&#39;123abc&#39; 后得到的数字:"+Number("123abc")); //包含非数字<br/> document.write("<br>");<br/> document.write("通过Number() 函数转换字符串&#39;abc123&#39; 后得到的数字:"+Number("abc123")); //包含非数字<br/> document.write("<br>");<br/><br/> document.write("通过parseInt() 函数转换字符串&#39;123&#39; 后得到的数字:"+parseInt("123")); //正常的<br/> document.write("<br>");<br/> document.write("通过parseInt() 函数转换字符串&#39;123abc&#39; 后得到的数字:"+parseInt("123abc")); //包含非数字,返回开头的合法<br/><br/>数字部分<br/> document.write("<br>");<br/> document.write("通过parseInt() 函数转换字符串&#39;abc123&#39; 后得到的数字:"+parseInt("abc123")); //包含非数字,以非数字开头,<br/><br/>返回NaN<br/> document.write("<br>");<br/><br/></script>

操作効果:
合格 文字列「123」をNumber()関数で変換して得られる数値:123
文字列「123abc」をNumber()関数で変換して得られる数値:NaN
得られる数値文字列「abc123」をNumber()関数で変換した後:NaN
文字列「123」をparseInt()関数で変換した後に得られる数値:123
文字列「123abc」をparseInt()関数で変換して得られる数値関数: 123
parseInt() 関数で文字列 'abc123' を変換 後に得られる数値: NaN

7: String() と toString() の違い
String() と toString() は両方とも文字列を返します、その違いnull の処理にあります
String() は文字列 "null" を返します
toString() はエラーを報告し実行できません

<script><br/> var a = null;<br/> document.write(&#39;String(null) 把空对象转换为字符串:&#39;+String(a)); <br/> document.write("<br>"); <br/> document.write(&#39;null.toString() 就会报错,所以后面的代码不能执行&#39;); <br/> document.write(a.toString()); <br/> document.write("因为第5行报错,所以这一段文字不会显示"); <br/></script>

動作効果:
String(null) 空のオブジェクトを文字列に変換します: null
null.toString() はエラーを報告するため、次のコードは実行できません

昨日から学び、今日に生き、明日に期待しましょう


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