【JavaScript运算符与表达式】
一、表达式
1.原始表达式:2.14,“test”,true/false,null……复合表达式:10*20……
2.数组、对象的初始化表达式:new Array(1,2),[1,undefined,4],{x:1,y:2}=>var o = new Object();o.x=1;o.y=2;……
3.函数表达式:var fe = function(){}; (function(){console.log('hello');})()……
4.属性访问表达式:var o = {x:1}; o.x; o['x'];……
5.调用表达式:func()……
6.对象创建表达式:new Func(1,2); new Object()……
二、运算符
1、算术运算符
运算符 = 用于给 JavaScript 变量赋值。
算术运算符 + 用于把值加起来。
| 运算符 | + | - | * | / | % | ++ | -- |
| 描述 | 加法 | 减法 | 乘法 | 除法 | 取模(余数) | 自增 | 自减 |
例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title> <script type="text/javascript">
//算术运算符
var a=2,b=5;
document.write(a+b+"=7"+"<br />");
document.write(a-b+"=-3"+"<br />");
document.write(a*b+"=10"+"<br />");
document.write(a/b+"=0.4"+"<br />");
document.write(a%b+"=2"+"<br />");
document.write(a%-b+"=2"+"<br />");
document.write(-a%-b+"=-2"+"<br />");
document.write(-b%-a+"=-1"+"<br />");
//+还有连接的意思
document.write(a+'2b'+"=22b"+"<br />");
document.write(a+b+'2b'+"=72b"+"<br />");
document.write('3'+'8'+"=38"+"<br />");
document.write(a+b*'2sb'+"=NaN"+"<br />");//只有加号可以连接
//自增自减运算符(整型,浮点型,null支持、字符串不支持)
var z=2;
//alert(h++); //2
//alert(h); //3
//alert(++h); //4
//alert(--h); //3
x=3.123;
//alert(--x); //2.123
//alert(++x); //3.123
n=null;
//alert(++n); //1
//alert(--n); //0
s=undefined;
//alert(++s); //NaN
m='3b';
//alert(++m); //NaN
alert(--m); //NaN
</script>
</head>
<body>
</body>
</html>
2、逻辑运算符
| 运算符 | && | || | ! |
| 描述 | 逻辑与(and) | 逻辑或(or) | 逻辑非,取逻辑的反面 |
注意:这里会出现短路问题
表达式a && 表达式b : 计算表达式a(也可以是函数)的运算结果,
如果为 True, 执行表达式b(或函数),并返回b的结果;
如果为 False,返回a的结果;
简单的说就是 逻辑与运算符属于短路操作,如果有第一个操作数返回的是false,第二个不管是true还是false都返回false。
表达式a || 表达式b : 计算表达式a(也可以是函数)的运算结果,
如果为 Fasle, 执行表达式b(或函数),并返回b的结果;
如果为 True,返回a的结果;
简单的说就是 逻辑或运算符也属于短路操作,如果有第一个操作数返回的是true,第二个不管是true还是false都返回true。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//逻辑运算符的例子
//要求两个表达式为true,结果才是true
// alert(true && true);
// alert(true && false);
// alert(false && true);
// alert(false && false);
//如果第一个表达式为false,整个结果为false,就把第二个表达式短路了
var i=0,j=1;
if(i-- && j++){ //0->false &&
document.write('hello');
}else{
document.write('world');
}
//alert(i); //-1
//alert(j); //1
//逻辑或||
//两个表达中有一个为true,整个结果为true
// alert(true || true);
// alert(true || false);
// alert(false || true);
// alert(false || false);
//如果第一个表达式为true,整个结果为true,把第二个表达式短路了
i=1;
j=0;
if(i-- || ++j){
document.write('aa');
}else{
document.write('bb');
}
// alert(i); //0 // alert(j); //0
//逻辑非 !,取反的作用
// alert(!true);
// alert(!false);
</script>
</body>
</html>
3、三元运算符
(expr1) ? (expr2) : (expr3)
语法解释:在 expr1 求值为 TRUE 时整个表达式的值为 expr2,否则为 expr3。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/*
三元运算符的例子
if(exp){
exp为true的代码段;
}else{
exp为false的代码段;
}
exp1?exp2:exp3;
*/
if(3>1){
document.write('aa');
}else{
document.write('bb');
}
document.write('<br/>');
var res=3>1?'aa':'bb';
document.write(res);
document.write('<br/>');
var x=0/0;
var x=123;
res=isNaN(x)?0:x;
alert(res);
</script> </body>
</html>
4、比较运算符
| 运算符 | 描述 | 例子 | 运算结果 |
| == | 等于 | 2 == 3 | FALSE |
| === | 恒等于(值和类型都要做比较) | 2 === 2 2 === "2" |
TRUE FALSE |
| != | 不等于,也可写作<> | 2 == 3 | TRUE |
| > | 大于 | 2 > 3 | FALSE |
| < | 小于 | 2 < 3 | TRUE |
| >= | 大于等于 | 2 >=3 | FALSE |
| <= | 小于等于 | 2 <= 3 | TRUE |
// 比较运算符的例子
// alert(3>1);
// alert(3>=1);
// alert(3<=12);
// alert(3<2);
var res=1==true;
res=1=='1';
res=3=='3king';
res=0==null;//false
res=0!=null;
res=1===true;
res=1===true; //true //false
// alert(res);
// alert(NaN==NaN);//false
alert(undefined==undefined);
4、连接符
连接运算符 + 主要用于连接两个字符串或字符串变量。因此,在对字符串或字符串变量使用该运算符时,并不是对它们做加法计算。
//字符串连接符+
document.write('hello'+' yimentu '+'<br/>');
document.write(1+'king'+'<br/>');
var i=1,j=2,z=3;
document.write(''+i+j+z);
document.write('<br/>');
5、赋值运算符
赋值运算符 = 用于赋值运算,赋值运算符的作用在于把右边的值赋值给左边变量。
//赋值运算符的例子
var username='king';
document.write('用户名为:'+username+'<br/>');
//+= -= *= /= %= .=
var a=1;
a+=3;//a=a+3;
//alert(a);
a-=6;//-2
a*=8;//-16
(a/=4); //-4
a%=9;//a=a%9
//document.write(a);
document.write('<br/>');
var str1=' hello ',str2=' world ';
str2+=str1;//str2=str2+str1;
//document.write(str2);
【JavaScript运算符与表达式】的更多相关文章
- javascript运算符与表达式
表达式 表达式是关键字.运算符.变量以及文字的组合,用来生成字符串.数字或对象.一个表达式可以完成计算.处理字符.调用函数.或者验证数据等操作. 表达式的值是表达式运算的结果,常量表达式的值就是常量本 ...
- javascript运算符和表达式
1.表达式的概念 由运算符连接操作组成的式子,不管式子有多长,最终都是一个值. 2.算术运算符 加+ 减- 乘* 除/ 取模% 负数- 自增++ 自减-- 3.比较运算符 等于== 严格等于=== ...
- 03JavaScript运算符与表达式
JavaScript运算符与表达式 2.5运算符与表达式 2.5.1赋值运算符 运算符 意义 运算符 意义 = x=5 /= x=x/y += x=x+y %= 求余赋值 -= x=x-y *= x= ...
- JavaScript学习笔记——运算符和表达式
javascript运算符 一.运算符和操作数的组合就称为表达式. 二.javascript运算符 (一) 算术运算符 + - * / % var++ ++var var-- --var A. + ( ...
- JavaScript权威指南--表达式与运算符
本章要点 表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果. 程序中的常量.变量名就是一种简单的表达式.复杂的表达式是由简单的表达式组成的,比如数组访问表达式. ...
- JavaScript语法详解:运算符和表达式
本文首发于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 我们在上一篇文章里讲到了JS中变量的概念,本篇文章讲一下运算符和表达式. 比 ...
- javascript运算符语法概述
× 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...
- javascript基础语法——表达式
× 目录 [1]原始表达式 [2]复杂表达式 前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascr ...
- 六天玩转javascript:javascript变量与表达式(2)
本系列内容为本人平时项目实践和参照MDN,MSDN,<javascript语言精粹>,<Effective Javascript>等资料,并且整理自己EverNote的日常积累 ...
随机推荐
- ZKWeb网页框架2.0正式发布
2.0.0更新的内容有 更新框架要求 框架要求从 netstandard 1.6 升到 netstandard 2.0 框架要求从 netcoreapp1.1 升到 netcoreapp2.0 更新引 ...
- XMPP协议的基本理解
即时通讯技术简介 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.大多数常用的即时通讯发送程序都会提 ...
- H5+混合移动app应用开发——开篇
前言 经过2个多月的艰苦奋斗,app的第一个版本已经快完工了,期间遇到了太多的坑,作为一个喜欢分享的人,我当然不会吝啬分享这爬坑历程.不要问我有多坑,我会告诉你很多,很多..... 过去一直从事.ne ...
- MQ NameServer模块划分
上图是之前讨论确定的系统架构(后续内容会按照这个架构来叙述),其中: NameServer做Broker的服务发现,即客户端可以通过NameServer拿到Broker的信息 Broker汇报数据到N ...
- free 命令详解
作用:显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区 选项: -b 以byte为单位显示内存使用情况 -k 以kb 为单位显示内存使用情况 -m 以mb 为单位显示内存使用情 ...
- SpringMVC处理multipart请求.
一.简述 multipart格式的数据会将一个表单拆分为多个部分(part),每个部分对应一个输入域.在一般的表单输入域中,它所对应的部分中会放置文本型数据,但是如果上传文件的话,它所对应的部分可以是 ...
- application19事件 20多少步骤 具体20多少只有微软知道!!!
- Oracle学习笔记_06_CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex ' THEN '男' ' THEN '女' ELSE '其他' END --Case搜索函数 CASE ' THEN ...
- Effective Java 第三版——15. 使类和成员的可访问性最小化
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- java多线程(四)-自定义线程池
当我们使用 线程池的时候,可以使用 newCachedThreadPool()或者 newFixedThreadPool(int)等方法,其实我们深入到这些方法里面,就可以看到它们的是实现方式是这样的 ...