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知识点之"深入理解作用域链"的介绍
Apr 23 Javascript
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
两个select多选模式的选项相互移动(示例代码)
Jan 11 Javascript
javascript中attribute和property的区别详解
Jun 05 Javascript
详谈LABJS按需动态加载js文件
May 07 Javascript
jquery插件validation实现验证身份证号等
Jun 04 Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
AngularJS路由删除#符号解决的办法
Sep 28 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
vue.config.js中配置Vue的路径别名的方法
Feb 11 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 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缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
js event事件的传递与冒泡处理
2009/12/06 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
Python学习小技巧之列表项的排序
2017/05/20 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
浅谈Python3中print函数的换行
2020/08/05 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
高中毕业生自我鉴定范文
2013/09/26 职场文书
班级聚会策划书
2014/01/16 职场文书
教导处工作制度
2014/01/18 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
遗失说明具结保证书
2015/02/26 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
公历12个月名称的由来
2022/04/12 杂记