zoukankan      html  css  js  c++  java
  • 【JavaScript 3—基础知识点】:运算符

    导读:其实看到这个运算符的学习,很有一种熟悉感,因为在总体看来,和之前的C++有很多类似的地方,但当时觉得简单,没有总结。所以,这次一定得总结了。其实,知识的罗列,基础的积累,在学习中也很重要。

    一、总体图示

    1.1,图示


    1.2,说明

    运算符从大体上,分为了8种。而其中重点介绍的有:算术、关系、逻辑运算符。而在首先也展示了由运算符而组合的表达式,算是运算符的应用,而后介绍的优先级,则算是对于运算符操作的一种规范。

    1.2.1,一元运算符扩展

    数值字符串型:var box='89';box++      说明:90,自动转换成数值
    字符串:var box='ab';box++     说明:NaN,字符串包含非数值转换成NaN
    布尔值:var box=false;box++   说明:1,false转换成值是0,累加就是1
    浮点型:var box=2.3;box++     说明:3.3,直接加1
    对象型:var box={toString:function(){return 1;}};box++      说明:1,不设置toString()或valueOf即为NaN(结合到数据类型转换去看)


    1.2.2,位运算符扩展

    分为7种,分别是:位非NOT(~)、位与AND(&)、位或OR(|)、位异或(^)、左移(<<)、有符号右移(>>),无符号右移(>>>)
    位运算符基于底层,性能和速度非常好,但也正是由于其基于底层,所以使用的难度也较大。
    更多关于位运算符的知识:https://msdn.microsoft.com/library/066h456z


    1.2.3,逗号运算符扩展

    var box=100,age=20,height=178;  说明:多个变量声明
    var box=(1,2,3,4,5);               说明:5,变量声明,将最后一个值赋给变量。(不常用)
    var box=[1,2,3,4,5]            说明:[1,2,3,4,5],数组的字面量声明
    var box={1:2,3:4,5:6}     说明:[Object Object],对象的字面量声明


    1.2.4,优先级扩展

    一般情况,我们使用圆括号进行优先级的设置,比如在数据类型转换中执行加运算符,var box=“年龄是:”+10+20;alert(box),那么执行的结果是:年龄是:1020。但如果使用圆括号进行优先级设定:var box=“年龄是:”+(10+20);alert(box),那么执行的结果就是:年龄是:30。

    另外,不使用圆括号进行优先级设定的运算规则是:



    二、分解说明

    2.1,算术运算符


    2.2,关系运算符


    2.2.1,图形补充

    关系运算符除了包括小于,大于,小于等于,大于等于之外,还包括:相等==,不等!=,全等(恒等)===,不全等!==

    2.3,逻辑运算符


    2.3.1,图形补充

    逻辑与运算符属于短路操作,如果第一个操作数返回false,第二个数不管是false或是true,都返回false。同理,逻辑或运算符也属于短路操作,当第一操作数的求值结果为true,就不会对第二个操作数求值,利用这一特性,避免变量赋null或Undefined值。
    逻辑非:使用一次逻辑非运算符,其流程是先转成布尔值,后取反。而使用两次逻辑非运算符就是将值转换成布尔值取反再取反,其操作相当于对值进行Boolean()转型函数处理。
    注意:使用三个以上的逻辑非运算符,没有错误,但没有其实际意义


    三、学习总结

    这部分知识,本来在学习C的时候就应该总结的。这次总结,发现基础真的很重要,有时候就是那么一小点,就可以决定整个成败。就比如说一元运算符中对象型,要是之前没有总结数据类型,也不能理解这么快(主要是对象数据转换的内部机制,其首先通过ValueOf()函数,判断对象类型是否为数值,当返回值=NaN时,则继续调用其toString()函数,继续判断)再一个简单的就是var box=“年龄是:”+10+20;alert(box)和var box=“年龄是:”+(10+20);alert(box),这个在理解的时候很精准,都得益于之前的数据类型的总结。

    基础知识的罗列,看起来毫无意义和繁杂,但就是那一遍哪怕是抄的过程,都带给了我很多财富。









  • 相关阅读:
    BestCoder Round #29 1003 (hdu 5172) GTY's gay friends [线段树 判不同 预处理 好题]
    POJ 1182 食物链 [并查集 带权并查集 开拓思路]
    Codeforces Round #288 (Div. 2) E. Arthur and Brackets [dp 贪心]
    Codeforces Round #287 (Div. 2) E. Breaking Good [Dijkstra 最短路 优先队列]
    Codeforces Round #287 (Div. 2) D. The Maths Lecture [数位dp]
    NOJ1203 最多约数问题 [搜索 数论]
    poj1426
    POJ 1502 MPI Maelstrom [最短路 Dijkstra]
    POJ 2785 4 Values whose Sum is 0 [二分]
    浅析group by,having count()
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010426.html
Copyright © 2011-2022 走看看