JS语句完全攻略

news2025/7/27 17:09:11

JavaScript 语言定义了 20 套(或个)语句命令,分别执行不同的操作。

以用途划分,JavaScript 语句可以分为:声明、分支控制、循环控制、流程控制异常处理和其他。

以结构划分,JavaScript 语句又可以分为单句和复句。

  • 单句:也称单行语句,由一个或多个关键字和表达式构成,用来完成简单的运算。
  • 复句:使用大括号包含一个或多个单句,用来设计代码块、控制流程等复杂操作。

定义语句

在 JavaScript 中,使用分号可以定义一条语句。例如:

  1. var a;

当语句单独一行显示时,可以省略分号,JavaScript 在解析时会自动补全分号。

只有当省略分号,JavaScript 无法合并上下行进行解析时,才会补加分号。例如:

  1. var a
  2. a = 1

合并为一行后等于:

  1. var a a = 1

JavaScript 无法理解这句话的意思,于是添加分号,定义为两条语句来解析。但是,对于下面 3 行代码:

  1. var b = ""
  2. var a = b
  3. (a = "abc").toUpperCase()

如果不添加分号,JavaScript 就会错误解析为如下两条语句:

  1. var b = "";
  2. var a = b(a = "abc").toUpperCase();

第二行结尾是变量 b,第三行开头是小括号,于是 JavaScript 就理解为 b() 函数的调用。

提示:

以 [、(、/、+、- 这 5 个符号开头的一行代码,很容易与上一行代码结合。例如:

  1. a
  2. [3].length //上下行合并解析为:a[3].length
  3. a
  4. /b/ //上下行合并解析为:a/b/
  5. a
  6. -1 //上下行合并解析为:a-1
  7. a
  8. +1 //上下行合并解析为:a+1

但是对于下面两种特例需要警惕。
1) return、break 和 continue 三个语句,如果分行显示,JavaScript 不会自动合并下一行进行解析。例如:

  1. return
  2. 1; //不会合并,直接解析为两条语句:return 和 1;

2) ++(递增)和 —(递减)运算符会与下一行变量主动合并解析,但不会与上一行变量合并解析。例如:

  1. var a = b = 1;
  2. a //结果为1
  3. ++
  4. b //结果为2

因此,当所有句子结束时,建议养成良好习惯,使用分号进行定义。只有这样,当代码被压缩时,才不至于出现各种异常。

单句

单句比较简单,一般占据一行,可以不执行任何任务,或者运算表达式,或者执行简短的命令等。单句主要包括:

  • 空语句
  • 表达式语句
  • 声明语句
  • 调试语句
  • 启用严格模式语句

复句

多个子句(Statement)放在一起就是一个语句段(Statement Block),如果使用大括号括起来,就成了复句(Statements)。单个句子被包括在大括号中也是复句。

复句又称语句块,语句块是一个独立运行的单元。在没有流程控制的情况下,块内语句要么都执行,要么都不执行。复句不需要使用分号与后面代码进行分隔,不过添加分号也不会出错。

示例

