【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),这个在理解的时候很精准,都得益于之前的数据类型的总结。
基础知识的罗列,看起来毫无意义和繁杂,但就是那一遍哪怕是抄的过程,都带给了我很多财富。
【JavaScript 3—基础知识点】:运算符的更多相关文章
- JavaScript语言基础知识点图示(转)
一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...
- JavaScript语言基础知识点图示
原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...
- JavaScript 语言基础知识点总结
网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )
- JavaScript 语言基础知识点总结(思维导图)
JavaScript 数组 JavaScript 函数基础 Javascript 运算符 JavaScript 流程控制 JavaScript 正则表达式 JavaScript 字符串函数 JavaS ...
- 一套最全的JavaScript 语言基础知识点总结(思维导图10张)
1.DOM基础操作 2.数组基础 3.函数基础 4.运算符 5.流程控制语句 6.正则表达式 7.字符串函数 8.数据类型 9.变量 10.window对象
- 【JavaScript 8—基础知识点】:DOM
一.总体概述 1.1,什么是DOM DOM(Document Object Model):D(文档):整个web加载的网页文档:O(对象):类似于window对象之类的东西,可以调用属性和方法,在这里 ...
- 【JavaScript 7—基础知识点】:BOM
一.基础知识 1.1,什么是BOM BOM(browser object model):也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM缺少规范,每个浏览器提供商又按照自己想法去扩展 ...
- 【JavaScript 4—基础知识点】:函数
导读:函数这个东西,从VB开始就一直在用,不过那时候一般写不出来自己的函数或者类,觉得最高大上的,就是调用API函数了.现在,学习到了JavaScript,总结总结函数,显得很有必要.这篇文章,就从最 ...
- 【JavaScript 1—基础知识点】:宏观概述
导读:JavaScript是一门新的(也可以说是旧的或者半新语言),里面有很多的知识点都能和已有的知识产生共鸣.但是,虽然简单,相同点也有很多,也有不同点.我脑袋也不好使,所以对于我来说,还是有必要再 ...
随机推荐
- 用vue.js重构订单计算页面
在很久很久以前做过一个很糟糕的订单结算页面,虽然里面各区域(收货地址)使用模块化加载,但是偶尔会遇到某个模块加载失败的问题导致订单提交的数据有误. 大致问题如下: 1. 每个模块都采用usercont ...
- 跨平台C++开源代码的两种常用编译方式
作者:朱金灿 来源:http://blog.csdn.net/clever101 跨平台C++开源代码为适应各种编译器的编译,采用了两种方式方面来适配.一种是makefile方式.以著名的空间数据格式 ...
- ionic2 tabs 自定义图标
ionic2 tabs 自定义图标 一.准备资源 tabs icon 的svg格式的矢量图片 二.生成字体样式文件 打开icoMoon网站去制作字体文件. 三.使用字体文件 解压下载的文件,将其中的f ...
- uvm_reg_sequence——寄存器模型(六)
寄存器模型 uvm_reg_sequence是UVM自带所有register sequence 的基类. 该类包含model, adapter, reg_seqr(uvm_sequencer). 感觉 ...
- vuex存取token,http简单封装、模拟登入权限校验操作、路由懒加载的几种方式、vue单页设置title
1.config index.js下面的跨域代理设置: proxyTable: { '/api': { target: 'http://xxxx', //要访问的后端接口 changeOrigin: ...
- COGS 2082. Asm.Def谈笑风生
★ 输入文件:asm_talk.in 输出文件:asm_talk.out 简单对比时间限制:2 s 内存限制:256 MB [题目描述] “人呐都不知道,自己不可以预料,直升机刚一出圣 ...
- gcc, g++ - GNU 工程的 C 和 C++ 编译器 (egcs-1.1.2)
总览 (SYNOPSIS) gcc [ option | filename ]... g++ [ option | filename ]... 警告 (WARNING) 本手册页 内容 摘自 GNU ...
- vuejs 中 select 动态填充数据,后台的数据
selected:"A" 对 selected:A 错. 变量不用引号. 内容一定要引号. https://jsfiddle.net/rgnuaw30/ ...
- 科普NDIS封包过滤
闲言: 这个月一直在学习NDIS驱动编程,杂七杂八的资料都看个遍了,做了点笔记,捋捋思路,发上来备忘. Ps:只是小菜的一点学习笔记,没什么技术含量,不过版主如果觉得对大家稍微有点帮助的话 ...
- Python使用三种方法实现PCA算法[转]
主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...