一、算术运算符:

1、运算符:

“+”:功能:对数字进行代数求和;对字符串进行连接操作;将一个数值转换为字符串(数值+空字符串)。

“-”:功能:对操作数进行取反操作;对数字进行减法操作;将字符串转换成数值 (数值型型字符串-0)。

“*”:功能:对两个运算数进行乘法运算;同号得正,异号得负。

“/”:功能:对两个运算数进行除法运算;同号得正,异号得负。

“%”:功能:返回两个除数的余数;和第一个运算数的符号相同。

2、复合赋值运算符: +=、-=、*=、/=、%=

3、自增与自减:

功能相反:++ 对唯一的运算数进行递增操作(每次加1);-- 对唯一的运算数进行递减操作(每次减1);

规则相同:运算数必须是一个变量、数组的一个元素或者对象的属性;如果运算数是非数值的,运算符会将它转成数值;

符号位置决定运算结果:符号位于运算数之前(先进行递增火递减操作,再进行求值);符号位于运算数之后(先求值,再进行递增或者递减操作)

二、关系运算符:

1、大小关系检测:

运算符:<、<=、>=、>;

操作规则:数值与数值的比较——比较他们的带数值;仅一个运算数是数值——将另一个运算数转换成数值,并比较他们的代数值;字符串间的比较——逐字 符比较他们的Unicode数值;字符串与非数值的比较——将运算数转换成字符串并进行比较;运算数即非数字也非字符串——转换为数值或者字符串进行比 较;运算数无法被转换成数值或者字符串——返回值false;与NaN的比较——返回值为false。

2、等值关系检测:

相等比较:操作符有== 和!= ;类型转换(布尔值——true为1,false为0;对象——调用valueOf() 得到基本类型;字符串与数值的比较——字符串转换为数值);比较原则(null与undefined——相等;NaN ——与任何数值都不相等包括其自身;对象——是否属于同一对象 是为== 否为!=)。

相同比较:操作符有===和!== 比较两个运算数的返回值及数据类型是否相同;比较的原则(值类型间比较——只有数据类型相同,且数值相等时才能够相同;值类型与引用类型比较——肯定不相同;引用类型间比较——比较它们的引用值即内存地址)

三、对象运算符:

in:判断左侧运算数是否为右侧运算数的成员。

instancesof:判断对象实例是否属于某个类或者构造函数。

new:根据构造函数创建一个新的对象,并初始化该对象。

delete:删除指定对象的属性、数组元素或者变量。

.及[]:存取对象和数组元素。

():函数调用,改变运算运算符优先等级。

四、逻辑运算符:

1、!逻辑非:

返回值:true(空字符串、0、null、NaN、undefined),false(对象、非空字符串、非0数值);

特性:如果运算数的值为false则返回true,否则返回false;联系2次!,可将任意类型转为布尔型值。

2、&&逻辑与:

规则:第一个操作数是对象——返回第二个操作数;第二个操作数是对象——第一个操作数值为true时返回该对象;两个操作数都是对象——返回第二个 操作数;一个操作数是null——返回null;一个操作数是NaN——返回NaN;一个操作数是undefined——返回undefined。

特性:当且仅当两个运算数的值都是true时,才返回true,否则返回false;短路操作——当地一个操作数的值是false则不在对第二个操作数进行求值。

3、||逻辑或:

规则:第一个操作数是对象——返回第一个操作数;第一个操作数值为false——返回第二个操作数;两个操作数都是对象——返回第一个操作数;两个 操作数都是null——返回null;两个操作数都是NaN——返回NaN;两个操作数都是undefined——返回undefined。

特性:当且仅当两个运算数的值都是false时,才返回false,否则返回true;如果第一个操作数值为true,则不会对第二个操作数进行求值。

五、位运算符:

1、基础知识:

类型——有符号(数值位31位,符号位第32位 0为正1为负),无符号(只能正数,第32为表示数值,数值范围可加大);数值范围——-2147483648~2147483648;存储方式——正 (纯2进制存储,31位中每一位表示2的幂,用0补存无用位),负(2进制补码存储,补码计算步骤确定该数字的非负版本的二进制表示求得二进制反码,即要 把0替换为1,把1替换为0,在二进制反码上加1);当0来处理的特殊值——NaN和Infinity。

2、逻辑位运算:

返回值为1——按位非~(0) ;按位与&(对应位全为1);按位或|(任何一位是1);按位异或^(既不同时为0,也不同时为1)。

