加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

推荐javascript不同类型数据之间的运算的转换方法

发布时间:2023-10-12 15:02:32 所属栏目:教程 来源:
导读:js中不同类型的基础数据之间可以转换,这种转换是有规则可寻的,并非随意的随机的。在js中有5种基础类型数据:string、number、boolean、null、undefined,其中,常用于计算或者比较的类型是前面三种。

基础数据
js中不同类型的基础数据之间可以转换,这种转换是有规则可寻的,并非随意的随机的。在js中有5种基础类型数据:string、number、boolean、null、undefined,其中,常用于计算或者比较的类型是前面三种。
 
基础数据之间的转换
 
其它类型转化数字
 
原始数据类型 目标类型Number
 
undefined NaN
 
null 0
 
false 0
 
true 1
 
数字串 相应的数字
 
不能转化的字符串 NaN
 
其它类型转化为字符串
 
原始数据类型 目标类型String
 
undefined undefined
 
null null
 
false false
 
true true
 
数字 数字字符串
 
 
 
不同类型的基础数据之间的加法,数据先转换为number,然后转换为string(如果有string类型数据参与运算)
 
代码如下:
 
null + undefined // 0+NaN
 
null + false // 0+0
 
1 + true // 1+1
 
1 + '1' //'11';数字与字符串相加结果是字符串
 
1 + 2 + '3'  //'33';(1+2)的结果然后与'3'相加;这里要把每一步加法单独拆开来看,否则变成和下面一样的结果了.
 
1 + (2 +'3') //'123';先运算2+'3',然后1+'23'
 
's' + null //'snull'
 
's' + undefined // 'sundefined'
 
's' + true //'strue'
 
1 + true + undefined + 's' // 1+1+NaN+'s'=2+NaN+'s'=NaN+'s'=NaNs
 
对象参与加减法运算
 
对象参与基础类型数据运算,先转化为基础类型。先调用其valueOf方法,如果返回的不是基础类型,再调用其toString方法,如果返回的还不是基础类型,则抛出错误。但是,Date数据刚好相反
 
代码如下:
 
//为了便于观察重写Date的toString方法和valueOf方法
 
Date.prototype.toString = function(){
 
    return 1;
 
}
 
Date.prototype.valueOf = function(){
 
    return 2;
 
}
 
var a = new Date,
 
    b = new Date;
 
a + b; // 调用toString,1 + 1,结果是2
 
// 再重写toString方法
 
Date.prototype.toString = function(){
 
    return {};
 
}
 
var c = new Date,
 
    d = new Date;
 
c + d; // 调用toString方法返回的不是基础类型,再调用valueOf,2 + 2,结果是4
 
// 再重写valueOf方法
 
Date.prototype.valueOf = function(){
 
    return {};
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章