js基础-语句

2023-11-02

语句

表达式在JavaScript中是短语,而语句( statement )就是JavaScript整句或命令。

JavaScript语句是以分号结束。

默认情况下,JavaScript解释器依照语句的编写顺序依次执行。

1. 表达式语句

(1) 复合语句

我们可以用花括号将多条语句括起来,这就是复合语句(语句块)。

{ 
var a = 1;
var b = 1;
}

(2)空语句

分号前面可以没有任何内容,JavaScript引擎将其视为空语句。

; 

当你使用空语句时,最好加上注释。

2. 声明语句

varfunction 都是声明语句,它们声明或定义变量或函数。

var 语句用来声明一个或多个变量。

var a = 1; 
var a =1 ,b=2;

注意:如果 var 语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined。

关键字 function 是用来定义函数的。

function a(){} 

3、条件语句

(1)if语句

条件语句是通过判断指定表达式的值来决定执行还是跳过某些语句。

if(expression) { 
statement;
}

其中的expression(条件)可以是任意表达式,而且对这个表达式求值的结果不一定是布尔值。ECMAScript会自动调用Boolean()转换函数将这个表达式的结果转换为一个布尔值。如果对expression求值为true时,则执行statement;如果为false,则跳过。

注意:JavaScript语法规定,if关键字和带圆括号的表达式之后必须跟随一条语句,但可以使用语句块将多条语句合并在一起。

if..else..

if(expression) { 
statement1;
} else {
statement2;
}

在JavaScript中,if、else匹配规则是:else总是和就近的if语句匹配。

推荐使用代码块,即使只有一行代码。

(2)switch

switch(expression) { 
case "": statement ;break;
case "": statement1;break;
....
default: statements; break;
}

如果表达式等于这个值,则执行后面的语句;break关键字会导致代码执行流跳出switch语句。如果省略break,就会导致执行完当前case后,继续执行下一个case;当 switch 表达式与所有 case 表达式都不匹配时,则执行 default

当然,如果你有两个值是执行同一段代码的,可以这样:

switch(expression) { 
case "":
case "":
statement;break;
.....
}

注意:由于对每个case的匹配操作实际是“===”全等运算符比较,而不是“==”相等运算符比较,因此,表达式和case的匹配并不会做任何类型转换。比如字符串”10”不等于数值10.

(3)三元运算符 ? :

JavaScript还有一个三元运算符(即该运算符需要三个运算子)?:,也可以用于逻辑判断。

(contidion) ? expr1 : expr2 

上面代码中,如果contidion为true,则返回expr1的值,否则返回expr2的值。

4、循环语句

循环语句就是程序路径的一个回路,可以让一部分代码重复执行。

(1)while语句

while 语句属于前测试循环语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值。因此,循环体内的代码有可能永远不会被执行。

语法:

while(expression) { 
statement
}

当expression计算为true时,则执行statement。

注意:使用 while(true) 则会创建一个死循环。

(2)do…while语句

do…while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。也可以说,在对条件表达式求值之前,循环体内的代码至少会被执行一次。

语法:

do { 
statement
} while(expression);

do…while循环和while循环非常相似,但是,do…while的循环体至少会执行一次。

(3)for语句

for 语句也是一种前测试循环语句,但它具有在执行循环之前初始化变量和定义循环后要执行的代码的能力

语法:

for(initialize ; test ; increment) { 
statement
}

initialize、test、increment三个表达式之间用分号隔开,分别负责初始化操作、循环条件判断和计数器变量的更新。

只有test返回true才会进入for循环,因此也有可能不会执行循环体内的代码。

initialize表达式只在循环开始之前执行一次。

注意:即使是循环内部定义的变量,在循环外部也可以访问到它。

for语句中的初始化表达式、控制表达式和循环后表达式都是可选的,如果都省略,就会创建一个无限循环:

for(;;){ 
//无限循环
}

注意:由于JavaScript没有块级作用域,所以在for里面定义的变量都是全局变量。(ES6会有块级作用域)

(4)for…in语句

for..in 语句是一种精准的迭代语句,可以用来枚举对象的属性。

语法:

for(property in object) { 
statement
}

