当前位置 : 主页 > 编程语言 > 其它开发 >

JavaScript中不同数字类型运算符之间的操作

来源:互联网 收集:自由互联 发布时间:2022-06-14
JavaScript中不同数字类型运算符之间的操作,例如整形和字符串型比大小,比较是否全等。不同数据类型的取反,两个表达式的取与,取或。 不同数字类型运算符之间的操作 比较运算符
JavaScript中不同数字类型运算符之间的操作,例如整形和字符串型比大小,比较是否全等。不同数据类型的取反,两个表达式的取与,取或。 不同数字类型运算符之间的操作

比较运算符 : > ,< >= , <= ,== ,!=, =, !,返回值是布尔类型

  1. 都是number型,大小进行比较
  2. 都是string型,按位按照ASCII表[^ASCLL]进行比较
  3. number,string :隐式调用Number()把string 转为number进行计算
  4. ==:值相等
  5. ===:值相等,数据类型相同
  console.log(2 > "100");  //false  "100"转为 100 与2进行比较
  console.log("234" > "100"); //true  这种比较为ASCII码比较,依次取每个字符,字符转为ASCII码进行比	较
  console.log("15" > "9");  //false       
  console.log(15 > 9); //ture
  console.log(12 == "12"); //true
  console.log(1 == true); //ture  Number(true)转换成1
  console.log(0 === false); //false 
  console.log(0 == undefined); //false Number(undefined)转换成NaN
  console.log(0 == ""); //true
  console.log(0 == " "); //true

算术运算符:+,-,*,/,%,++,--,**

  console.log(1 + 133);  //134
  console.log(1 + "133");  //1133
  console.log(1 - "133"); //-132
  console.log(1 - "abc");  //NAN  直接是非数字类型

逻辑运算符:隐式调用Boolean()判断真假

  1. 0,false,null,undefined,NaN,"" 这些为假
  2. &&:返回第一个假值,运用(短路原则)会返回第一个假值
  3. ||: 返回第一个真值(短路原则)
  var num = 10, bool = true, str = "abc";
  console.log(num && bool && 0); //0 
  console.log(num && str); //"abc"
  console.log(bool && str); //"abc"


  console.log(0 && str); //0
  console.log(false && num); //false
  console.log(undefined && num); //undefined

  console.log(str && false); //false
  console.log(0 && ""); //0
  console.log("" && 0); // ""

  console.log(num || bool || 0); //10
  console.log(num || str); //10
  console.log(bool || str); //true

  console.log(0 || str); //"abc"
  console.log(false || num); //10
  console.log(undefined || num); //10

  console.log(str || false); //10
  console.log(0 || ""); //""  没真值,只能返回第二个
  console.log("" || 0); //0

取反:!

真变假假变真

  var num = 10, bool = true, str = "abc";
  console.log(!true); //false
  console.log(!0); //true
  console.log(!str); //false

短路的代码不会执行

  console.log(str && num++); //10  && 期望返回第一个假值,没有假值,就返回最后一个真值,两个都是真值,返回第二个num++
  console.log(num);  //11
  console.log(false && ++num);  //false  
  console.log(num);  //11  被短路的代码不运行了,所以还是11
  console.log(num++ || 0); //11 最后做自增运算 12
  console.log(0 || ++num); //13
  console.log(0 || str > num); //fales   返回 str>num 的结果NaN
  console.log(num);   //13
网友评论