zoukankan      html  css  js  c++  java
  • JavaScript运算符

    一、表达式

    表达式是ECMAScript中的一个短语,解释器会通过计算把它转换成一个值,最简单的表达式是字面量或者变量名。

    例如:3.14 //数值字面量  true//布尔字面量  ‘cai’//字符串字面量  null //空值字面量。

    还可以通过合并简单的表达式来创建复杂的表达式,比如:

    3.14+box    //加法运算的表达式             typeof(box)    // 查看数据类型的表达式

    结论:单一的字面量和组合字面量的运算符都可以称为表达式。

    二、一元运算符

    只能操作一个值的运算符叫做一元运算符。

    三、算术运算符

    四、关系运算符

    五、逻辑运算符

    六、位运算符

    七、赋值运算符

    八、其他运算符

    九、运算符优先级

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>js运算符</title>
    </head>
    <body>
    <script type="text/javascript">

    /*var box = 100;
    //box++; //把box累加一个1,相当于box=box+1; 后置运算符
    //box--; //把box累减一个1,相当于box=box-1;
    //++box; //同上 前置运算符
    --box; //同上
    alert(box); 前置和后置的区别:
    在没有赋值操作时,前置和后置是一样的。但在赋值操作时,如果递增或递减运算符前置,那么前置的操作符会先累加或累减再赋值,后置的运算符则先赋值再累加或累减。应用的地方:循环语句*/
    var box = 100;
    //var age = ++box; box=101; 先运算再赋值给新的变量
    var age = box++; //age=100; 后加加功能没有实现,没有自增1; 先赋值给新的变量再运算
    document.write(age + "<br />");

    //算数运算符
    //ECMAScript定义了5个运算符,加减乘除取模。如果算术运算的值不是数值时,后台会先使用Number()转型函数将其转换为数值(隐式转换)。
    var box1 = 3*8;
    document.write(box1 + "<br />");

    var box2 = 9%5;
    document.write(box2 + "<br />");

    /*关系运算符
    用于进行比较的运算符叫做关系运算符;大于(>),小于(<),小于等于(<=),大于等于(>=),相等(==),
    不等(!=),全等(恒等)(===),不全等(不恒等)(!===)。当关系运算符操作非数值时遵循的规则:
    1、两个操作数都是数值时,则数值比较。
    2、两个操作数都是字符串时,则比较两个字符串对应的字符编码值。
    3、两个操作数有一个是数值时,将非数值操作数转换为数值后,再进行数值比较
    4、两个操作数有一个是对象时,则先调用valueOf()方法或toString方法,再用结果比较。
    */
    //var box3 = 3>2;
    var box3 = 3==2;
    document.write(box3 + "<br />");
    /*在相等和不等的比较上,如果操作数是非数值时,则遵循以下规则:
    5、一个操作数是布尔值时,则比较之前先将其转换为数值,true转换为1,false转换为0。
    6、一个操作数是字符串,则将其转换为数值后再比较。
    7、一个操作数是对象,则先调用valueOf()或toString方法后再和返回值比较。
    8、在不需要任何转换的情况下,null和undefined是相等的。
    9、一个操作数是NaN,则==返回false,!=返回true。并且NaN和自身不等。
    10、两个操作数都是对象,则比较他们是否是同一个对象,如果都指向同一个对象则返回true,否则返回false。
    11、在全等和全不等的判断上,值和数据类型都相等返回true,否则返回false。
    */
    var box4 = 1==false;
    document.write(box4 + "<br />");
    var box7 = 0==false;
    document.write(box7 + "<br />");
    var box5 = null==undefined;
    document.write(box5 + "<br />");
    var box6 = NaN==NaN;
    document.write(box6 + "<br />");
    var box8 = "100"==100;
    document.write(box8 + "<br />");
    var box9 = '100'===100;
    document.write(box9 + "<br />");
    var box10 = null==0;
    document.write(box10 + "<br />");

    /*逻辑运算符
    逻辑运算符通常用于布尔值的操作,一般和关系运算符配合使用,有三个逻辑运算符:
    逻辑与( && and)、逻辑或( || or)、逻辑非(not)
    */
    var luo1 = (5>4)&&(4>3);
    document.write(luo1 + "<br />"); //luo1=true,只有两边都是才返回true

    var luo2 = (9>7)||(7>9);
    document.write(luo2 + "<br />"); //luo2=true,只要有一边是true就返回true

    /*逻辑非:逻辑非运算符可以用于任何值;无论这个值是什么数据类型,这个运算符都会返回一个布尔值;
    它的流程是:先将这个值转换为布尔值,然后取反,规则如下:*/
    var luo3 = !(5>4);
    document.write(luo3 + "<br />");
    var luo4 = !!(5>4);
    document.write(luo4 + "<br />");

    //位运算符
    var wei = ~25;
    document.write(wei + "<br />");

    //赋值运算符:用等号(=)表示,就是把右边的值赋给左边的变量。
    var fu = 10;
    fu += 100; //复合运算符用x=的形式表示,x表示算术运算符或位运算符
    document.write(fu + "<br />")
    var fu = 10;
    fu /= 100;
    document.write(fu + "<br />")

    /*其他字符串
    1、字符串运算符:只有一个(即"+"),它的作用就将两个字符串相加(连接符)。*/
    var qi = "ab" + "cd";
    document.write(qi + "<br />");
    var qi1 = 1, qi2 = 2, qi3 = 3; //逗号运算符,可以在一条语句中执行多个操作;一个关键字声明多个变量(用逗号分隔)。

    //三元条件运算符:if语句的简写形式,
    var san = 5>4? '正确' : '错误';
    document.write(san + "<br />")

    //运算符优先级
    var you = 5-4*8;
    document.write(you + '<br />')
    var you2 = (5-4)*8;
    document.write(you2 + '<br />')

    </script>
    </body>
    </html>

  • 相关阅读:
    索引!
    事件event
    Erlang运行时源码分析之——线程进度机制
    Erlang 运行时中使用的读写锁解析
    经典互斥算法解析
    网格布局之grid
    注册简单表单
    前端入门之自我介绍
    Python之一后置固件yield和终结函数addfinalizer
    python中yield 与 return 区别
  • 原文地址:https://www.cnblogs.com/JCBX1688/p/6648256.html
Copyright © 2011-2022 走看看