• 算数运算符

算数运算符有+、-、*、/、%、++、--、=、类似+=的运算符,其使用方式与编程语言(Java、C++、C#等)基本一样。给定 y=5,下面的表格解释了这些算术运算符:

运算符 描述 例子 结果
+ x=y+2 x=7
- x=y-2 x=3
* x=y*2 x=10
/ x=y/2 x=2.5
% 求余数 (保留整数) x=y%2 x=1
++ 累加 x=++y x=6
-- 递减 x=--y x=4

下面主要演示+运算符(字符串连接符):

 <script type="text/javascript">

      i=5+5;

      document.write("i的值是:"+i+"<br>");//

      i="5"+"5";

      document.write("i的值是:"+i+"<br>");//

      i=5+"5";

      document.write("i的值是:"+i+"<br>");//

 </script>
  • 位运算符

位运算符主要包括(~(非运算)、&(与运算)、|(或运算)、^(异或运算))。

 <script type="text/javascript">

    var iNum1 = 25;      //25 等于00000000000000000000000000011001

    var iNum2 = ~iNum1;// 转换为11111111111111111111111111100110

    document.write(iNum2+"<br>");//输出 "-26"

     var iResult = 25 & 3;

      /*
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
AND = 0000 0000 0000 0000 0000 0000 0000 0001
*/ document.write(iResult+"<br>");//输出 "1" var iResult = 25 | 3; /*
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
--------------------------------------------
OR = 0000 0000 0000 0000 0000 0000 0001 1011
*/ document.write(iResult+"<br>");//输出 "27" var iResult = 25 ^ 3; /*
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
XOR = 0000 0000 0000 0000 0000 0000 0001 1010
*/ document.write(iResult+"<br>");//输出 "26" </script>
  • Boolean运算(!(求反运算)、&&(与运算)、||(或运算))

对boolean值进行的运算,与编程语言的运算方式基本一致。

  • 关系运算(<、>、<=、>=、==、!=)
 <script type="text/javascript">

     var bool = 2<1;

      document.write(bool+"<br>");//输出false

     var bool = "a"<"b";//字母 a的字符代码是 97,字母b的字符代码是 98

      document.write(bool+"<br>");//输出ture

     var bool = "98"<97;//字符串 "98"将被转换成数字 98

      document.write(bool+"<br>");//输出false

     var bool = "a"<9999;//这样比较总是返回false,不管是<、>、<=、>=

      document.write(bool+"<br>");//输出false

 </script>
  • 等性运算符(==、===、!=、!==)

下表是一些特殊情况的值:

表达式

表达式

表达式

null==undefined

true

“NaN”==NaN

false

5==NaN

false

NaN==NaN

false

NaN!=NaN

true

false==0

true

true==1

true

true==2

false

undefined==0

false

null==0

fale

“5”==5

true

 

全等号由三个等号表示(===),只有在无需类型转换运算数就相等的情况下,才返回 true。

 <script type="text/javascript">

     var i = "66";

      var j = 66;

      document.write((i == j)+"<br>");//输出 "true"

      document.write((i === j)+"<br>");//输出 "false"

      document.write((i != j)+"<br>");//输出 "fale"

      document.write((i !== j)+"<br>");//输出 "true"

 </script>
  • 条件运算符

variable = boolean_expression ? true_value : false_value;条件运算符与编程语言的使用方式基本一致。

 <script type="text/javascript">

      var num1=25,num2=565;

      var max = (num1>num2) ? num1 : num2;//取最大值

      document.write(max+"<br>");//输出 "true"

 </script>
  • 其他运算符

a. 赋值运算符

每种主要的算术运算以及其他几个运算都有复合赋值运算符:

    • 乘法/赋值(*=)
    • 除法/赋值(/=)
    • 取模/赋值(%=)
    • 加法/赋值(+=)
    • 减法/赋值(-=)
    • 左移/赋值(<<=)
    • 有符号右移/赋值(>>=)
    • 无符号右移/赋值(>>>=)

给定 x=10y=5,下面的表格解释了赋值运算符:

运算符 例子 等价于 结果
= x=y   x=5
+= x+=y x=x+y x=15
-= x-=y x=x-y x=5
*= x*=y x=x*y x=50
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0

b.逗号运算符

用逗号运算符可以在一条语句中执行多个运算。

例如:var iNum1 = 1, iNum = 2, iNum3 = 3;

c.typeof运算符

typeof 运算符有一个参数,即要检查的变量或值,对变量或值调用 typeof 运算符将返回下列值之一:Undefined:如果变量是 Undefined 类型的;Boolean:如果变量是 Boolean 类型的;Number:如果变量是 Number 类型的;String:如果变量是 String 类型的;Object:如果变量是一种引用类型或 Null 类型的。

 <script type="text/javascript">

     var temp1="Jackie";

      var temp2;//Undefined类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。

      document.write((typeof temp1)+"<br>");//string

      document.write((typeof temp2)+"<br>");//undefined

      document.write((typeof 86)+"<br>");//number

      document.write((typeof null)+"<br>");//object

 </script>

 /*Undefined:Undefined类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。
null:另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。alert(null == undefined); //输出 "true"。
*/

d.delete运算符

delete 运算符删除对以前定义的对象属性或方法的引用。例如:

 <script type="text/javascript">

     var o = new Object;

      o.name = "Jackie";

      document.write(o.name+"<br>");   //输出 "Jackie"

     delete o.name;

      document.write(o.name+"<br>");   //输出 "undefined"

 </script>

e. instanceof运算符

能用 instanceof 运算符检查给定变量指向的对象的类型。例如:

 <script type="text/javascript">

     function Car()//使用原型方式(或混合的构造函数/原型方式)声明instanceof才有用
{} var car=new Car(); document.write((car instanceof Car)+"<br>");//输出 true </script>

使用instanceof 运算符会出现很多意想不到的结果,建议不用。使用原型方式(或混合的构造函数/原型方式)声明instanceof才有用

注:数据类型转换

String() 转换为字符串类型

Number()
转换为数字类型

Boolean()
转换为布尔类型

parseInt:将字符串转换为整数。从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseInt(“150
hi”)返回的值是:150,parseInt("hi")返回的值是:NaN。

parseFloat
:将字符串转换为浮点数。 从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi
15.5")返回的值是:NaN。

eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。

附上截图:

  • 运算符思维导图

JavaScript基础3——关于运算符的更多相关文章

  1. JavaScript基础:比较运算符——==与 ===;!=与!==

    var x=10, y="10", m=15 x==y;//返回true x===y;//返回false x!=y;//返回false x!==y;//返回true//同理cons ...

  2. JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符

    文章目录 1.强制类型转换Number 1.1 代码 1.2 测试结果 2.进制表示 2.1 代码 2.2 测试结果 3.强制类型转换为Boolea 3.1 代码 3.2 测试结果 4.运算符 4.1 ...

  3. JavaScript基础之运算符及全面的运算符优先级总结

    算数运算符: 加+,减—,乘*,除/,求余%,加加++,减减——, 加减乘除求余运算与数学上的用法完全一样. 不过,加号+还有连接字符串的作用,其他运算符还可以将字符串数字转换成数值型,参见JavaS ...

  4. JavaScript基础

    JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...

  5. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  6. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

  7. javascript基础01

    javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...

  8. javascript基础02

    javascript基础02 1.数据类型 数据类型的描述在上篇的扩展中有写到链接 由于ECMAScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要.这句话很重要. 如果以后再数据类型 ...

  9. javascript基础03

    javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...

随机推荐

  1. 了解Python列表的一些方法

    首先定义一个名字列表,然后使用print() BIF在屏幕上显示这个列表. 接下来,使用len() BIF得出列表中有多少个数据项,然后再访问并显示第2个数据项的值: 创建了列表之后,可以使用列表方法 ...

  2. EDI数据导入的注意事项&常见异常处理

    EXCEL表格注意事项: •      编码是0开头的,格式必须是文本,否则前面请加字母: •      注意全角半角,中文标点英文标点: •      编号文字类开头和结尾不要有空格,姓名中间也不要 ...

  3. tcp并发服务器(c20w)

    ** 原创文章,请勿转载 ** 并发服务器是一个老生常谈的话题,今天这里也写一个. 1. 目标: 同时在线连接20万(c20w). 开发语言:重要的事情说三遍,GOLANG, GOLANG, GOLA ...

  4. B2B电商系统开发建设的价格费用取决于哪些要素

    B2B电子商务系统平台建设开发怎么做?如何搭建一个电商系统网站平台?相信我们的企业商家在搭建电子商务系统的时候都会进行前期的系统策划,但是对于电子商务系统的构建绝大多数人都有一个误区,那就是对于电子商 ...

  5. Libevent 反应堆的初始化

    // 默认情况下new eventbase struct event_base * event_base_new(void) { struct event_base *base = NULL; //初 ...

  6. 前端测试框架Jest系列教程 -- Matchers(匹配器)

    写在前面: 匹配器(Matchers)是Jest中非常重要的一个概念,它可以提供很多种方式来让你去验证你所测试的返回值,本文重点介绍几种常用的Matcher,其他的可以通过官网api文档查看. 常用的 ...

  7. hdu 1151 Air Raid DAG最小边覆盖 最大二分匹配

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1151 题目大意: 城镇之间互相有边,但都是单向的,并且不会构成环,现在派伞兵降落去遍历城镇,问最少最少 ...

  8. Java数据结构和算法(七)——链表

    前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷.在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造 ...

  9. google guava cache缓存基本使用讲解

    代码地址:https://github.com/vikde/demo-guava-cache 一.简介 guava cache是google guava中的一个内存缓存模块,用于将数据缓存到JVM内存 ...

  10. PTA题---求两个有序序列中位数所体现的思想。

    ---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A​0​​,A​1​​, ...