第7节 JavaScript运算符-1

  JavaScript中也有许多运算符,比如一元运算符、逻辑运算符、乘性运算符、加性运算符、关系运算符、等性运算符、条件运算符、赋值运算符、逗号运算符。学习这些知识是非常重要的,只有了解了运算符的使用方法和他们之间的关系,才能更好的灵活使用JavaScript。


一元运算符

  一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中最简单的运算符。

 delete

  delete运算符删除对以前定义的对象属性或方法的引用。

    //delete
    var obj = new Object();
    obj.name = "wuhen";
    document.write(obj.name +"<br>");       //返回 wuhen
    delete obj.name;                        //删除name属性
    document.write(obj.name +"<br>");       //返回undefined

删除了name属性意味着强制解除对它的引用,将其设置为undefined。delete运算符不能删除开发者未定义的属性和方法。

 自增、自减运算符

形式 用法
i++ 先进行表达式计算,在自增
i– 先进行表达式计算,在自减
++i 先自增,在进行表达式计算
–i 先自减,在进行表达式计算
//自增、自减运算符
var a = 10;
var b = 10;
var num1 = (a++ + 10);
var num2 = (++b + 10);

document.write("num1:"+num1+" a:"+a );
document.write("<br>");
//返回 num1:20 a:11   说明先进行表达式计算,在自增

document.write("num2:"+num2+" b:"+b);   
document.write("<br>");
//返回 num2:21 b:11 说明先自增,在进行表达式计算

 一元加法/减法

  一元加法本质上对数字无任何影响,但对字符串却有有趣的效果,会把字符串转换成数字。
  一元减法就是对数值求负,也会把字符串转换成近似的数字,此外还会对该值求负。

//一元加减法
var str = '100';
document.write(typeof str  +"<br>");    //返回 string
document.write(typeof +str +"<br>");    //返回 number
document.write(typeof -str +"<br>");    //返回 number

逻辑运算符

 与 &&

  在ECMAScript 与运算的运算数可以是任何类型的,不止是布尔类型值。如果某个运算数不是布尔类型值,与运算并不一定返回布尔类型值。
  与运算是短路运算,只要第一个操作数时false,不管第二个操作数如何结果都是false。
  运算规则如下,且都要遵守短路运算:

  • 如果第一个运算数是对象,则返回第二个操作数
  • 如果两个运算数都是对象,返回第二个对象
  • 如果某个运算数是 null,返回 null
  • 如果某个运算数是 NaN,返回 NaN
//与运算
var obj1 = new Object();
var obj2 = new Object();
document.write(obj1 && 100 );   //返回100
document.write("<br>");

document.write(null && 100 );   //返回null
document.write("<br>");

document.write(false && null);  //返回false
document.write("<br>");

document.write(NaN && null);    //返回NaN
document.write("<br>");

 或 ||

  在ECMAScript中或运算和与运算相似,运算结果不一定是布尔类型值。且也是短路运算,只要第一个操作数时true,不管第二个操作数如何结果都是true。

 非 !

  与其他2个运算符不同,返回结果一定是布尔类型值。
  运算规则:

  • 如果运算数是对象,返回 false
  • 如果运算数是数字 0,返回 true
  • 如果运算数是 0 以外的任何数字,返回 false
  • 如果运算数是 null,返回 true
  • 如果运算数是 NaN,返回 true
  • 如果运算数是 undefined,返回true
//非运算
document.write(!obj1);          //返回false
document.write("<br>");

document.write(!100);           //返回false
document.write("<br>");

document.write(!NaN);           //返回true
document.write("<br>");

document.write(!undefined);     //返回true
document.write("<br>");

学习总结

  这一节先学习了一元运算符和逻辑运算符,逻辑运算符看着很多运算规则,其实只要弄清楚2点就行啦。其他类型转换成布尔类型是什么,与运算和或运算的短路操作原理,知道这2点就可以很好理解这些运算规则了。
  每天进步一小点,十天一大步,继续加油吧。


猜你喜欢

转载自blog.csdn.net/kelinfeng16/article/details/81665872
今日推荐