例子:

var o = { name: 'tg', age: 18}; 
for(var v in o) {
console.log(v + ': ' + o[v]);
}

注意:ECMAScript对象的属性是没有顺序的,因此通过for…in循环输出的属性名的顺序是不可预测的。

5. 跳转语句

break 语句是强制退出循环,然后执行循环后面的语句。
continue 语句是终止本次循环的执行并开始下一次循环的执行。

JavaScript中的语句可以命名或带有标签(label), breakcontinue 可以跳转到任意位置,也是在JavaScript中唯一可以使用标签语句的语句。

6. 标签语句

语句是可以添加标签的,标签是由语句前的标识符和冒号组成:

label : statement 

label语句定义的标签一般由break或continue语句引用。加标签的语句一般要与for等循环语句配合使用。

var num = 0; 
tip : for(var i = 0; i < 10; i++){
num += i;
console.log(i); // 轮流输出:0、1、2、3、4、5
if(i ==5) {
break tip;
}
}
console.log(num); // 15

当执行到i=5时,会跳出循环,也就是tip对应的层,然后执行其下方的代码。

7. 其他语句

(1)return语句

return 语句只能在函数体内出现,否则报错。当执行到 return 语句时,函数终止执行, return 后面的代码永远不会被执行。

(2)throw语句

异常是指当发生了某种异常情况或错误时产生的一个信号。

throw expression 
try..catch...finally语句
try{
}catch(e){
}finally{
}

(3)with语句

with 语句用于临时扩展作用域链,也就是将代码的作用域设置到一个特定的对象中。

with(object){ 
statement
}

将object添加到作用域链的头部,然后执行statement,最后把作用域链恢复到原生状态。

var o = { 
name: 'tg',
age: 24
};
with(o){
console.log('name:' + name); // name:tg
console.log('age:' + age); // age:24
}

with里面的name相当于o.name

注意 :在严格模式中是禁止使用with语句的。 《JavaScript高级程序设计》中说到 with语句 性能非常差,不推荐使用

(4)debugger语句

debugger语句用来产生一个断点(breakpoint),JavaScript代码的执行会停止在断点的位置。一般用来调试代码。

(5)”use strict”

使用”use strict”指令的目的是说明后续的代码将会解析成严格代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js基础-语句 的相关文章

