深究js(四)——表达式

2024-03-15 16:48
文章标签 js 表达式 深究

本文主要是介绍深究js(四)——表达式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    表达式是JavaScript中的一个短语,JavaScript解释器会将其计算出一个结果。表达式中分为原始表达式和复杂表达式,原始表达式是表达式中最简单的表达式,而复杂表达式是通过操作符来连接多个原始表达式。下面将详细讲解比较常见的几个表达式。


一、原始表达式

    JavaScript的表达式中最简单的是原始表达式。原始表达式是表达式的最小单位,即不再包含其他表达式。在JavaScript中,原始表达式包含常量或直接量、关键字和变量。常见的直接量如数值和字符串,常见的关键字如true、false、null和this等等。


二、对象和数组的初始化表达式

    对象和数组的初始化表达式有时称做“对象直接量”和“数组直接量”,实际上是一个新创建的对象和数组。但是他们不像上面的直接量,他们不是原始表达式,因为它们所包含的成员或者元素都是子表达式。数组初始化表达式是通过一对方括号和其内由逗号隔开的列表构成的,初始化的结果是创建一个新的数组。数组的元素是逗号分隔的表达式的值。简单的如:

[]
[1, 2]
    数组也可以嵌套,如:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    在数组里面,数组直接量中的列表逗号之间的元素可以省略,省略的空位的默认值是underfined,如:

[1,,,5]
    数组直接量的元素列表结尾处可以留下单个逗号,这个时候不会创建一个新元素。对象的初始化表达式和数组的类似,只是由方括号改为花括号,并且每个子表达式都包含一个属性名和一个冒号作为前缀,冒号后面跟着值。如:

var a = {x : 'a',
    y : 'b'
}
    对象也可以嵌套,如:

var a = {a : {x : 1,
        y : 2
    },
    b : {x : 1,
        y : 2
    }
}
    对象里面的属性名可以是字符串,如:

var a = {'a' : {x : 1,
        y : 2
    },
    'b' : {x : 1,
        y : 2
    }
}

三、函数定义表达式

    函数定义表达式定义一个JavaScript函数,表达式的值是这个新定义的函数,从某种意义上讲,函数定义表达式可称为“函数直接量”。典型的函数定义表达式包含关键字function,后面有一个括号,括号内可填入多个参数名,然后由一对花括号来包裹着代码块,如:

function foo(a) {return a
}

四、属性访问表达式

    属性访问表达式得到的是一个对象属性或者数组元素的值,在JavaScript中,属性访问有两种方法,一种是用“.”,另一种是用“[]”,如:

var a = {x : 'a',
    y : 'b'
}
alert(a.x)
alert(a['x'])
    第一种方法需要知道该对象里面的某个属性的名称,第二种方法需要知道该对象里面某个属性的名称或者数组元素的索引。这两个方法看似相同,其实有用法上的不同。第一种方法只能用于对象里面的属性的名称要合法,即不能和保留字重名,属性名也不能包含空格和其他标点符号,而第二种方法可以适用这种情况下。当属性名是通过运算得出的值而不是固定值的时候,也是只能用第二种方法。

    无论使用哪种方式,在“.”和“[]”之前的表达式都先进行计算,如果结果是null或者underfined,则会抛出一个类型异常的错误;如果不是对象,则将其转换成对象。如果对象表达式后跟随着句点和标识符,则会查找由这个标识符所指定的属性值并返回;如果是跟随一对方括号,则将方括号内的值转换为字符串。但是无论哪种情况,如果命名属性不存在,则会返回underfined。


五、对象创建表达式

    对象创建表达式创建一个对象并调用一个构造函数初始化新对象的属性,这个方法和函数调用表达式相似,只不过多了个new。如:var a = new Object()。当这个表达式里不需要传人任何参数给构造函数的话,可以省略掉括号。如:var a = new Object


六、其他表达式

    除了上述的这几个表达式外,还有算术表达式、关系表达式、逻辑表达式和赋值表达式等等。算术表达式里的运算符基本上用到算术运算符,通过这些运算符来对操作数进行算术操作。

    关系表达式通过“<”、“>”和“=”等运算符用来测试两个操作数之间的关系,根据关系是否存在而返回真或假。

    逻辑表达式通过逻辑运算符(||、&&、!之类的)对操作数进行布尔算术运算,通常与关系表达式一起用,组成一个比较复杂的表达式。

    赋值表达式是通过等于号来给变量或者属性赋值。我会在后面一章详细的讲有关的运算符,在这里先做个铺垫。

这篇关于深究js(四)——表达式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/812618

相关文章

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringBoot @Scheduled Cron表达式使用方式

《SpringBoot@ScheduledCron表达式使用方式》:本文主要介绍SpringBoot@ScheduledCron表达式使用方式,具有很好的参考价值,希望对大家有所帮助,如有... 目录Cron 表达式详解1. 表达式格式‌2. 特殊字符解析3. 常用示例‌4. 重点规则5. 动态与复杂场景‌

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如