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),这个在理解的时候很精准,都得益于之前的数据类型的总结。

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









  • 相关阅读:
    Linux之文件处理命令
    Linux基础命令
    rip实验
    Linux基础之磁盘分区
    mysql安装
    centos Apache、php、mysql默认安装路径
    You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
    Wrong permissions on configuration file, should not be world writable!
    机器会学习么 学习总结
    实验 5 Spark SQL 编程初级实践
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010426.html
Copyright © 2011-2022 走看看