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 相关文章推荐
本地对象Array的原型扩展实现代码
Dec 04 Javascript
jquery预览图片实现鼠标放上去显示实际大小
Jan 16 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
微信小程序 input输入及动态设置按钮的实现
Oct 27 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 30 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
深入解读Node.js中的koa源码
Jun 17 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
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
Python self用法详解
2020/11/28 Python
护士自我鉴定范文
2013/10/06 职场文书
大学生应聘推荐信范文
2013/11/19 职场文书
50岁生日感言
2014/01/23 职场文书
《值日生》教学反思
2014/02/17 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
体育教师研修感悟
2015/11/18 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书