1、逻辑运算符

逻辑与:&&(and)

逻辑或:||(or)

逻辑非:!(not)

逻辑 AND 运算符(&&)

逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。

如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

  • 如果某个运算数是 null,返回 null。
  • 如果某个运算数是 NaN,返回 NaN。
  • 如果某个运算数是 undefined,返回undefined。

逻辑 OR 运算符(||)

与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:

  • 如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。
  • 如果两个运算数都是对象,返回第一个对象。
  • 如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
  • 如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
  • 如果某个运算数是 undefined,发生错误。

与逻辑 AND 运算符一样,逻辑 OR 运算也是简便运算(python中叫“短路运算”)。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。

与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值

2、比较运算符

等于 ( == )  、不等于( != ) 、 大于( > ) 、 小于( < ) 
大于等于(>=) 、小于等于(<=)

a、比较二者都是数字,则按数字大小比较。24<3  #true

b、比较二者都是数字,但是有一个是字符串类型,一个是整数类型,则都当数字比较;‘24’<3  #false

c、比较二者都是字符串(数字),则比较字符代码。比如:‘24’<'3'  #true

d、比较二者都是字符串(非数字),则依次比较字母的字符代码。比如:‘abc’<'acd' #true

e、比较二者字符串和数字。比如‘abc’<2  #因为字符串在转换数字的过程中会出现NaN,所以结果为false。

NaN参与的所有的运算都是false,除了!=

3、算术运算符

加(+)、 减(-)、 乘(*) 、除(/) 、余数(% )

乘(*)

在处理特殊值时,ECMAScript 中的乘法还有一些特殊行为:

  • 如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。
  • 如果某个运算数是 NaN,结果为 NaN。
  • Infinity 乘以 0,结果为 NaN。
  • Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity。
  • Infinity 乘以 Infinity,结果为 Infinity。

注释:如果运算数是数字,那么执行常规的乘法运算,即两个正数或两个负数为正数,两个运算数符号不同,结果为负数。

除(/)

与乘法运算符相似,在处理特殊值时,除法运算符也有一些特殊行为:

  • 如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。
  • 如果某个运算数是 NaN,结果为 NaN。
  • Infinity 被 Infinity 除,结果为 NaN。
  • Infinity 被任何数字除,结果为 Infinity。
  • 0 除一个任何非无穷大的数字,结果为 NaN。
  • Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity。

注释:如果运算数是数字,那么执行常规的除法运算,即两个正数或两个负数为正数,两个运算数符号不同,结果为负数。

取模(%)

与其他乘性运算符相似,对于特殊值,取模运算符也有特殊的行为:

  • 如果被除数是 Infinity,或除数是 0,结果为 NaN。
  • Infinity 被 Infinity 除,结果为 NaN。
  • 如果除数是无穷大的数,结果为被除数。
  • 如果被除数为 0,结果为 0。

注释:如果运算数是数字,那么执行常规的算术除法运算,返回除法运算得到的余数。

4、赋值运算符(=、==、===)

  • 乘法/赋值(*=)
  • 除法/赋值(/=)
  • 取模/赋值(%=)
  • 加法/赋值(+=)
  • 减法/赋值(-=)
  • 左移/赋值(<<=)
  • 有符号右移/赋值(>>=)
  • 无符号右移/赋值(>>>=)
a、赋值,var a=123;
b、=代表赋值,两个等号==表示判断值是否相等
  例如,x=1表示给x赋值为1
  if (x==1){...}程序表示当x与1相等时
  if(x==“on”){…}程序表示当x与“on”相等时
c、配合其他运算符形成的简化表达式
  例如i+=1相当于i=i+1,x&=y相当于x=x&y
d、JavaScript中的===,表示值相等,类型也必须相等。
												

