javascript表达式和运算符详解


Posted in Javascript onFebruary 07, 2017

一、js表达式

定义:表达式是指能计算出值得任何可用程序单元。  ——wiki

 表达式是js一种短语,可是js解释器用来产生一个值。  ——js《权威指南》

1.原始表达式。

常量/直接量: 3.14/ "test" 等

关键字: null,this,true,false 等

变量: i,k,j 等

复合表达式:原始表达式和原始表达式之间用运算符连接可以组成一个复合表达式。

例如: 10 * 20 这就是一个复合表达式

2.(数组、对象的)初始化表达式。

例如:

[1,2]  等价于  new Array(1,2);

[1,,,2]  等价于  new Array(1,undefined,undefined,2);

{x:1,y:2} 等价于  var obj = new Object();

obj.x = 1;obj.y = 2;

3.函数表达式。

var fn = function(){};

或者:

(function(){ console.log("hello") })();

如果你不理解函数表达式后面还会有对应的介绍。

4.属性访问表达式。

var obj = {x:1}

我们可以通过  obj.x 或者 obj["x"]来访问它的属性,这一类表达式就称之为属性访问表达式。

5.调用表达式。

func();  来调用一个函数,这样的表达式就称之为调用表达式。

6.对象创建表达式。

例如:

new Func(1,2);我们可以传参,如果没有参数我们也可以new Object;创建一个空的对象这样也是合法的。

二、js运算符(一般用于表达式之间进行一些运算)。

1.按照运算符的操作数的数量:

 一元运算符: +num

 二元运算符: a + b

 三元运算符: c?a:b

2.按照功能区分:

赋值:x += 1 (或者-=,=等)

比较:a == b

算数:a - b

位: a | b

逻辑: exp1 && exp2 (或与非)

字符串:“a” + “b”

特殊: delete obj.x

下面我们对特殊运算符展开来讲:

条件运算符:var c = true?1:2    //c=1

逗号运算符:var val = (1,2,3)  // val = 3  从左到右依次计算,取最后的

delete运算符:就是删除对象上的属性。

--例如:

var obj = {x:1}
obj.x //1

delete obj.x

obj.x //undefined

从IE9开始,我们可以给对象设置configurable标签,当configurable:true时属性才可以被delete掉

例:

var obj = {}
Object.defineProperty(obj, 'x', {
configurable:false,
value:1
});
delete obj.x
obj.x //1

3. in 运算符。

 例:window.x = 1;那我们想知道window到底有没有x呢,我们就可以用 in

  ”x“ in window;    // true 

4. instanceof  和 typeof 我们在上一章详细的介绍过,如果忘记了可以去看一下。

5. new运算符

 比如说我们创建一个函数构造器:function Foo(){}

 Foo.prototype.x = 1;

 我们可以用new运算符就可以创建一个对象obj

 var obj = new Foo();

 这样obj.x;  //1 我们就可以从它的构造器上的prototype属性上拿到 1

 我们可以通过 obj.hasOwnProperty("x"); //false 来判断这个属性到底是对象上的还是对象的原型上的

 obj._proto_拿到它的原型,obj._proto_.hasOwnProperty("x");  //true 说明是原型上的

6.this 运算符。

this; //window(浏览器)

var obj = {

func:function(){
  return this;
 }
 }
obj.func(); // obj

this运算符也是比较特殊的这个我们后面会详细讲。

7.void运算符。

 void 0 //undefined
 void (0) //undefined

 void无论后面的操作数是多少,返回的都是undefined。

8.运算符的优先级,也是建议大家去看一下,更有助于大家读懂复杂的表达式。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript this 深入理解
Jul 30 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
实例讲解JS中数组Array的操作方法
May 09 Javascript
js中string转int把String类型转化成int类型
Aug 13 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
AngularJS实现的回到顶部指令功能实例
May 17 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
如何使用JavaScript实现栈与队列
Jun 24 Javascript
js实现简单页面全屏
Sep 17 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
微信小程序实现弹幕墙(祝福墙)
Nov 18 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 24 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
Feb 07 #Javascript
原生js和css实现图片轮播效果
Feb 07 #Javascript
bootstrap输入框组使用方法
Feb 07 #Javascript
angularjs使用directive实现分页组件的示例
Feb 07 #Javascript
Bootstrap下拉菜单样式
Feb 07 #Javascript
基于JavaScript实现购物车功能
Feb 07 #Javascript
js实现类bootstrap模态框动画
Feb 07 #Javascript
You might like
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
jQuery的学习步骤
2011/02/23 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
js实现简单模态框实例
2018/11/16 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
多个应用共存的Django配置方法
2018/05/30 Python
Python 忽略warning的输出方法
2018/10/18 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
如何设置Java的运行环境
2013/04/05 面试题
外贸业务员岗位职责
2013/11/24 职场文书
工作自我评价怎么写
2014/01/29 职场文书
马智宇结婚主持词
2014/04/01 职场文书
暑期教师培训方案
2014/06/07 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书