javaScript常用运算符和操作符总结

类别

操作符

算术操作符 +、 –、 *、 /、 %(取模)
字符串操作符 + 字符串连接   +=字符串连接复合
布尔操作符 !、 &&、  || 
一元操作符 ++ 、 -- 、  +(一元加)、    -(一元减)
关系比较操作符 < 、 <= 、 >  、>=、   !=  、 == 、  === 、  !== 
按位操作符 ~ 按位非    &按位与     | 按位或     ^按位异或    <<左移    >>有符号右移      >>>无符号右移
赋值操作符 = 、   复合赋值(+=、-=、*=、%=)   复合按位赋值(~=、&=、|=、^=、<<=、>>=、>>>=)
对象操作符 .属性访问、[]属性或数组访问、 new调用构造函数常见对象、delete变量属性删除、void(返回undefined)、in判断属性、instanceof原型判断
其它操作符 ?: 条件操作符、,逗号操作符、()分组操作、typeof类型操作符

注意事项:

1. 算数操作符

1.1 除了加号(+)之外,如果操作数不是Number类型,会自动先调用Number()将其转换为Number类型再进行计算。

1.2 除号(/)和取模(%)并不会区分整数和浮点数,都会自动转化为浮点数,比如 9 / 2 = 4.5 而不是4,5.3 % 3 = 2.3 而不是2。

1.3 任意运算,只要操作数含NaN,结果就是NaN。但并不是结果为NaN就一定有一个操作数为NaN,比如0/0也返回NaN。

2. 字符串操作符

2.1 字符串连接符号(+)相当于concat()函数,会将操作数据转化为字符串,再连接。在字符串和数值型进行+号运算时,会将数值型转为字符串。

3. 布尔操作符

3.1   &&逻辑与常被应用判断一个变量或属性是否有定义,例如:

if(object && object.name && object.name = 'name'){
//这里会首先判断object存在,不存在的话就不会解析object.name从而阻止错误的发生,同样,也只有object.name存在,才会去比较这个值。
}
3.2   ||逻辑或常被应用提供默认值的情况,和?问号操作符类似。例如
function Fn(obj){
  obj = obj || {};
//这里如果调用Fn未传入obj,则会自动给obj赋值为undefined,然后因为undefined的相应Boolean值为false,
//所以会将一个空对象{}赋值给obj,如果调用传入了obj,则因为任意对象的Boolean值为true,
//所以就不会取后面的{},从而达到给obj一个默认值{}的效果。
}

4. 一元操作符

4.1 前置自增(减)会先自增(减)再参与其它运算,后置先参与其它运算再自增(减)。

4.2 对于不是Number类型的值进行自增自减时会先将其隐式转换为Number类型,然后再自增(减)。

5. 关系比较操作符

5.1 比较双方都为字符串时,则会从前往后逐个比较字符编码值,只要有较大者就终止比较,不会往后进行。

5.2 比较双方有一个Number类型,则会将非Number类型数据转为Number类型值再比较。

5.3 操作符是对象时,调用valueOf()(如果没有,就调用toString()),再将结果进行比较。

5.4 任何数和NaN比较都会返回false.

6. 对象操作符

6.1 通过[]可以访问名称是一个变量或含有特殊字符的属性,名称为普通确定值时用.点号访问对象属性。

6.2 new 调用构造函数创建一个对象,在构造函数内部的this被指向这个新创建的对象

6.3 delete,删除变量或属性,(变量可以看成是全局对象或执行环境的一个属性)

7. 其它操作符

7.1 typeof是一个操作符,而不是函数,返回一个字符串值,(有些会根据浏览器极其版本不同而略有不同)

类型

typeof值

类型

typeof值

类型

typeof值

Undefined 'undefined' Null 'object' Boolean 'boolean'
Number 'number' String 'string' 内置Function对象的实例 'function'

typeof一般用来判断简单数据类型,如果是对象类型,因为大部分返回的都是object,实际一般不会使用;

而instanceof的判断也需要满足同一个上下文的条件,否则也会出错,

8.常用方式:

8.1 使用一元加号+直接隐式转换为Number类型。  例如:console.info(+true);  //1,一元操作符,转换为数值1

8.2 使用加空字符串可直接隐式转为String类型。     例如:console.info(''+true);  //true,隐式转换为字符串'true'

8.3 使用双重逻辑非!!隐式转换为Boolean类型。      例如:var a='a’;   console.info(!!a);   //true  两次取反,将其隐式转换为boolean类型

8.4 使用逻辑与&&来检测对象或其属性是否存在并进行后续操作。   例如:object && object.name && object.name = 'name';

8.5 使用逻辑或||来给函数参数提供默认值,也常用?问号条件操作符提供默认值。  例如:  obj = obj || {};

8.6 使用花括号{}来定义对象字面量,JSON数据格式和代码块。   例如: var obj = {};

8.7 使用中括号[]来定义数组字面量,JSON数据格式,访问数组,访问名称是变量或特殊字符的属性。  例如: obj[this.index]

8.8 按位运算可应用一些场所:如不使用中间变量直接交换两个数值、判断奇数和偶数、MD5加密等等。

javaScript常用运算符和操作符总结的更多相关文章

  1. javascript(六)运算符

    运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和" ...

  2. JavaScript 常用功能总结

    小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...

  3. JavaScript instanceof 运算符深入剖析

    简介: 随着 web 的发展,越来越多的产品功能都放在前端进行实现,增强用户体验.而前端开发的主要语言则是 JavaScript.学好 JavaScript 对开发前端应用已经越来越重要.在开发复杂产 ...

  4. javascript常用代码大全

    http://caibaojian.com/288.html    原文链接 jquery选中radio //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...

  5. Javascript 常用函数【3】

    jquery选中radio //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_category").each(function() { if ($(t ...

  6. SQL Server调优系列基础篇(常用运算符总结)

    原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握 ...

  7. JavaScript instanceof 运算符深入剖析【转载】

    http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/   instanceof 运算符简介 在 JavaScript ...

  8. JavaScript中的typeof操作符用法实例

    在Web前端开发中,我们经常需要判断变量的数据类型.鉴于ECMAScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof就是负责提供这方便信息的操作符.   对一个值使用t ...

  9. JavaScript位运算符 2

    按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是“位”: 数值或字符在内存内都是被存储为0和 1的序列,每个0和1被称之为1个位,比如说10进制数据2在计算机内 ...

随机推荐

  1. mogodbshell中数组对象查询修改方法

    在mongodb中,存在如下数据 { "_id" : ObjectId("59af55078a8fc5e51ff425de"), "title&quo ...

  2. Netty源码分析--Channel注册(中)(六)

    接上一篇,我们继续看 不知道大家第一次看这段代码的时候有没有一脸懵逼,反正我是一脸懵,为什么这个if else 最终都是调用的register0方法,都是一样的. 其实这里就是为什么Netty是线程安 ...

  3. 开源系统监控工具Nagios、Zabbix和Open-Falcon的功能特性汇总及优缺点比较

    Nagios Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强 ...

  4. leadcode的Hot100系列--617. 合并二叉树

    合并,就是两个树的结构交集部分,数据相加,否则,取非空部分. 所以,这里相当于是对两棵树同时遍历: 如果两棵树节点都不为空,则数据相加, 否则,直接指针把不为空的节点复制过来. 注:这里没有申请内存, ...

  5. mysql计算日期之间相差的天数

    TO_DAYS(NOW()) - TO_DAYS(createTime) as dayFactor,

  6. Object.keys使用整理

    一.语法 Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 二.处理对象,返回可枚举的属性数组 let person = { n ...

  7. Unity《ATD》塔防RPG类3D游戏架构设计(二)

    目录 <ATD> 游戏模型 <ATD> 游戏逻辑 <ATD> UI/HUD/特效/音乐 结语 前篇:Unity<ATD>塔防RPG类3D游戏架构设计(一 ...

  8. [POI2008]枪战Maf题解

    问题 C: [POI2008]枪战Maf 时间限制: 1 Sec  内存限制: 256 MB 题目描述 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺 ...

  9. secureCRT背景颜色

    secureCRT是我们常用的linux远程登录软件,某些情况下我们安装的secureCRT工具可能默认背景颜色为白色,使用时很容易造成眼睛的疲劳,网上有些教程也只是修改当前登录窗口背景颜色,新的连接 ...

  10. ElasticStack学习(九):深入ElasticSearch搜索之词项、全文本、结构化搜索及相关性算分

    一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Ter ...