【编程向导】JavaScript-基础语法-语句和声明二期讲解

这篇具有很好参考价值的文章主要介绍了【编程向导】JavaScript-基础语法-语句和声明二期讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

switch 语句

switch 语句允许一个程序求一个表达式的值并且尝试去匹配表达式的值到一个 case 标签。如果匹配成功,这个程序执行相关的语句。

语法

switch (expression) {
   case value_1:
      statements_1
      [break;]
   case value_2:
      statements_2
      [break;]
   ...
   default:
      statements_def
      [break;]
}

工作原理:首先设置表达式 expression(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

参数

参数 说明
expression 用于比较的表达式
value_(n) expression 比较的值
statement(n) 执行语句

关键词

  • case:表示一种情况,如果 expression 等于 value ,就执行 statement
  • break:会使代码跳出 switch 语句,如果没有关键词 break,代码执行就会继续进入下一个 case
  • default:说明了表达式的结果不等于任何一种情况时的操作(事实上,它相对于 else 从句)。

示例

var myCar = 'Porsche'
switch (myCar) {
  case 'Nissan': alert("My car is Nissan");
    break;
  case 'Honda': alert("My car is Honda");
    break;
  case 'Porsche': alert("My car is Porsche");
    break;
  default: alert("I have no car");
}

return 语句

函数中的 return 语句用来返回函数调用后的返回值

语法

return expression;

说明

返回语句特点

  • return 语句只能出现在函数体内,如果不是会报语法错误
return 1;	// SyntaxError: Illegal return statement
  • 由于 JavaScript 可以自动插入分号,因此在 return 关键字和它后面的表达式之间不能有换行。
var test = function fn(){
    return
    2;
};
console.log(test()); // undefined
  • 一个函数中可以有多个 return 语句。
function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  } else {
    return iNum2 - iNum1;
  }
}

函数进程

  • 如果没有 return 语句,则函数调用仅仅依次执行函数体内的每一条语句直到函数结束,最后返回调用程序。这种情况下,调用表达式的结果是 undefined
var test = function fn(){}
console.log(test()); // undefined
  • 当执行到 return 语句时,函数终止执行,并返回 expression 的值给调用程序
var test = function fn(){
    return 2;
};
console.log(test()); // 2
  • return 语句经常作为函数内的最后一条语句出现,这是因为 return 语句可用来使函数提前返回。当 return 被执行时,函数立即返回而不再执行余下的语句
//并没有弹出1
var test = function fn(){
    return;
    alert(1);
};
console.log(test());//undefined
  • 并不是函数中 return 语句后的所有语句都不执行,finally 语句是例外,return 语句不会阻止 finally 子句的执行。
function testFinnally(){
    try{
        return 2;
    }catch(error){
        return 1;
    }finally{
        return 0;
    }
}
testFinnally(); // 0

返回值

  • 如果函数调用时在前面加上了 new 前缀,且返回值不是一个对象,则返回 this(该新对象)
function fn(){
    this.a = 2;
    return 1;
}
var test = new fn();
console.log(test);	// {a:2}
console.log(test.constructor);	// fn(){this.a = 2;return 1;}
  • 如果返回值是一个对象,则返回该对象。
function fn(){
    this.a = 2;
    return {a:1};
}
var test = new fn();
console.log(test);//{a:1}
console.log(test.constructor);//Object() { [native code] }
  • return 语句可以单独使用而不必带有表达式 expression,这样的话也会向调用程序返回 undefined
var test = function fn(){
    return;
};
console.log(test()); // undefined

总结

  • return 语句只能出现在函数体内
  • return 关键词和表达式之间不可换行
  • 一个函数中可以有多个 return 语句
  • 当执行 return 语句,函数终止执行,并返回表达式
  • return 语句不会阻止 finally 子句的执行
  • 调用构造函数,且返回值不是一个对象,则返回该新对象
  • 如果返回值是一个对象,则返回该对象
  • return 语句可单独使用而不必带有表达式,返回 undefined

if 语句

条件语句用于基于不同的条件来执行不同的动作。

在 JavaScript 中,我们可使用以下条件语句:

  • if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
  • if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
  • if…else if…else 语句 - 使用该语句来选择多个代码块之一来执行
  • switch 语句 - 使用该语句来选择多个代码块之一来执行

