JavaScript基础语法之js表达式


Posted in Javascript onJune 07, 2016

本文将详细介绍javascript表达式,表达式分为原始表达式和复杂表达式。一般,关于javascript基础语法,人们听得比较多的术语是操作符和语句。但,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression)。

原始表达式(primary exression)

原始表达式是表达式的最小单位——它不再包含其他表达式。javascript中的原始表达式包括this关键字、标识符引用、字面量引用、数组初始化、对象初始化和分组表达式

PrimaryExpression : 
this 
Identifier 
Literal 
ArrayLiteral 
ObjectLiteral 
( Expression )

this关键字和标识符

this;//返回当前对象

i;//返回变量i的值

sum;//返回变量sum的值

字面量

字面量(literal),又翻译成直接量,就是程序中直接使用的数据值

Literal ::
NullLiteral
BooleanLiteral
NumericLiteral
StringLiteral 
RegularExpressionLiteral 
null;
undefined;
true;
false;
1;
'abc';
/pattern/;

数组和对象初始化

数组初始化和对象初始化实际上是一个以字面量的方式描述的初始化的过程。这两个初始化表达式有时称做"对象直接量"和"数组直接量"

[];
[1,2,3];
{};
{a:1};

分组表达式

分组表达式实际上就是括号,用于重写运算符的优先级

复杂表达式(MemberExpression)

复杂表达式是由原始表达式和操作符(operator)组合而成,包括属性访问表达式、对象创建表达式和函数表达式

MemberExpression : 
MemberExpression [ Expression ] 
MemberExpression . IdentifierName 
new MemberExpression Arguments
FunctionExpression

属性访问表达式

属性访问表达式运算可以得到一个对象属性或一个数组元素的值,javascript为属性访问定义了两种语法

MemberExpression . IdentifierName 
MemberExpression [ Expression ]

第一种写法是一个表达式后跟随一个句点和标识符。表达式指定对象,标识符则指定需要访问的属性的名称

第二种写法是使用方括号,方括号内是另外一个表达式(这种方法适用于对象和数组)。第二个表达式指定要访问的属性的名称或代表要访问数组元素的索引

var o = {x:1,y:{z:3}}; //对象字面量
var a = [o,4,[5,6]]; // 包含对象的数组字面量
o.x;//表达式o的x属性
o.y.z;//表达式o.y的z属性
o['x'];//对象o的x属性
a[1];//表达式a中索引为1的元素

不管使用哪种形式的属性访问表达式,在'.'和'['之前的表达式总是会首先计算

如果计算结果是null或undefined,表达式会抛出一个类型错误异常,因为这两个值都不能包含任意属性

如果计算结果不是对象,javascript会将其转换为对象

如果对象表达式后跟随句点和标识符,则会查找由这个标识符指定的属性值,并将其作为整个表达式的值返回

如果对象表达式后跟随一对方括号,则会计算方括号内的表达式的值并将其转换为字符串

不论哪种情况,如果命名的属性不存在,那么整个属性访问表达式的值就是undefined

对象创建表达式

对象创建表达式创建一个对象并调用一个函数初始化新对象的属性

new Object();
new Point(2,3);

如果一个对象创建表达式不需要传入任何参数给构造函数的话,那么这对空圆括号是可以省略的

new Object;

函数表达式

函数表达式分为函数定义表达式和函数调用表达式

函数定义表达式定义一个javascript函数,表达式的值是这个新定义的函数

一个典型的函数定义表达式包含关键字function,跟随其后的是一对圆括号,括号内是一个以逗号分割的列表,列表含有0个或多个标识符(参数名),然后再跟随一个由花括号包裹的

javascript代码段(函数体)

function square(x){
return x*x;
}

函数定义表达式同样可以包含函数的名字,函数也可以通过函数语句来定义,而不是函数表达式

var square = function(x){return x*x;}

函数调用表达式是一种调用或执行函数或方法的语法表示。如果这个表达式是一个属性访问表达式,那么这个调用称做方法调用

f(0);
Math.max(x,y,z);
a.sort();

以上所述是小编给大家介绍的JavaScript基础语法之js表达式的相关内容,希望对大家有所帮助。如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript脚本调试方法小结
Nov 24 Javascript
document.getElementById介绍
Sep 13 Javascript
js获取系统的根路径实现介绍
Sep 08 Javascript
使用javascript做的一个随机点名程序
Feb 13 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
vue2.0 axios前后端数据处理实例代码
Jun 30 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
使用Vue 实现滑动验证码功能
Jun 27 Javascript
vue - props 声明数组和对象操作
Jul 30 Javascript
JavaScript必看小技巧(必看)
Jun 07 #Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 #Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
Jun 07 #Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 #Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 #Javascript
jQuery原理系列-css选择器的简单实现
Jun 07 #Javascript
javascript实现抽奖程序的简单实例
Jun 07 #Javascript
You might like
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
python生成IP段的方法
2015/07/07 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
用 python 进行微信好友信息分析
2020/11/28 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
企业文化建设实施方案
2014/03/22 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
汽车转让协议书
2015/01/29 职场文书
党风廉正建设责任书
2015/01/29 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python