返回值为0——按位非~(1);按位与&(任何一位是0);按位或|(对应位全是0);按位异或^(对应位全为0或全为1)。

3、位移操作:

左移<<——将数值的所有位左移指定的位数;所有空位用0补存;左移1位对其乘以2,左移2位对其乘以4,以此类推。

有符号右移>>——将数值的所有位右移指定的位数;移除的味被舍弃;保留符号位;右移1位对其除2,右移2位对其除4,以此类推。

无符号右移>>>——正数(与有符号右移结果相同);负数(会出现无限大的数值)

4、复合赋值运算符:位操作符与等号结合,复合赋值不会有性能方面的提升。

六、其它运算符:

?: ——条件运算符,简介的if else。

typeof——类型判断运算符。

,——逗号,在一行语句中执行多个不同的操作。

void——舍弃运算数的值,返回undefined作为表达式的值。

js 运算符的更多相关文章

  1. JS运算符

    JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...

  2. js 运算符优先级

    在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...

  3. js运算符单竖杠“|”的用法和作用及js数据处理

    js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...

  4. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  5. js运算符的一些特殊应用

    作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...

  6. js课程 2-6 js如何进行类型转换及js运算符有哪些

    js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...

  7. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  8. 《JavaScript高级程序设计》学习笔记(2)--JS运算符详解

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 思维导图 前面对JS的运算符的操作很多细节的东西没有提及,今天给大家分享一张网上找的思维导图,对这一部 ...

  9. 聊聊js运算符 ‘与(&&)’和‘ 或(||)’

    一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...

  10. JS运算符、NaN

    一.关系运算符  (< <= > >= == === != !==) 判断符号左右的两个数据的大小之间的关系,运算结果是一个布尔类型的值 ==   只判断值 ===即判断值并且 ...

随机推荐

  1. git将本地仓库推送到远程仓库

    如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地  git clone 远程仓库的地址(SSH) 2: git  branch //查看本地分支 3: g ...

  2. jquery弹出下拉列表插件(实现kindeditor的@功能)

    这几天有个工作需求,就是在富文本输入区域(kindeditor)可以有@功能,能够容易提示用户名的(像在qq群组@人一样).在网上找了一个叫bootstrap-suggest的插件,却不能满足我的需求 ...

  3. Ajax表单异步上传(包括文件域)

    起因 做前台页面时,需要调用WebAPI的Post请求,发送一些字段和文件(相当于把表单通过ajax异步发送出去,得到返回结果),然后得到返回值判断是否成功. 尝试 先是尝试了一下 "jQu ...

  4. 64位win7+vs2010编译.net3.5以前的版本问题

    一般编译会出现 1.“ResGen.exe”已退出,代码为2 问题处理 2.“错误 2 “LC.exe”已退出,代码为 -1. NBGIS.MainGIS” 3.“未能加载文件或程序集“ESRI.Ar ...

  5. AD RMS 配置指南 附结合SharePoint使用

    本文的 RMS配置 是独立安装的配置手册,如果要和SharePoint结合使用可以作为参考指南. SharePoint安装可参考 点击链接 同样可提供给Office使用,当然Exchange也可以使用 ...

  6. ListView setOnItemClickListener无效原因分析

    前言 最近在做项目的过程中,在使用listview的时候遇到了设置item监听事件的时候在没有回调onItemClick 方法的问题.我的情况是在item中有一个Button按钮.所以不会回调.上百度 ...

  7. iOS程序破解——ARM汇编基础

    原文在此:http://www.cnblogs.com/mddblog/p/4951650.html 一.Thumb指令与ARM指令 Thumb指令为16位,因此存储代码的密度高,节省存储空间.但是功 ...

  8. C语言数组实现约瑟夫环问题,以及对其进行时间复杂度分析

    尝试表达 本人试着去表达约瑟夫环问题:一群人围成一个圈,作这样的一个游戏,选定一个人作起点以及数数的方向,这个人先数1,到下一个人数2,直到数到游戏规则约定那个数的人,比如是3,数到3的那个人就离开这 ...

  9. MVC3.0----整理之一

    1.ViewBag对象是动态解析对象 @{ ViewBag.Title = "Insert"; } 不仅可以把单个的对象绑定到 ViewBag上,还可以直接绑定List ViewB ...

  10. parawork功能使用说明

    项目整体估算 1.项目估算:依据项目属性,开发规模,参考行业平均生存率自动估算软件工作量.成本.工期 : 2.项目生产率分析:掌握研发生产率行业水平,方便项目管理 : 3.工期占比分析:了解项目关键节 ...