站内搜索

ECMAScript类型转换详解

  所有程序设计语言最重要的特征之一是具有进行类型转换的能力,ECMAScript 给开发者提供了大量简单的转换方法。大多书类型具有进行简单转换的方法,还有几个全局方法可以用于更复杂的转换,无论哪种情况,在ECMAScript 中,类型转换都是简短的一步操作。

  转换成字符串

  Boolean,Number,都有toString()方法可以使用

  Boolean --> String 可能返回字符串"true" 或 "flase"

  Number --> String

  Number对象的toString方法原型objectName.toString(基数) 参数不是必要的

  当使用无参数的toString时 原来的数字会自动转换成十进制数并转换成字符串 见代码示例

以下是引用片段:
<script type="text/javascript">
  window.onload = function()
  {
     var a = true;
      var b = false;
     window.alert(a.toString()); //输出true
      window.alert(b.toString()); //输出false
      var c = 10; 
      var d = 010;
     var e = 0xa;
     window.alert(c.toString()); //输出10
     window.alert(d.toString()); //输出8
     window.alert(d.toString(8)); //输出10
     window.alert(e.toString(16)); //输出a
 }
 </script> 

  字符串转换成数字

  使用本地对象Global的parseInt()方法 和 parseFloat()方法 如果是非字符串使用此方法,会返回NaN

  parseInt(要转换的字符串,要转换的字符串是几进制的) 其中第2个参数不是必须的

  parseFloat(要转换的字符串)

  对于字符串中出现非数字字符 parseInt()和parseFloat()的处理方法见代码

以下是引用片段:
<script type="text/javascript">
  window.onload = function()
  {
      window.alert(parseInt(null));  //输出NaN
      window.alert(parseInt(true));  //输出NaN
     window.alert(parseInt("123")); //输出123
      window.alert(parseInt("123a456")); //输出123
      window.alert(parseInt("a123")); //输出NaN
      window.alert(parseInt("10",8)); //输出8
     window.alert(parseFloat("123.45")); //输出123.45
     window.alert(parseFloat("123.45.67")); //输出123.45
 }
 </script>

  强制转换

  Boolean(value)――把给定的值转换成Boolean型;

  Number(value)――把给定的值转换成数字(可以是整数或浮点数);

  String(value)――把给定的值转换成字符串。

  用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。

  Boolean(value)

  转换成true的条件:非空字符串,非0数字,对象

  转换成flase的条件:空字符串,数字0,undefined,null

  Number(value)

  Boolean转换成Number: true转换成1,false转换成0

  String转换成Number: 与parseInt()和parseFlost()不同在于,Number(value)对整个字符串都进行转换 当整个字符串不是一个整形或浮点数形式的时候返回NaN


 

以下是引用片段:
<script type="text/javascript">
 window.onload = function()
 {
     var test = "123a4";
     window.alert(parseInt(test)); //输出123
     window.alert(Number(test));  //输出NaN
 }
 </script>

  String(value)

  对任何值转换成String

  undefined和null也会转换成对应的字符串undefined和null而不会出现转换错误

 

  • 上一篇:JavaScript运算符详解
  • 下一篇:ECMAScript原始类型精讲