02-多种数据类型比较

**操作符: **是JavaScript中必不可少的一部分,数据之间的交换、计算等都有它的身影。

运算符分类

按照操作数分类:

一元操作符:

+、-、++、–、!、~

+1; // 取正值
-1; // 取负值
++1; // 自增1
--1; // 自减1
!true; // 取反
~1;  // 按位取反

二元操作符:

+、-、*、/、%、&&、||、&、|、^

1 + 1;  // 求和操作
3 - 2;  // 求差值操作
2 * 3;  // 求乘积操作
4 / 2;  // 求商操作
3 % 2;  // 求余操作
5 > 2 && 3 + 3;  // 逻辑与操作
-1 || 0;  // 逻辑或操作

三元操作符:

?:


5 > 2 ? 'OK' : 'NO'

按照运算方式分类:

算术运算符

  1. 涉及到的运算符号: + 、-、*、/、%
  2. 除了’+'运算符外,其它运算符进行运算时需要将左右操作数统一转化为 数字类型number后,再计算得到最终结果;
1 * 2;  // 3
0 * 1;	// 0

0 / 0;	// NaN
1 / 0;	// Infinity

null * 1; // 0
  1. NaN 与任何数值进行计算,结果都为NaN;
NaN * 1; // NaN
undefined * 1;	// NaN
  1. Infinity 与 任何数值(排除NaN)计算,结果都为Infinity;
  2. "+"运算符参与的运算:

若操作符两边任意某一操作数为字符串类型,则将两边的操作数转换为字符串形式后进行拼接;
若操作符任意一边为引用类型(对象类型、数组类型、函数类型), 则将该类型转换为字符串后与其它操作数进行拼接;
若操作符两边都是原始类型(非字符串),则将两边的操作数转换为数字形式后进行计算

// 操作符任意一边为字符串类型
'str' + 123;	// 'str123'
undefined + '123';	// 'undefined123
null + '123';		// 'null123'
{} + '123';		// '[object Object]123'

// 操作符两边都不是字符串类型
undefined + 123;	// NaN
null + 123;		// 123
{} + 123;		//	'[object Object]123'
[] + 123;		// 123
[1,2,3,4];	//  '1234123'

比较运算符

  1. 涉及到的运算符号:> 、<、>=、 <=
  2. 比较运算返回值的类型为:boolean类型

若比较运算符两边的数据都是字符串类型,则比较它们的Unicode编码值
NaN与任何数值比较,结果都是false
undefined 、null 之间相互相等

// 两边都是字符串类型
'ab' > 'a';		// true

// 未定义类型和空类型
undefined == undefined;		// true
undefined == null;	// true
null == null;		// true

逻辑运算符

  1. 涉及到的运算符号:&& 、||、!
  2. 该运算符返回的结果为: 符号条件的表达式的值
5 > 2 && console.log('OK');
1 < 0 || console.log('No');
!0 && console.log('OK');

运算符的优先级

  1. 运算符的用途: 常用于数据之间的计算、比较、逻辑运算
  2. 运算符的优先级表现: 算术运算符 > 比较运算符 > 逻辑运算符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值