随机推荐

  • 多个git合并,并保留log历史记录

    面临的需求是 将多个git仓库作为一个单独目录 整合到一个新的git仓库中 并且保留历史记录 1 新建一个summary仓库 新建一个summary仓库 用于整合一系列git仓库 git clone
  • openwrt编译x86固件

    x86 openwrt固件编译 2017年十月四日我在珠海 中秋之际写下这篇文章 祝各位看官花好月圆 有情人终成眷属 最近一直在玩Openwrt 以前上学的时候接触一丁丁 但是只限于烧写别人编译好的固件 这次要真刀实干了 学习了一周各种百度
  • 专访用自己姓氏命名编译器YC++的创始人

    在CSDN的论坛里看到了这样的一条帖子 请使用中国人开发的C C 编译器 网页浏览器内核 并提供了该软件的下载地址 从大家的跟帖来看很多人 是很有兴趣的 但是作者并没有留下太多的介绍说明类的文字 为了一探究竟 我拨通了作者留下的电话并完成了
  • Ubuntu 16.04设置root用户登录图形界面

    Ubuntu默认的是root用户不能登录图形界面的 只能以其他用户登录图形界面 这样就很麻烦 因为权限的问题 不能随意复制删除文件 用gedit编辑文件时经常不能保存 只能用vim去编辑 下面以Ubuntu 16 04版为例说明 1 打开终
  • STM32实战项目:HAL_RCC_OscConfig中程序卡死问题解决办法

    STM32实战项目经验 HAL RCC OscConfig中程序卡死问题解决办法 工程环境 STM32CUBEIDE STM32F405VG 现象复现 项目中一个是IAP程序 另一个是APP程序 两个程序都是使用STM32CubeIDE生成
  • 搜索题目综合

    BFS 1 小X学游泳 题解 枚举每一个点作为连通块的起点 求得连通块大小 然后打擂台求最值即可 参考代码 include
  • element-ui和element-plus的自定义列表格用法

    前言 element plus 这个 UI 组件库 虽说基本和 vue2 element ui 差不多 但还是有点区别 以至于按emenent ui的写法来写会发现报错 下面我将讲解一下element ui和element plus的自定义
  • 一文彻底讲清Linux tty子系统架构及编程实例

    摘要 本文详细解读了linux系统下的tty子系统的深层次原理和架构 并参考了LDD3中的代码实例讲述了无硬件下实现一个简单的tty设备驱动模块的编写 对了解tty子系统及下部串口驱动模块的学习有较好的参考价值 1 tty设备简介 tty一
  • 抖音广告IOS/Android接入笔记:

    一 抖音广告接入 Android接入 注意 内容输出对接中已包含广告对接 建议使用广告4 6 0 7版本 如使用其他广告版本建议做好自测 2600及以上版本 需要使用如下Maven命令 火山引擎maven仓库地址 maven url htt
  • 红帽系统服务器格式化,Redhat Linux默认的文件系统是什么格式?

    满意答案 现在Redhat Linux默认的文件系统格式是ext4 可以通过如下多种方法查询文件系统类型 1 mount mount dev sda1 on type ext4 rw errors remount ro user xattr
  • 第五周总结

    已知字符串 this is a test of java 按要求执行以下操作 统计该字符串中字母s出现的次数 统计该字符串中子串 is 出现的次数 统计该字符串中单词 is 出现的次数 实现该字符串的倒序输出 public class da
  • MySQL之常见的CRUD面试题【下】

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于MySQL数据库的相关操作吧 目录 Welcome Huihui s Code World 导读 一 MySQL常见的内置函数 1 字符串函数 2 数值函数
  • 测绘地理信息标准规范汇总下载

    经常 我们要下载一些相关的规范来指导作业 每次都在网上找 这里一次性全部整理好 欢迎大家来下载 打包下载 链接 百度网盘地址 分页下载 一 国家测绘局制定的测绘地理信息国家标准 专题地图信息分类与代码 GBT 18317 2001 被GBT
  • 4-C语言-冒泡排序以及数组名的使用

    问题 给数组进行从小到大的升序排序 思想 一般给冒泡排序 进行封装 写成一个函数 这就需要让数组传进去 而传数组 实际传的数组的首元素的地址 因此如果在冒泡内部 进行数组数据个数的计算 用sizeof a sizeof a 0 实际上为1
  • Braft--工作日记

    建议在阅读本笔记之前先观看此网址的动画Raft 分布式共识算法动画演示 首先bRaft是实现分布式共识的协议 一个节点可以处于三种状态 Follower跟随者状态 Candidate候选者状态 Leader领导者状态 而所有的节点都以跟随者
  • 计算机毕业设计SSM大型零售电商平台——购物车管理子系统【附源码数据库】

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • softmax函数的定义及求导

    本文中 x0 x1 xm x 0 x 1 x m 代表一个向量 也就是一个 m m行1列的矩阵 在监督式的深度学习中 输入通常是一个向量 用xx表示 输出 y y则可以分为多种情况 标量 yy表示输入 x x属于某一类别的概率 向量 此时输
  • AutoDev 1.1.3 登场,个性化 AI 辅助:私有化大模型、自主设计 prompt、定义独特规则...

    在过去的半个月里 我们为开源辅助编程工具 AutoDev 添加了更强大的自定义能力 现在你可以 使用自己部署的开源大模型 自己配置 Intellij IDEA 中的行为 自定义开发过程中的规范 当然了 如果您自身拥有开发能力的话 建议您自己
  • 绕过身份检测,破解Android SU

    http www 61ic com Mobile Android 201207 43661 html 由于Android底层是Linux内核 故了解了Linux的权限管理后就可以知道ROOT的原理 具体可以访问 Android系统权限和ro
  • js基础-语句

    语句 表达式在JavaScript中是短语 而语句 statement 就是JavaScript整句或命令 JavaScript语句是以分号结束 默认情况下 JavaScript解释器依照语句的编写顺序依次执行 1 表达式语句 1 复合语句