JavaScript 入门·JavaScript 具有全范围的运算符


Posted in Javascript onOctober 01, 2007

复合赋值运算符

运算符 符号
加法 +=
按位与 &=
按位或 |=
按位异或 ^=
除法 /=
左移
取模 %=
乘法 *=
右移 >>=
减法 -=
无符号右移 >>>=

要求

版本信息

条件(三目)运算符 (?:)

根据条件执行两个语句中的其中一个。

test ? 语句1 : 语句2

参数

test

任何 Boolean 表达式。

语句1

testtrue 时执行的语句。可以是复合语句。

语句2

testfalse 时执行的语句。可以是复合语句。

说明

?: 运算符是 if...else 语句的快捷方式。它通常被用作较大表达式的一部分,而在此处使用 if...else 语句是不协调的。例如:

var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");

在该例子中,如果是 6pm 以后,则创建一个包含 "Good evening." 的字符串。使用 if...else 语句的等效代码如下:

var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
   greeting += " evening.";
else
   greeting += " day.";

要求

版本 1

请参阅

if...else 语句 | 运算符优先级 | 运算符总结

delete 运算符

从对象中删除一个属性,或从数组中删除一个元素。

delete expression

expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。

说明

如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被删除,则返回 false

在所有其他情况下,返回 true

要求

版本 3

请参阅

运算符优先级 | 运算符总结

除法赋值运算符 (/=)

变量值除以表达式值,并将结果赋给该变量。

result /= expression

参数

result

任何数值变量。

expression

任何数值表达式。

说明

使用 /= 运算符和使用下面的语句是等效的:

result = result / expression

要求

版本 1

请参阅

/ 运算符 | 运算符优先级 | 运算符总结

除法运算符 (/)

将两个表达式的值相除。

result = number1 / number2

参数

result

任何数值变量。

number1

任何数值表达式。

number2

任何数值表达式。

要求

版本 1

请参阅

/= 运算符 | 运算符优先级 | 运算符总结

in 运算符

测试对象中是否存在该属性。

result = property in object

参数

result

必选项。任意变量。

property

必选项。相当于字符串表达式的一个表达式。

object

必选项。任意对象。

说明

in 操作检查对象中是否有名为 property 的属性。也可以检查对象的原型,以便知道该属性是否为原型链的一部分。

要求

版本 1

请参阅

运算符优先级 | 运算符总结

递增 (++) 和递减 (--) 运算符

变量值递增一或递减一。

语法 1

result = ++variable
result = --variable
result = variable++

result = variable--

语法 2

++variable
--variable
variable++

variable--

参数

result

任何变量。

variable

任何变量。

说明

递增和递减运算符,是修改存在变量中的值的快捷方式。包含其中一个这种运算符的表达式的值,依赖于该运算符是在变量前面还是在变量后面:

var j, k;
k = 2;
j = ++k;

因为递增发生在表达式被求值前,所以值 3 赋给了 j

和下面的例子对照:

var j, k;
k = 2;
j = k++;

在此,因为递增发生在表达式被求值后,所以值 2 赋给了 j。

JavaScript 具有全范围的运算符,包括算术、逻辑、位以及赋值运算符。此外还有其他一些运算符。

 计算 逻辑 位运算 赋值 杂项
 描述 符号 
 负值 -
逻辑非 !
按位取反 ~
赋值 =
删除 delete
 递增 ++
小于 <
按位左移 <<
运算赋值 oP= typeof
运算符 
 递减 --
大于 >
按位右移 >>
void 运算符 void
 乘法 *
小于等于 <=
无符号右移 >>>
 除法 /
大于等于 >=
按位与 &
 取模运算 %
等于 ==
按位异或 ^
 加法 +
不等于 !=
按位或 |
 减法 -
逻辑与 &&
  逻辑或 ||
  条件(三元运算符) ?:
  逗号 ,
  恒等 ===
  不恒等 !==

 运算符优先极
 JavaScript 中的运算符是按照一个特定的顺序来求值的。这个顺序就是运算符的优先级。下表按从最高到最低的优先级列出了这些运算符。处于同一行中的运算符按从左至右的顺序求值。

 运算符 描述
 . [] () 字段访问、数组下标以及函数调用
 ++ -- - ~ ! typeof new void delete 一元运算符、返回数据类型、对象创建、未定义值
 * / % 乘法、除法、取模
 + - + 加法、减法、字符串连接
 << >> >>> 移位
 < <= > >= 小于、小于等于、大于、大于等于 
 = !=   ===   !== 等于、不等于、恒等、不恒等
 & 按位与
 ^ 按位异或
 | 按位或
 && 逻辑与
 || 逻辑或
 ?: 条件
 = oP= 赋值、运算赋值
 , 多重求值

 圆括号可用来改变求值顺序。圆括号中的表达式应在其用于语句的其余部分之前全部被求值。

 具有较高优先级的运算符将在具有较低优先级的运算符之前被求值。例如:

 z = 78 * (96 + 3 + 45)

 在该表达式中有五个运算符: =, *, (), +, 以及 +。根据优先级,它们将按下面的顺序求值: (), *, +, +, =。

 首先对圆括号内的表达式求值:其中有两个加法运算符,它们具有相同的优先级:96 和 3 相加,然后再将它们的和与 45 相加,得到的结果为 144。
 然后是乘法运算: 78 和 144 相乘,得到结果为 11232。
 最后是赋值运算:将 11232 赋给 z。

Javascript 相关文章推荐
[原创]保存的js无法执行的解决办法
Feb 25 Javascript
JQuery的Ajax跨域请求原理概述及实例
Apr 26 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
Aug 07 Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
jQuery实现ichat在线客服插件
Dec 29 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
解决vue 路由变化页面数据不刷新的问题
Mar 13 Javascript
d3.js实现自定义多y轴折线图的示例代码
May 30 Javascript
JavaScript This指向问题详解
Nov 25 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 Javascript
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 #Javascript
javascript入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 #Javascript
javascript入门·对象属性方法大总结
Oct 01 #Javascript
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 #Javascript
[HTML/CSS/Javascript]WWTJS
Sep 25 #Javascript
奇妙的js
Sep 24 #Javascript
让getElementsByName适应IE和firefox的方法
Sep 24 #Javascript
You might like
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
js微信分享API
2020/10/11 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
Linux如何压缩可执行文件
2013/10/21 面试题
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
2014年教师节红领巾广播稿
2014/09/10 职场文书
2014年幼师工作总结
2014/11/22 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers