一、表达式

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运算符与表达式】的更多相关文章

  1. javascript运算符与表达式

    表达式 表达式是关键字.运算符.变量以及文字的组合,用来生成字符串.数字或对象.一个表达式可以完成计算.处理字符.调用函数.或者验证数据等操作. 表达式的值是表达式运算的结果,常量表达式的值就是常量本 ...

  2. javascript运算符和表达式

    1.表达式的概念 由运算符连接操作组成的式子,不管式子有多长,最终都是一个值. 2.算术运算符 加+ 减- 乘* 除/ 取模% 负数- 自增++ 自减-- 3.比较运算符 等于==  严格等于=== ...

  3. 03JavaScript运算符与表达式

    JavaScript运算符与表达式 2.5运算符与表达式 2.5.1赋值运算符 运算符 意义 运算符 意义 = x=5 /= x=x/y += x=x+y %= 求余赋值 -= x=x-y *= x= ...

  4. JavaScript学习笔记——运算符和表达式

    javascript运算符 一.运算符和操作数的组合就称为表达式. 二.javascript运算符 (一) 算术运算符 + - * / % var++ ++var var-- --var A. + ( ...

  5. JavaScript权威指南--表达式与运算符

    本章要点 表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果. 程序中的常量.变量名就是一种简单的表达式.复杂的表达式是由简单的表达式组成的,比如数组访问表达式. ...

  6. JavaScript语法详解:运算符和表达式

    本文首发于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 我们在上一篇文章里讲到了JS中变量的概念,本篇文章讲一下运算符和表达式. 比 ...

  7. javascript运算符语法概述

    × 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...

  8. javascript基础语法——表达式

    × 目录 [1]原始表达式 [2]复杂表达式 前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascr ...

  9. 六天玩转javascript:javascript变量与表达式(2)

    本系列内容为本人平时项目实践和参照MDN,MSDN,<javascript语言精粹>,<Effective Javascript>等资料,并且整理自己EverNote的日常积累 ...

随机推荐

  1. iOS 5个Xcode开发调试技巧

    转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro    1.Enable NSZombie Objects(开启僵尸对象) Enab ...

  2. Visual Studio Code 通过 Chrome插件Type Script断点调试Angular 2

    1. 下载Visual Studio Code (https://code.visualstudio.com/) 2. 安装插件Debugger for chrome 3. 确定tsconfig.js ...

  3. 快速学习Bash

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. Shell是Linux下经典的文本互动方式,而Bash是现在最常用的一种Shell.我在这里总结了Bash ...

  4. bzoj 2002 HNOI 2010 弹飞绵羊

    Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...

  5. Python学习(三):迭代器、生成器、装饰器、递归、算法、正则

    1.迭代器 迭代器是访问集合的一种方式,迭代对象从集合的第一个元素开始访问,直到元素被访问结束,迭代器只能往前不能后退,最大的优点是不要求事先准备好整个迭代过程中的元素,这个特点使得它特别适合用于遍历 ...

  6. Search 命令详解

    *查: ls : 查看文件等信息 /cat: 查看文件只显示最后一页. /cat > filename:创建新文件  /cat file1 file2 > file:合并文件  / -A ...

  7. Python 错误 UnicodeEncodeError: 'ascii' codec can't encode character 的解决方案

    一.使用workbook.get_sheet_by_name(name) 获取excel一个工作表时,发生字符集解析的错误. 网上搜集解决方案为添加以下三句: import sys reload(sy ...

  8. vim编辑器的使用技巧

    vim(vi)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是“visual interface”的缩 ...

  9. KMP 算法 C++

    #include <iostream>#include<string.h>#include<stdio.h>using namespace std; void Co ...

  10. DBA之路

    对于一个励志要成为DBA的人,虽然还有不足,梦想还是要有的,万一实现了呢.做一个关于DBA成长之路的相关目录,作为灯塔. --------------------------------------- ...