当一个逻辑条件为真,用 if 语句执行一个语句。当这个条件为假,使用可选择的 else 从句来执行这个语句。

单层条件判断

if (condition) {
  statement_1;
}
[else {
  statement_2;
}] //推荐使用严格的语句块模式,语句else可选

参数 说明
condition 为任何返回结果(若非 boolean 类型会被 ECMAScrpt 转换)为 truefalse 的表达式。如果条件式为 truestatement1 会被执行;否则 statement2 会被执行
statement1(2) 为任意语句(代码块),甚至可以将另一个 if 语句嵌套七种

多层条件判断

if (condition_1) {
  statement_1;
} [else if (condition_2) {
  statement_2;
}]
...
[else if (condition_n_1) {
  statement_n_1;
}] [else {
  statement_n;
}]

要执行多个语句,可以使用语句块 ({ … }) 来分组这些语句。

示例

不建议在条件表达式中

不建议在条件表达式中使用赋值操作,因为在快速查阅代码时容易看成等值比较。

请勿使用以下代码:

if ((x = y)) {
  // do something
}

如果你需要在表达式中使用赋值,通常在赋值语句前后额外添加一对括号。

if ((x = y)) {
  // do something
}

假值等效值

下面这些值将被计算出 false

  • false
  • undefined
  • null
  • 0
  • NaN
  • ""

当传递给条件语句时,所有其他值,包括所有对象会被计算为真。

请不要混淆原始的布尔值 truefalseBoolean 对象的真和假。

var b = new Boolean(false);

if (b)
// this condition evaluates to true

if (b == true)
// this condition evaluates to false

for 语句

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

语法

for (initialization; expression; post - loop - expression) {
  // statement
}

参数:

  • initialization 初始化表达式:表达式通常会初始化一个或多个循环计数器(变量),但语法上是允许一个任意复杂度的表达式,通常为一条声明赋值语句(只在循环开始之前执行一次)。
  • expression 循环条件判断:执行循环语句前的判断语句(通常为比较表达式),若为 true 则执行循环语句,否则则不执行循环语句,并跳出循环语句。
  • post-loop-expression 计数器变量更新:循环执行语句执行后执行的计数器变量更新表达式,更新循环计数器(变量),以进入下一次循环条件判断。
  • statement 循环执行语句:当循环条件满足时所执行的语句,执行完毕后执行计数器变量更新语句(利用 breakcontinue 语句除外)。

最佳实践

代码示例

var count = 10;

for (let i = 0; i < count; i++) {
  console.log(i);
}

从尾部向前循环

位数的整倍循环

// 五位数的数字
const num = 99999;

for (let i = 1; i < num; i *= 10) {
  // 被除数 num
  // 除数
  const divisor = i * 10;
  // 整除部分
  const divided = Math.floor(num / divisor);
  // 余数
  const remainder = num % divisor;

  console.log(i, divisor);
  //    i       divisor
  // 1. 1       10
  // 2. 10      100
  // 3. 100     1000
  // 4. 1000    10000
  // 5. 10000   100000
}

涉及多个变量的循环

for (let i = 0, j = 10; i < 10; i++, j--) {
  sum += i * j;
}

若在循环中一次迭代改变多个变量,则必须使用到逗号运算符,它将初始化表达式和自增表达式合并入一个表达式中以用于 for 循环。

可忽略的表达式

function tail(o) {
  // 返回链表的最后一个节点对象
  for (; o.next; o = o.netx /* empty */);
  return; // 根据判断 o.next 是不是真值来执行遍历
}

循环计数器(变量)中一般都是数字,也是最常用的,但不是必需的。for 循环中的三个表达式中的任何一个都可以忽略,但是两个分号必不可少。如果 expression ,那么这将是一个死循环,同样,和 while(true) 类似,死循环的另一种写法是 for(;;)文章来源地址https://www.toymoban.com/news/detail-842938.html

