JavaScript相同数据类型和不同数据类型间的运算

本文详细探讨了JavaScript中不同数据类型之间的运算规则,包括字符串的+运算、数学运算、NAN、undefined和null的运算,以及关系运算。在字符串运算中,+操作符用于字符串拼接,而其他数学运算会将字符串转换为数值。与NAN运算的结果始终是NaN,但字符串与字符串的关系运算则基于ASCII码进行比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、字符串的 + 运算

注意: 只要是字符串在和任意数据类型做相加+的运算,都是字符串拼接

例:

console.log('5' + '3'); //53
console.log('5' + 3); //53
console.log('哈哈' + '5abc'); //哈哈5abc
console.log('哈哈' + NaN); //哈哈NaN
console.log('哈哈' + true); //哈哈true
console.log('哈哈' + undefined); //哈哈undefined
console.log('哈哈' + null); //哈哈null

二、字符串的其他数学运算

字符串类型的数据:在进行数学运算(-  *  /  %)时,会先将自身隐式转换(Number)成数值类型再进行计算

例:

console.log('5' - '3'); //2
console.log('5' - 3); //2
console.log('5' * 3); //15
console.log('5' / 3); //1.6666666666666667
console.log('5' % 3); //2

三、NAN的数学运算

任意数据类型和NaN做数学运算,结果都是NaN,除了与字符串的 + 运算

例:

console.log(NAN + 1); // NAN
console.log(NAN - 1); // NAN
console.log(NAN * 1); // NAN
console.log(NAN / 1); // NAN
console.log(NAN % 1); // NAN
console.log(NAN + true); // NAN
console.log(NAN + null); // NAN
console.log(NAN + undefined); // NAN
console.log(NAN + '123'); // NAN123

四、undefined的数学运算

未定义类型的数据:在进行数学运算(+ - * / %)时,会先将自身隐式转换(Number)成数值类型再进行计算

例:

console.log(undefined + undefined); //NaN
console.log(undefined + 1); //NaN
console.log(undefined + '5' + '哈哈'); //'undefined5哈哈'

五、null的数学运算

空类型的数据:在进行数学运算(+ - * / %)时,会先将自身隐式转换(Number)成数值 类型再进行计算

例:

console.log(null + true); //1
console.log(null + 5); //5
console.log('null' + (null - 3) + undefined); //null-3undefined

六、关系运算

任意数据类型在进行关系运算时,会先将自身隐式转换(Number)成数值,在进行比较字符串与字符串之间的比较< > <= >=,比较的是ascii码,一位一位的去比

例:

console.log(5 > 3); //true
console.log(5 > '3'); //true
console.log('5' < true); //false
console.log(5 > '6哈哈'); //false
console.log('a' < 'ab'); //true
console.log('ac' > 'ab'); //true
console.log('abcdefg' < 'bz'); //true
console.log(NaN < NaN) // false
console.log('100' < 'a'); //true
console.log('5' == 5); //true
console.log(1 == true); //true
console.log(1 === true); //false
console.log(0 == false); //true
console.log(null < 1); // true

也存在一些特殊,例如:

console.log(null == 0); //false
console.log(null == ' '); //false
console.log(null == ''); //false
console.log(null == false); //false
console.log(null == undefined); //true

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值