网站源码-图片-资料下载-学习资料-牛资料网!只做精品资料网
  • 首 页
  • JavaScript数据类型转换
    时间:2019-09-09 11:31 来源:www.xyhndec.com 编辑:免费资料 浏览:

    JavaScript是一种“弱”类型的语言,这就是说,程序中不需要十分关注变量中存储数据的类型。例如可以在一条语句中将一个数值赋值给变量x,在另一条语句中把一个字符串在赋值给同一个变量;也可以将数值与字符串进行比较,将字符串与布尔型数据进行比较。在变量赋值和表达式的计算过程中,JavaScript会根据需要自动完成数据类型的转换。在包括多种类型的混合表达式中,JavaScript必须决定如何处理这个表达式中的各种数据类型。

    除了需要将字符串类型转换为数值类型之外,有时候也需要将数值类型转换为字符串类型,或其它数据类型之间进行数据类型的转换。例如,某些对象方法要求一个活多个特定数据类型的的参数,为了正确的使用这些方法,就需要完成适当的数据类型转换工作。

    为了适应不同的情况,JavaScript提供了两种数据类型的转换方法:一种使将整个值从一种类型转换为另一种数据类型(称为基本数据类型转换),另一种方法是从一个值中提取另一种类型的值,并完成类型转换工作。完成后一张数据类型转换的方法有三个:parseInt()ParseFloat()eval()

    基本数据类型转换

    JavaScript提供了三个方法实现基本数据类型之间的转换。

    • String():将其他数据类型的值转换为字符串,例如:String(123)的值为"123"。

    • Number():将其他类型的值转换为数值类型的值,例如:Number(true)的值为1。

    • Boolean():将其他类型的值转换为布尔型的值,除了0、NaNnullundefined""(空字符串)被转换为false之外,所有其他的值都被转换为true

    这三个方法实际上是同名对象的构造函数。

    提取整数的parseInt()方法

    parseInt()方法将字符串转换为整数。其转换过程为:从字符串第一个字符开始读取数字(跳过签到的空白符),知道遇到非数字字符时停止读取,然后将已经提取的数字字符串转换为整数,并返回该整数值。如果字符串的开始位置不是数字,而是其他字符(空白符除外),那么parseInt()方法返回NaN,表示所传递的参数不能转换为一个整数。例如:parseInt("100days")的返回值为100,parseInt("days100")的返回值为NaN

    parseInt()方法还能够完成八进制和十六进制数据的转换。此时,parseInt()方法需要传入两个参数:第一个是参数要转换为整数的字符串,第二个参数指定按多少进制进行转换,进制的有效范围为2-36,其中包括二进制、八进制、十进制和十六进制。当省略第二个参数时,按十进制进行转换。但是如果字符串以0x0X开头,那么按十六进制进行转换。不论指定哪一种进制进行整数转换,方法parseInt()总是以十进制值返回结果。

    parseInt()方法是JavaScript的全局函数,它的语法格式为:

    parseInt(String);
    parseInt(String,NumberBase);
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    其中String是指定要转换为整数的字符串,NunberBase指定按几进制进行转换,范围从0-36。

    下表中是parseInt(String)方法的应用示例:

    参数值 parseInt()返回值 参数值 parseInt()返回值
    "100china" 100 "china100" NaN
    "-100china" -100 "china" NaN
    "100.55china" 100.55 ".63" NaN
    " &nabsp;100china" 100 "0Xa" 10
    "100.65" 100 "0xa" 10
    "0.63" 0 "0x12abc" 76476

    下面是parseInt(String,NumberBase)语法格式的应用示例:

    调用格式 进制数 函数返回值
    parseInt("55china",8) 八进制 45
    parseInt("55china",16) 十六进制 1372
    parseInt("55china",10) 十进制 55
    parseInt("55china",36) 三十六进制 11207215270
    parseInt("0x55china",8) 八进制 0
    parseInt("0x55china",16) 十六进制 1372
    parseInt("55.23china",8) 八进制 45
    parseInt("china55",8) 八进制 NaN
    parseInt("china55",16) 示例进制 12
    提取浮点数的parseFloat()方法

    parseFloat()方法与parseInt()方法相似,不同之处在于parseFloat()方法能够治好浮点数,而parseInt()方法只能治好整数。浮点数包含小数部分,如1.23,0.56等,科学计数法书写的数也算浮点数,比如2E3。如果字符串不是以数字开头,那么parseFloat()方法返回NaN

    调用parseFloat()方法的语法格式为:

    parseFloat(String);
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    下面的表格中列出了parseFloat()方法的一些应用示例:

    参数值 parseFloat()返回值 参数值 parseFloat()返回值
    "55.2china' 55.2 china55.2 NaN
    "-55.2china" -55.2 "china" NaN
    "55.63china" 55.63 ".63" 0.63
    "  55.2china" 55.2 "3e2" 300
    "55.63" 55.63 "-3e-2" -0.03
    "0.63" 0.63 "3e2abc" 300
    用于执行语句和计算表达式的eval()方法

    eval()方法能够执行用字符串表示的一段JavaScript代码,比如,执行下面的语句:

    eval("k=0,for(i=1;i<101;i++){k+=i;}");
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    执行后的结果为5050。利用eval()方法的这种特性,程序可以根据需要动态的生成并执行语句,这样可以进一步增强JavaScript程序执行的能力。

    表达式是JavScript的一种特殊语句,eval()方法也能够用于计算表达式的值,这时,表达式以字符串形式传递给eval()方法,例如,执行下面的语句:

    rs=eval( "(9+5)*2" );
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    结果变量rs的值为28。

    如果传递给eval()方法中的参数的语句中没有返回值,那么eval()方法返回undefined,例如:

    eval("var abc");//返回undefined
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    如果传递给eval()方法中的参数不是有效的JavaScript语句,那么就会产生运行错误。例如:

    eval("abc");
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    eval()方法的语法格式为:

    eval(String);
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    其中,String是由JavaScript语句或表达式组成的一个字符串。需要注意的是,这里的String只能是基本数据类型中的字符串,而不能是String对象。否则,eval()方法直接返回参数字符串,而不是字符串表示的语句。例如下面的代码:

    rs = new String("2+3*6-3");= eval(rs);
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    上面代码执行后,rs是一个String对象,a的值为字符串"2+3*6-3",而不是这个表达式计算的结果17。如果将上面的语句修改为:

    rs = "2+3*6-3";= eval(rs);
    
    本段代码来自 https://www.jiangweishan.com/article/js1473868800527.html

    执行后,rs是一个基本数据类型的字符串,a的值为17。

    最后需要注意的是eval()方法存在一些安全方面的隐患,在实际应用中切记不可滥用。

    郑重声明:
    牛资料网所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系牛资料网索要。
    如有侵犯您的版权,请及时联系QQ:964613048,我们尽快处理。

    JavaScript面向对象-基于原型链实现继承JavaScript面向对象-基于原型链实现继
    JavaScript事件-事件流JavaScript事件-事件流
    正则表达式-正则表达式的元字符正则表达式-正则表达式的元字符
    推荐栏目
    • 客服:我们竭诚为您服务!
    • 客服:我们竭诚为您服务!