导读:其实看到这个运算符的学习,很有一种熟悉感,因为在总体看来,和之前的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),这个在理解的时候很精准,都得益于之前的数据类型的总结。

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

【JavaScript 3—基础知识点】:运算符的更多相关文章

  1. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  2. JavaScript语言基础知识点图示

    原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...

  3. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  4. JavaScript 语言基础知识点总结(思维导图)

    JavaScript 数组 JavaScript 函数基础 Javascript 运算符 JavaScript 流程控制 JavaScript 正则表达式 JavaScript 字符串函数 JavaS ...

  5. 一套最全的JavaScript 语言基础知识点总结(思维导图10张)

    1.DOM基础操作 2.数组基础 3.函数基础 4.运算符 5.流程控制语句 6.正则表达式 7.字符串函数 8.数据类型 9.变量 10.window对象

  6. 【JavaScript 8—基础知识点】:DOM

    一.总体概述 1.1,什么是DOM DOM(Document Object Model):D(文档):整个web加载的网页文档:O(对象):类似于window对象之类的东西,可以调用属性和方法,在这里 ...

  7. 【JavaScript 7—基础知识点】:BOM

    一.基础知识 1.1,什么是BOM BOM(browser object model):也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM缺少规范,每个浏览器提供商又按照自己想法去扩展 ...

  8. 【JavaScript 4—基础知识点】:函数

    导读:函数这个东西,从VB开始就一直在用,不过那时候一般写不出来自己的函数或者类,觉得最高大上的,就是调用API函数了.现在,学习到了JavaScript,总结总结函数,显得很有必要.这篇文章,就从最 ...

  9. 【JavaScript 1—基础知识点】:宏观概述

    导读:JavaScript是一门新的(也可以说是旧的或者半新语言),里面有很多的知识点都能和已有的知识产生共鸣.但是,虽然简单,相同点也有很多,也有不同点.我脑袋也不好使,所以对于我来说,还是有必要再 ...

随机推荐

  1. 关于IE兼容的问题

    以下内容,均来自不同的网站,非本人原创,只是收集一下放在一起! =============================== [一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 ...

  2. Opencv内存jpg图像解码和编码[转]

    CV_IMPL CvMat* cvEncodeImage( const char* ext,const CvArr* arr, const int* _params ) CV_IMPL IplImag ...

  3. Redis学习笔记(一)五种数据类型

    1.字符串(String) 基本操作:SET(设置).GET(获取).DEL(删除)其他操作传送门 root@localhost:~# redis-cli > set msg hello OK ...

  4. (五)使用Docker镜像(上)

    1. 获取镜像 # 获取镜像 docker pull image:tag // 不使用tag 默认下载latest标签的镜像,即最新的镜像. 2. 查看镜像信息 # 查看镜像信息docker imag ...

  5. 【iview input 回车刷页面bug】input 就一个的时候 有form的时候 回车会刷页面,如果就一个input,可以不要form,或者form里面两个input 将一个input v-show false 就可以了

    [iview input 回车刷页面bug]input 就一个的时候 有form的时候 回车会刷页面,如果就一个input,可以不要form,或者form里面两个input 将一个input v-sh ...

  6. C++类型强制转换<转>

    转载:http://www.cnblogs.com/goodhacker/archive/2011/07/20/2111996.html C风格的强制类型转换(Type Cast)很简单,不管什么类型 ...

  7. java web.xml被文件加载过程及加载顺序小结

    web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...

  8. SpringMVC+Spring+Mybatis整合程序之整合

    因为每个人思路不一样,所以我在这边先分享自己的思路对于mybatis开发持久层(DAO:DataBase Access Object 持久层访问对象)有两种.第一种:传统的开发持久层方式即需要程序员开 ...

  9. IAP介绍

    iOS应用调置 wjforstudy分享了IAP的一些基本知识.在论坛的地址是:http://www.cocoachina.com/bbs/read.php?tid=92060  1.在开始IAP开发 ...

  10. Web字节码(WebAssembly) Emscripten编译器安装

    首先你需要提前安装 git python 环境并且Ctrl+R输入cmd在windows的dos界面下能够运行 第一步: 在github上downloade下来emsdk git clone http ...