【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的日常积累 ...
随机推荐
- iOS 5个Xcode开发调试技巧
转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro 1.Enable NSZombie Objects(开启僵尸对象) Enab ...
- Visual Studio Code 通过 Chrome插件Type Script断点调试Angular 2
1. 下载Visual Studio Code (https://code.visualstudio.com/) 2. 安装插件Debugger for chrome 3. 确定tsconfig.js ...
- 快速学习Bash
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. Shell是Linux下经典的文本互动方式,而Bash是现在最常用的一种Shell.我在这里总结了Bash ...
- bzoj 2002 HNOI 2010 弹飞绵羊
Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...
- Python学习(三):迭代器、生成器、装饰器、递归、算法、正则
1.迭代器 迭代器是访问集合的一种方式,迭代对象从集合的第一个元素开始访问,直到元素被访问结束,迭代器只能往前不能后退,最大的优点是不要求事先准备好整个迭代过程中的元素,这个特点使得它特别适合用于遍历 ...
- Search 命令详解
*查: ls : 查看文件等信息 /cat: 查看文件只显示最后一页. /cat > filename:创建新文件 /cat file1 file2 > file:合并文件 / -A ...
- Python 错误 UnicodeEncodeError: 'ascii' codec can't encode character 的解决方案
一.使用workbook.get_sheet_by_name(name) 获取excel一个工作表时,发生字符集解析的错误. 网上搜集解决方案为添加以下三句: import sys reload(sy ...
- vim编辑器的使用技巧
vim(vi)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...
- KMP 算法 C++
#include <iostream>#include<string.h>#include<stdio.h>using namespace std; void Co ...
- DBA之路
对于一个励志要成为DBA的人,虽然还有不足,梦想还是要有的,万一实现了呢.做一个关于DBA成长之路的相关目录,作为灯塔. --------------------------------------- ...