时间:2021-05-26
js中不同类型的基础数据之间可以转换,这种转换是有规则可寻的,并非随意的随机的。在js中有5种基础类型数据:string、number、boolean、null、undefined,其中,常用于计算或者比较的类型是前面三种。
基础数据之间的转换
其它类型转化数字原始数据类型目标类型NumberundefinedNaNnull0false0true1数字串相应的数字不能转化的字符串NaN其它类型转化为字符串原始数据类型目标类型Stringundefinedundefinednullnullfalsefalsetruetrue数字数字字符串不同类型的基础数据之间的加法,数据先转换为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 {};
}
var e = new Date,
f = new Date;
e + f; // 报错
把上面的例子换成Object或者其他类型能得到相应的结果,不过是先调用valueOf,再调用toString。
'+'号的神奇功效
数据前有加号‘+',可以让字符串转化为数字
复制代码 代码如下:
+'1'+1 // 2
+'s'+2 // NaN
注:第一次,格式不好,纰漏多,欢迎大家拍砖
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
谨记:在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换。举例子如下:?1234567891011121314
wsn网关的主要功能是数据转发、不同类型感知网络之间的协议转换和控制管理。 物联网网关在无线传感器网络(Wireless?Sensor?Network,WSN
类型转换是一种将一种数据类型转换为另一种数据类型的方法。一、运算符的类型typeof运算符可以帮助你找到你的变量的类型。typeof运算符返回一个变量或表达式的
前言项目开发中,业务分层会涉及不同类型的Bean之间需要相互转换,如PO与DTO之间,PO与VO之间等。手动编码setter/getter各个对应属性,会显得臃
JavaScript数组简介JavaScript中的数组与其他语言中的数组是不同的,主要体现在:数组中存储的各项可以是不同类型的数据数组的大小是动态变化的,当新