到了这里,关于【编程向导】JavaScript-基础语法-语句和声明二期讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【山河送书第二期】:《零基础学会Python编程(ChatGPT版》

    在过去的 5 年里,Python 已经 3 次获得 TIOBE 指数年度大奖,这得益于数据科学和人工智能领域的发展,使得 Python 变得异常流行,2017 年秋季开始出现增长的趋势,当时 Python 的份额仅为 3%,但去年年底已经增长到了 17%。然而,今年 Python 的份额回落至 13%,未能保持历史最高水

    2024年02月16日
    浏览(56)
  • HarmonyOS(二)—— 初识ArkTS开发语言(下)之ArkTS声明式语法和组件化基础

    通过前面ArkTS开发语言(上)之TypeScript入门以及ArkTS开发语言(中)之ArkTS的由来和演进俩文我们知道了ArkTS的由来以及演进,知道了ArkTS具备了声明式语法和组件化特性,今天,搭建一个可刷新的排行榜页面。在排行榜页面中,使用循环渲染控制语法来实现列表数据渲染,使

    2024年02月04日
    浏览(58)
  • MATLAB中CVX工具箱解决凸优化问题的基本知识——语法、变量声明、目标函数、约束条件、cvx编程错误及解决方法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本文是在最近学习MATLAB CVX工具箱解决凸优化问题时学到的一些知识点,分享出来供大家参考。 进行CVX编程时,会遇到各种各样意想不到又难以解决的报错问题,如果编程过程中遇到了很多cvx bug和错误,

    2024年02月08日
    浏览(51)
  • 基础SQL语法语句大全(一篇学会所有SQL语句)

       如:select distinct name from student;  如:select name,salary from employee where deptno = 3;  如:select * from employees where deptno = 3 and salary-5000;(两个条件同时满足) select * from employees where (deptno =3 or depton =1) and salary 5000;  如:select * from dept where loc like \\\'一楼%\\\';(表示查找loc字段中以一楼开

    2023年04月17日
    浏览(56)
  • 【python基础】if语句-语法格式

    视频讲解 https://www.bilibili.com/video/BV1Hw411S72w/ 简单理解if语句之后,我们的if语句语法格式有多种,选择使用哪种取决于要测试的条件数 最简单的if语句只有一个条件测试和一个代码块 其语法格式: 假设想要知道某人的年龄是否已成年,编写程序如下所示: 如果需要在条件测

    2024年02月08日
    浏览(42)
  • Verilog基础语法(13)之case语句

    case语句检查给定的表达式是否与列表中的其他表达式之一相匹配,并据此进行分支。它通常用于实现一个多路复用器。 如果要检查的条件很多,if-else结构可能不合适,因为它会综合成一个优先编码器而不是多路复用器。 一个Verilog case语句以case开始,以endcase结

    2024年02月14日
    浏览(38)
  • JavaScript基础——1.js基础语法

    js全称JavaScript,是一种轻量级的面向对象的 编程语言 ,既能用在浏览器中控制页面交互,也能用在服务器端作为网站后台(借助 Node.js),因此 JavaScript 是一种全栈式的编程语言。 JavaScript 与 HTML 和 CSS 共同构成了我们所看到的网页,其中: HTML 用来定义网页的内容,例如标

    2024年04月28日
    浏览(36)
  • JavaScript的基础语法学习

    let 声明的变量只在 let 命令所在的代码块内有效。 const 声明一个只读的常量,一旦声明,常量的值就不能改变。 在 ES6 之前,JavaScript 只有两种作用域: 全局变量 与 函数内的局部变量。 全局变量 在函数外声明的变量作用域是全局的: 全局变量在 JavaScript 程序的任何地方都

    2023年04月21日
    浏览(39)
  • 1 JavaScript的基础语法

    JS概念 javaScript是用于实现 用户交互 、 动态控制文档的外观和内容 ,动态控制浏览器操作、创建cookies等网页行为的跨平台、跨浏览器的由浏览器解释执行的客户端脚本语言; 特点 是基于对象的弱类型语言 弱类型语言:是一种弱类型定义的语言,某一个变量被定义类型,该变

    2024年02月06日
    浏览(44)
  • JavaScript (二) -- 基础语法

    目录 1.  输入输出语句 1.1  prompt()(对话框) : 1.2  alert() (弹出框) 1.3  console.log()(控制台输出) 1.4  document.write() (网页输出) 2.  变量与常量 3.  原始数据类型 4.  typeof()方法 5.  运算符 5.1  算数运算符 5.2  比较运算符 5.3  逻辑运算符 6.  流程控制语句(

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包