字符关系操作

//操作符字符串的隐性转换

test

//乘法
console.dir("-------以下乘法---------");
console.dir(5*"5");
console.dir(5*"a");
console.dir(5*NaN);
console.dir(5*null);
console.dir(5*undefined);
console.dir(5*5);
console.dir("-------以上乘法---------");

//除法
console.dir("-------以下除法---------");
console.dir(5/"5");
console.dir(5/"a");
console.dir(5/NaN);
console.dir(5/null);
console.dir(null/5);
console.dir(5/undefined);
console.dir(5/5);
console.dir(5/0);
console.dir(0/5);
console.dir(0/0);
console.dir("-------以上除法---------"); 

//取余、求模
console.dir("-------以下取余、求模--------");
console.dir(16%"5");
console.dir(5%"a");
console.dir(5%NaN);
console.dir(5%null);
console.dir(null%5);
console.dir(5%undefined);
console.dir(5%5);
console.dir(5%0);
console.dir(0%5);
console.dir(0%0);
console.dir("-------以上取余、求模---------"); 

//加法
console.dir("-------以下加法--------");
console.dir(16+"5");
console.dir(5+"a");
console.dir(5+NaN);
console.dir(5+null);
console.dir(5+undefined);
console.dir(5+5);
console.dir("两个数的和是"+5+5);
console.dir("两个数的和是"+(5+5));
console.dir("-------以上加法--------"); 

//减法
console.dir("-------以下减法--------");
console.dir(16-"5");
console.dir(5-"a");
console.dir(5-NaN);
console.dir(5-null);
console.dir(5-undefined);
console.dir(5-5);
console.dir(5-true);
console.dir(5-"true");
console.dir(5-"");
console.dir("两个数的差是"+5-5);
console.dir("两个数的差是"+(5-5));
console.dir("-------以上减法--------"); 

//关系操作符
console.dir("-------以下关系操作符--------");
console.dir(16>"5");
console.dir("16">"5");
console.dir(5<"a");
console.dir(5>=NaN);
console.dir(5<NaN);
console.dir(NaN>=NaN);
console.dir(5>=null);
console.dir(5>=undefined);
console.dir(5>=5);
console.dir(5>=true);
console.dir(5>="true");
console.dir(5>="");
console.dir("Brick">"alphabet");
console.dir("brick">"alphabet");
console.dir("-------以上关系操作符--------"); 

answers

//乘法
 console.dir(5*"5"); //25
 console.dir(5*"a");//NaN
 console.dir(5*NaN);//NaN
 console.dir(5*null);0
 console.dir(5*undefined);//NaN
 console.dir(5*5);//25

//除法
 console.dir(5/"5");//1    将字符转化为数字进行相除
 console.dir(5/"a");//NaN   将“a”用Number()函数进行转化,出来的值是NaN,结果就是NaN
 console.dir(5/NaN);//NaN
 console.dir(5/null);//Infinity  null用Number()函数进行转化,结果是0,那么5/0是正无穷
 console.dir(null/5);//0  同上0/5是0
 console.dir(5/undefined);//NaN   undefined 用Number()进行转化,结果是NaN
 console.dir(5/5);//1
 console.dir(5/0);//Infinity
 console.dir(0/5);//0
 console.dir(0/0);//NaN //0除以0结果是NaN

//取模
 console.dir(16%"5"); //1  将字符串5通过Number()转化为5然后进行求余
 console.dir(5%"a");//NaN
 console.dir(5%NaN);//NaN
 console.dir(5%null);//NaN  将null 通过Number()转化,结果是0,然后计算5%0 ,结果是NaN
 console.dir(null%5);//0  同上0%5 取余,结果是0
 console.dir(5%undefined);//NaN
 console.dir(5%5);//0
 console.dir(5%0);//NaN
 console.dir(0%5);//0
 console.dir(0%0);//NaN
console.dir(Infinity%Infinity);//NaN
console.dir(5%Infinity);//5
 console.dir(Infinity%5); //NaN

//减法
 console.dir(16-"5");//11
 console.dir(5-"a");//NaN
 console.dir(5-NaN);//NaN
 console.dir(5-null);//5
 console.dir(5-undefined);//NaN
 console.dir(5-5);//0
 console.dir(5-true);//4
 console.dir(5-"true");//NaN
 console.dir(5-"");//5
 console.dir(5-Infinity);//-Infinity
 console.dir(Infinity-Infinity);//NaN
 console.dir("两个数的差是"+5-5);//NaN
 console.dir("两个数的差是"+(5-5));//两个数的差是0

//关系操作符
 console.dir(16>"5"); //true
 console.dir("16">"5");//false
 console.dir(5<"a");//false
 console.dir(5>=NaN);//false
 console.dir(5<NaN);//false
 console.dir(NaN>=NaN);//false
 console.dir(5>=null);//true
 console.dir(5>=undefined);//false
 console.dir(5>=5);//true
 console.dir(5>=true);//true
 console.dir(5>="true");//false
 console.dir(5>="");//true 
 console.dir("Brick">"alphabet");//false  B的字符串编码值是66 ,而a的字符串编码是97.因此false
 console.dir("brick">"alphabet");//true 小写字母b比a大,所以是true

//加法
 console.dir(16+"5"); //156
 console.dir(5+"a");//5a
 console.dir(5+NaN);//NaN
 console.dir(5+null);//5
  console.dir('5'+null);//5null
 console.dir(5+undefined);//NaN
 console.dir(null+undefined);//NaN
 console.dir(5+5);//10
 console.dir("两个数的和是"+5+5);//两个数的和是55
 console.dir("两个数的和是"+(5+5));//两个数的和是10