复句结构比较复杂,它可以包含子句,也可以包含复句,形成结构嵌套。复句内的子句可以通过缩排版式以增强代码的可读性。

  1. {
  2. //空复句
  3. }
  4. {
  5. console.log("单复句);
  6. }
  7. {
  8. console.log("外层复句");
  9. {
  10. console.log("内层复句");
  11. }
  12. }

空语句

空语句就是没有任何可执行的代码,是有一个分号;。空语句没有任何副作用,也不会执行任何操作,相当于一个占位符。

在循环结构中使用空语句可以设计假循环。下面代码在大括号内没有写入分号,但是 JavaScript 能够自动添加分号,定义一个空语句。

  1. for(var i = 0;i < 10;i++){ }

上面代码可以简写为:

  1. for(var i = 0;i < 10;i++);

上面语法容易引发错误,可以加上注释,或者复合使用。

  1. for(var i = 0;i < 10;i++)/*空语句*/;
  2. for(var i = 0;i < 10;i++){ ; }

表达式语句

任何表达式加上分号就是表达式语句。

示例1

下面是一行最简单的句子。只有一个直接量,也是最简单的表达式。

  1. true; //最简单的句子

示例2

下面是赋值语句,代码虽然很长,不过也只是一个表达式语句。

  1. o = new ((o == "String") ? String : (o == "Array") ? Array : (o ==
  2. "Number") ? Number : (o == "Math") ? Math : (o == "Date") ? Date : (o ==
  3. "Boolean") ? Boolean : (o == "RegExp") ? RegExp : Object);

赋值运算符右侧是一个多重条件运算,格式化显示如下:

  1. new ((o == "String") ? String :
  2. (o == "Array") ? Array :
  3. (o == "Number") ? Number :
  4. (o == "Math") ? Math :
  5. (o == "Date") ? Date :
  6. (o == "Boolean") ? Boolean :
  7. (o == "RegExp") ? RegExp :
  8. Object);

表达式与语句的区别:

  • 子句法角度分析,表达式是短句;语句是一个句子。
  • 从结构角度分析,表达式由操作数和运算符组成;语句由命令(关键字)和表达式组成。表达式之间可以通过空格分隔;而语句之间必须通过分号分隔。表达式可以包含子表达式,语句也可以包含子语句。
  • 从表现角度分析,表达式呈现静态性;而语句呈现动态性。
  • 从结果趋向分析,表达式必须返回一个值;而语句则是完成特定操作。

声明语句

声明语句包括三种:声明变量、声明函数和生命标签。使用 var 语句可以声明变量。

示例1

下面代码分别以不同形式声明多个变量并初始化(赋值)。

  1. var a = 0,b = true,c,d; //声明四个变量,并部分赋值

使用 function 语句可以声明函数。

示例2

下面代码使用 function 语句声明一个函数,函数名为 f。

  1. function f() {
  2. console.log("声明函数");
  3. }

调试语句

debugger 语句用于停止执行 JavaScript,同时如果调试函数可用,会调用调试函数。

debugger 语句可以放在代码的任何位置用以中止脚本执行,但不会关闭任何文件或清除任何变量,类似于在代码中设置断点。

如果调试工具不可用,则调试语句将无法工作。一般可以在浏览器中按 F12 键开启调试工具。

下面代码使用 debugger 语句中止执行 for 循环的每一次迭代。现在谷歌浏览器中开启调试工具,演示效果如图所示。

  1. for(i = 1;i < 5;i++){
  2. console.log("循环次数" + i);
  3. debugger;
  4. }

 

with语句

with 语句能够临时改变作用域。语法格式如下:

  1. with (object)
  2. statement

参数 object 表示一个对象,它临时定义了 with 结构体内所有变量的作用域,当执行完 with 结构后,又恢复变量的原始状态。

with 关键字后面必须跟随一个由小括号包含的对象,而不是表达式。这个对象能够临时划定一个范围,指定 with 结构体内的变量都以它作为作用域。

示例

对于下面语句。

  1. document.getElementByTagName("input") [0].value = 0;
  2. document.getElementByTagName("input") [1].value = 1;
  3. document.getElementByTagName("input") [2].value = 2;

可以把它转换为 with 结构来表示。

  1. with(o = document.getElementByTagName("input"){
  2. o[0].value = 0;
  3. o[1].value = 1;
  4. o[2].value = 3;
  5. }

with 结构可能会破坏变量的作用域,不推荐使用。建议使用变量引用方法。

  1. var o = document.getElementByTagName("input");
  2. o[0].value = 0;
  3. o[1].value = 1;
  4. o[2].value = 3;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】基础知识(语句,函数)

目录Python基础语法接上次的知识点补充顺序语句条件/分支语句语法格式空语句 pass循环语句while 循环For循环continue和break函数语法格式调用函数/使用函数函数参数函数返回值变量作用域函数执行过程链式调用嵌套调用函数递归参数默认值关键字参数写在前面&#x1f34e;&#…

全双工物联网远程控制门禁设计方案

远程控制物联网方案 (此方案成本250元~300元优点是远低于产家报价400&#xff5e;500,使用自家服务器扩展成本低) 组装后连线效果实物图 网关配置 工具见下面产品说明 通讯是TCP/IP协议,一定要配置好服务器地址与网关 通讯是TCP/IP协议,一定要配置好服务器地址与网关 通讯是TCP…

照片人像模糊怎么调?两分钟教会你

有时候我们在拍摄一些照片的时候&#xff0c;可能会因为一些特殊原因而导致照片中的人脸出现模糊的情况&#xff0c;从而使我们无法对照片进行浏览&#xff0c;这时最简单的方法就是借助一些软件来修复模糊的人脸照片&#xff0c;那你们知道如何利用这些软件进行操作吗&#xf…

机器视觉_HALCON_1.了解HALCON

文章目录HALCON概述1. 关于HALCON2. HALCON XL3. 了解HALCON3.1. 通用性说明3.2. 安装HALCON3.3. 继续了解HALCON的第一步4. 更多HALCON资料5. 结语HALCON概述 1. 关于HALCON HALCON是MVTec公司的一款软件产品。 它是一款风靡全球的、用于机器视觉的标准软件&#xff0c;并带…

React - Ant Design3.x版本安装使用,并按需引入和自定义主题

React - Ant Design3.x版本安装使用&#xff0c;并按需引入和自定义主题一. 安装使用 antd二&#xff0e;antd 高级配置安装 react-app-rewired&#xff0c;对 create-react-app 的默认配置进行自定义安装 babel-plugin-import &#xff0c;按需加载组件代码和样式自定义主题An…

ssh外网访问内网服务器

现在有这样一个情况&#xff0c;实验室有自己的服务器&#xff08;内网&#xff09;&#xff0c;并且有相关老师进行维护&#xff08;公网&#xff09;&#xff0c;我们可以在内网用内网ip访问服务器&#xff0c;如果我们在家里只能通过公网进行登录。但是我在实验室有一个小服…

Python学习基础笔记十一——编码

1、Python编码解码&#xff1a; 文件转换为二进制&#xff0c;就是编码。 二进制转换为文本&#xff0c;就是解码。 2、ASCII编码&#xff1a; 字符‘a’在ASCII码表中的对应的数据就是97&#xff0c;二进制为1100001。 # 查看‘a’的ASCII编码 print(ord(a))# 转换为二进制…

04.OpenWrt-连接有线网络

04.OpenWrt-连接有线网络 路由器作为重要的网络设备不光可以连接网络,也可是通过有线或者无线的方式给其他设备连接网络. 4.1 网络的基础知识 4.1.1 常用的网络设备 光调制解调器:俗称 光猫 .现在使用的基本都是光纤入户,光纤中传递的是光信号,进过光猫的转换为电信号.安装…

Golang Channel 实战技巧和说明

文章目录Golang Channel 实战技巧和说明Channel 的一些实战说明关于 close Channelclose Channel 的一些说明v, ok : <-ch 判断是否 close优雅判断是否 close 的封装for-range 读取 Channel 数据select 读写 Channel 数据Channel 的读写超时机制【select timeout】TryEnque…

180H_FPGA时钟结构

PLL 端口信号解释 信号名含义PLL_PWDpower downpll_rst复位PLLclkin_dsel0:clkin1作为参考时钟;1:clkin2作为参考时钟clkfb外部反馈时钟输入dyn_idiv[5:0]动态 input divider&#xff08;输入分频器&#xff09; 分频系数 0&#xff1a;64分频&#xff1b;1:63分频&#xff1b…

HTML+CSS-项目:学成在线

项目&#xff1a;学成在线 Date: September 9, 2022 Summary: 创建根目录、创建网页布局 0. 项目预览&#xff1a; 1. 创建根目录&#xff1a; 目标&#xff1a;创建项目根目录 根目录&#xff1a;网站的第一级文件夹 根目录&#xff1a; 图片文件夹: images样式文件夹: C…

redis 的java客户端 基础(一)

目录 一、redis的客户端语言支持 二、Jedis快速入门 2.1 Jedis连接池 2.1.1 创建Jedis的连接池 三、SpringDataRedis 3.1 快速入门SpringDataRedis 一、redis的客户端语言支持 在Redis官网中提供了各种语言的客户端&#xff0c;地址&#xff1a;https://redis.io/resources/…

[oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话

换行字符 回忆上次内容 struct包可以让我们使用封包格式 把数字封包到字节里 pack函数负责封包unpack函数负责解封 我们通过封到不同的字节状态 遍历了一次ascii码还是有那片黑色的区域 好像是一片黑暗森林&#xff01;那里面到底有些什么秘密&#xff1f;&#x1f914; 我们这…

2022大厂面试秘籍Java岗:中间件+算法+HTTP+线程+虚拟机+分布式

前言 很多朋友对面试不够了解&#xff0c;不知道如何准备&#xff0c;对面试环节的设置以及目的不够了解&#xff0c;因此成功率不高。通常情况下校招生面试的成功率低于1%&#xff0c;而社招的面试成功率也低于5%&#xff0c;所以对于候选人一定要知道设立面试的初衷以及每个…

CSS 选择器

目录 1、导语 2、css基本选择器 1&#xff09;、标签选择器 2&#xff09;类选择器 3&#xff09;ID选择器 4&#xff09;通配符选择器 3、css组合选择器 1&#xff09;标记类别选择器&#xff08;交集选择器&#xff09; 2&#xff09;后代选择器 3&#xff09;子选择器 4…

[足式机器人]Part3机构运动微分几何学分析与综合Ch02-2 平面机构离散运动鞍点综合——【读书笔记】

本文仅供学习使用 本文参考&#xff1a; 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch02-2 平面机构离散运动鞍点综合2.3 鞍点圆2.3.1 鞍圆与二副连架杆R-R2.3.2 鞍圆误差2.3.3 四位置鞍圆2.3.4 五位置鞍圆2.3.5 多位置鞍圆2.3 鞍点圆 平面连杆机构中…

浅谈JVM(面试常考题)

文章目录JVM简介JVM 执行流程JVM运行时数据区(内存布局)程序计数器(线程私有)Java虚拟机栈(线程私有)堆(线程共享)方法区(线程共享)小结JVM类加载类加载的具体过程LoadingLinkingVerificationPreparationResolutionInitialization类加载的执行顺序双亲委派模型JVM中的垃圾回收机…

最新手工整理31省市自治区180+指标面板数据-各省份邮电和运输指标汇总(2002-2020)

1、数据来源&#xff1a;国家统计局 2、时间跨度&#xff1a;2002-2020 3、时间频率&#xff1a;年度 4、区域范围&#xff1a;31个省市⾃治区 5、邮电指标&#xff1a; 包裹数(万件)报刊期发数(万份)汇票业务(万笔)集邮业务量(万枚)固定本地电话通话时长(万分钟)固定长途…

流媒体技术基础-流媒体编码与协议

一、流媒体传输协议 1.实时传输协议RTP 针对多媒体数据流的一种传输协议&#xff0c;建立在UDP协议上&#xff0c;属于传输层协议。 定义互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统&#xff08;配合RTCP协议&#xff09;、视频会议和视频电话系统&…

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题二python代码实现(更新完毕)

更新信息 2022-11-24 10:00 更新问题1和问题2 思路 2022-11-24 23:20 更新问题一代码 2022-11-25 11:00 更新问题二代码 相关链接 【2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题一python代码实现】 【2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题二python代…