zoukankan      html  css  js  c++  java
  • 《JavaScript高级程序设计》阅读笔记(四):ECMAScript中的类型转换

    2.7 类型转换

    1、转换成字符串

      所有对象都有toString()方法可以转换成字符串,要注意的是Number类型的toString()方法,它有两种模式,即默认模式和基模式,采用默认模式toString()方法只是用相应的字符串输出对应的10进制数字值,用基模式可以用不同的基输出数字。示例:

    1 var iNum1=10;
    2 var iNum2=10.0;
    3 var iNum3=10;
    4
    5 alert(iNum1.toString()); //outpus "10"
    6 alert(iNum2.toString()); //outpus "10"
    7 alert(iNum3.toString(2)); //outpus "1010"
    8 alert(iNum3.toString(8)); //outpus "12"
    9 alert(iNum3.toString(16)); //outpus "A"

    2、转换成数字

      ECMAScript提供了两种把非数字的原始值转换成数字的方法:parseInt()和parseFloat(),需要注意的是parseInt()是逐个字符转换的,直到非数字字符为止。示例程序如下:

    1 var iNum1=parseInt("1234blue"); //returns 1234
    2 var iNum2=parseInt("0xA"); //returns 10
    3 var iNum3=parseInt("22.5"); //returns 22
    4 var iNum4=parseInt("blue"); //returns NaN

      parseInt()方法还有基模式,可以把二进制,八进制,十六进制或其他任何进制的字符串转换成整数。基是由parseInt()第二个参数指定的,示例如下:

    1 var iNum1=parseInt("AF",16); //returns 175
    2 var iNum2=parseInt("10",2); //returns 2
    3 var iNum3=parseInt("10",8); //returns 8
    4 var iNum4=parseInt("10",10); //returns 10
    5 //注意:如果十进制数有前导0要用基数模式
    6 var iNum5=parseInt("010"); //returns 8
    7 var iNum6=parseInt("010",8); //returns 8
    8 var iNum7=parseInt("010",10); //returns 10

      paraseFloat()没有基模式,其他与parseInt()大致相同,示例:

    1 var fNum1=paraseFloat("1234blue"); //returns 1234.0
    2 var fNum2=paraseFloat("0xA"); //returns NaN
    3 var fNum3=paraseFloat("22.5"); //returns 22.5
    4 var fNum4=paraseFloat("22.34.5"); //returns 22.34
    5 var fNum5=paraseFloat("0908"); //returns 908
    6 var fNum6=paraseFloat("blue"); //returns NaN

    3、强制类型转换

      ECMAScript中可用的强制类型转换如下:

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

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

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

      示例:

     1 var b1=Boolean(""); //false - empty string
    2 var b2=Boolean("hi"); //true - not empty string
    3 var b3=Boolean(100); //true - not zero number
    4 var b4=Boolean(null); //false - null
    5 var b5=Boolean(0); //false - zero
    6 var b6=Boolean(new Object()); //true object
    7
    8 var i1=Number(false); //0
    9 var i2=Number(true); //1
    10 var i3=Number(undefined); //NaN
    11 var i4=Number(null); //0
    12 var f5=Number("5.5"); //5.5
    13 var i6=Number("56"); //56
    14 var i7=Number("5.6.7"); //NaN
    15 var i8=Number(new Object()); //NaN
    16 var i9=Number(100); //100
    版权

    作者:Artwl

    出处:http://artwl.cnblogs.com

    本文首发博客园,版权归作者跟博客园共有。转载必须保留本段声明,并在页面显著位置给出本文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/artwl/p/2253892.html
Copyright © 2011-2022 走看看