JavaScript快速入门-ECMAScript运算符的更多相关文章

  1. JavaScript快速入门-ECMAScript基础语法

    一.JavaScript引入方式 1.行内式 <script> alert(123); </script> 2.外链式 <script src='custom.js'&g ...

  2. JavaScript快速入门-ECMAScript函数

    JavaScript函数(定义.参数.返回值.闭包.匿名函数) 一.函数定义 function functionName(arg0, arg1, ... argN) { statements } 函数 ...

  3. JavaScript快速入门-ECMAScript对象介绍

    一.概念介绍 在 ECMAScript 中,所有对象并非同等创建的.一般来说,可以创建并使用的对象有三种:本地对象.内置对象和宿主对象. 要理解这三种对象,先要理解宿主环境. 1.宿主环境 一般宿主环 ...

  4. JavaScript快速入门-ECMAScript语句

    JavaScript语句(if.for.for in.do...while.while.break.continue.switch) 一.if语句 if (condition) statement1 ...

  5. JavaScript快速入门-ECMAScript本地对象(String)

    一.String对象 String对象和python中的字符串一样,也有很多方法,这些方法大概分为以下种类: 1.索引和查找 1.charAt()   返回指定位置的字符. 2.charCodeAt( ...

  6. JavaScript快速入门-ECMAScript本地对象(Array)

    Array对象 Array对象和python里面的list对象一样,是用来存储多个对象值的对象,且方法和属性基本上类似. 一.属性 lenght 二.方法  1.concat()  用于连接两个或多个 ...

  7. JavaScript快速入门-ECMAScript本地对象(Date)

    JavaScript中的Date 对象用于处理日期和时间. var myDate=new Date()  #Date 对象会自动把当前日期和时间保存为其初始值. 一.Date对象的方法 方法 示例 n ...

  8. JavaScript快速入门-ECMAScript本地对象(Number)

    Number 对象是原始数值的包装对象. 创建一个Number对象:var myNum=new Number(value); 注意: 1.参数 value 是要创建的 Number 对象的数值,或是要 ...

  9. JavaScript快速入门-ECMAScript本地对象(RexExp)

    一.概述 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 正则表达式是由一个字符序列形成的搜索模式. 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容. 正则表达式 ...

随机推荐

  1. 【SPL标准库专题(3)】 Classes

    我把SPL分为四个部分:Iterator,Classes,Datastructures,Function:而其中classes是就是做一些类的介绍(Iterator与Datastructures相关的 ...

  2. Sql server 使用drop database 语句,无法删除正在使用的数据库的解决办法

    使用DROP DATABASE 删除数据库  显示“无法删除数据库 ,因为该数据库当前正在使用. 解决办法:在删除某一个数据库(下例中的“DB1”数据库)前,强制kill掉该数据库上的所有数据库连接. ...

  3. 转:ASP.NET前台代码绑定后台变量方法总结

    经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有<%= str%>和<%# str %>两种方式,这里简单总结一下.如有错误或异议之处,敬请各位指教. 一方 ...

  4. 解决:Windows 强制升级为8.1之后 Mysql连接不上, VisualSVN Server无服务

    1.mysql 连不上,只要将mysql重新加为windows服务即可.(我的是mysql-5.6.24-winx64 解压版)    方法:mysqld --install mysql --defa ...

  5. 项目管理心经——正确的使用Microsoft Project

    第一步:填写task items 第二步:定义个性化日历(Tools-->Change working time) 第二步:填写task duration 第三步:填写前置任务 第四步:自动生成 ...

  6. RxJS--Subject

    Subject是Observable(可观察对象)的子类,subject是多播的,允许将值多播给多个observer(观察者),普通observable是单播. 每一个Subject都是一个Obser ...

  7. 原生js返回顶部(匀速、由快到慢)

    在项目中我们经常有需求要求页面滚动到一定位置时出现返回顶部按钮,点击即返回顶部. 方法一: 锚点,这是最简单的.(a标签的href属性等于一直要到达位置元素的id值) 方法二: js直接给页面根节点设 ...

  8. JS播放声音

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS播放声音</tit ...

  9. 1 TCP/IP通信

    重点参考长链接http://blog.csdn.net/fengyuzhengfan/article/details/38830115 http://blog.csdn.net/Jsagacity/a ...

  10. 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...