JS运算符

运算符

数据类型的加减乘除

1.加法
①数字+数字
 console.log( 1 + 1 );
 console.log( 2 + 2 );
 js存储数据是IEE47 -> 双精度浮点数
 console.log( 0.1 + 0.2 );注意:不等于0.3
   浮点数通用方法:全部乘以100 /100
 console.log( 1.1 * 100 )/100;
②NaN Infinity - Infinity
 console.log( NaN * 0 )
 console.log( Infinity - 1 );//Infinity;
 console.log( -Infinity / 1);//-Infinity;
 console.log( Infinity +  -Infinity );//NaN;
 console.log( NaN + Infinity );//NaN;
 console.log( NaN + -Infinity );//NaN;
③ 字符串 + 字符串 = 字符串拼接
 var str1 = "123";
 var str2 = "456";
 console.log( str1 + str2 ); //123456;
 console.log( str1, str2 ); //123 456;
④数字+字符串

(字符串是老大,谁见谁变) 任何数据类型( 除undefined和null )和字符串进进行加法运算都会转为字符串 。

console.log( 1 + '2' );//12
console.log({name: '小明'} + '123' );//{name: '小明'} -> [object Object] ,//此时结果为[object Object]123;
console.log( {} + '123' );//[object Object]123;
console.log( undefined + 'abc' );//undefinedabc;
console.log( null + 'abc' );//nullabc;
console.log( '1' + [1,2,3] );//11,2,3;
console.log( [1,2,3] + '1');//12,3,1;
⑤ undefined和null 的运算
 console.log( undefined + null );//NaN;
 console.log( undefined + 1 );//NaN(因为undefined转化为数字为NaN).
 console.log(  null + 1 );//1(因为null转化为数字为0.);
 console.log( null + 'abc' );//nullabc;
 console.log( undefined + 'abc' );//undefinedabc;
⑥ Object Array 的运算
 console.log( {age: 5} + 5 );//[object Object]5;
 console.log( [] + 1 );//1;
 console.log( undefined + [{}] );//[object Object]undefined;
 console.log( null + [] );//null;
 console.log( null + 2 );//2;
 console.log( null + '2' );//null2;
⑦加法总结

数字 + 数字 => 数学运算
undefined和null 遇数字转数字 遇字符串转字符串
Object , Array 计算加法前 先转为字符串
‘字符串’ + 其他数据类型 = 字符串是爹 .

2.减法
①数字—数字
 console.log( 2 - 3 );
 console.log( 0.4*100 - 0.3*100 );
 console.log( Infinity - 1);
 console.log( -Infinity - 1);
 console.log( NaN - 1 );
 console.log( Infinity - Infinity );//NaN
console.log( '123.1a' - 1 );//NaN(因为123.1a不是纯数字,转化成了NaN);
②Obiect的运算
console.log( {}  -100 );//NaN
③Array的运算
console.log( ['1'] - 1 );//0;
3.乘法
 console.log( '2' * '3' );//6
 console.log( 'a' * 2 );//NaN
 console.log( null * 1 );//0
 console.log( {} * 2);//NaN
 console.log( true * 20 );//20
 console.log( false * 2 );//0
 console.log( false * '2' );// 0
4.除法
 console.log( 9 / 2 );//4.5
 console.log( Infinity / Infinity );//NaN
 console.log( -Infinity / -Infinity );//NaN
 console.log( Infinity / -Infinity );//NaN
 console.log( 2 / 0 );//Infinity 
 console.log( -2 / 0 );//-Infinity
 console.log( 0 / 2 );//0
 console.log( 1 / 3 ); //0.3333333333333333
 console.log(  2 / [] );//Infinity
 console.log( true / false );//Infinity
 console.log( true / null );//Infinity
 console.log( true / {} );//NaN({}转化成NaN)
5.余数(%)

1.所有数据类型转为数字 。
2.求余数,如果除法的结果是NaN,余数就是NaN, 无穷大 % 数字 结果 NaN 。

 console.log( 5  % 2 );//1
 console.log( [5] % 2 );//1
 console.log( -Infinity % 2 );//NaN

数据类型的递增递减

1递增(++)
①数字
var num = 123;
++num;//前置
num++;//后置
console.log( ++num );//124
console.log( num++ );//124
②Object和Array
var ob = {x:"123"};
++ob;
console.log(ob);//NaN
var arr=[]
++arr;
console.log(arr);//1
总结

1,++操作符如果是前置的,在进行运算的时候先自增再运算。

var num = 123;
var result = ++num + 1;
 console.log (num);//124
  console.log( result );//125

2,++操作符如果是后置的,在进行运算的时候先运算再自增 。

var num = 123;
var result = num++ + 1;
 console.log (num);//124
  console.log( result );//124
2.递减(–)

原理和递增一样(见上)。

布尔值

1.||或

||

console.log( 0 || '花花' );//花花
console.log(  null || '' || undefined || false  );//fasle
 console.log(  null || '' || undefined || 1  );//1
2.&&与

&& 通关游戏

 console.log(  undefined && 2  );
 console.log(  1 && 2 && 'false' && {name:'小明'} );//此时在第三关。
3 !非
console.log(!0);//true

注意: 0 NaN undefined null false “” 转Boolean都是false. 除了以上六个,其他的所有数据用!时2,结果都为false 。

大小比较(>=)

结果返回ture和false.
数字比数字 = 数学运算
字符串比字符串 = 字符编码比较(比较字符编码时,一个一个比较)
字符串比数字 = 数学运算
对象不管和什么比较都先转为字符串(注意:对象和所有数字比较的时候返回的结果都是false)
任何数据类型和数字比较都转为数字
布尔值,undefined,null转为数字

是否相等

总结:①字符串比较等于比值,(即判断里面的是否相等)
②数字和数字比较,即直接比值,无穷大和负无穷大都等于自己,NaN不等于它自己。
③布尔值转数字。
④字符串和数字比,字符串转为数字。
⑤undefined和null相等。
⑥undefined和null不会进行转化。
⑦对象和字符串比较=对象转字符串。
⑧对象和数字比较=对象转数字。

console.log( 'hello world' == 'hello world' );//true
 console.log( 99 == 99 );//ture
 console.log("3"==3);//true
 console.log( undefined == null );//true

全等(===)

即要数据类型相同也要值相同
其余字符
*= += -= /= %=

var num = 2;
console.log( num *= 2 );
console.log( num );//4

var num1 = 3;
 num1 += 2;
 console.log( num1 );//5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值