热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript流程控制:分支与循环结构实例解析

常用数据类型数组、对象、函数都是引用数据类型 其他的都是原始数据类型下面是详解数据类型number数值型string字符串Boolean布尔类型undefined未定义NULL空类型array数组ob

常用数据类型

数组、对象、函数都是引用数据类型 其他的都是原始数据类型下面是详解



































数据类型
number数值型
string字符串
Boolean布尔类型
undefined未定义
NULL空类型
array数组
object对象
function函数

l5ue7zcc.png

  1. //常用数据类型
  2. //原始数据类型
  3. //1.数值型number
  4. let a = 10;
  5. console.log(typeof a);
  6. console.log("----------------------");
  7. //2.字符串string
  8. let b = "我是字符串";
  9. console.log(typeof b);
  10. console.log("----------------------");
  11. //3.布尔值boolean 布尔值只有两种:true、false
  12. let c = true;
  13. console.log(typeof c);
  14. console.log("----------------------");
  15. //4.未定义undefined
  16. let d;
  17. console.log(typeof d);
  18. console.log("----------------------");
  19. //5.空null 这个返回并不是null类型二十一个对象object类型
  20. console.log(typeof null);
  21. console.log("----------------------");
  22. //引用数据类型
  23. //1.数组array 可以通过索引/下标来取数组中的值
  24. let arr = [1, 2, 3, "hello world"];
  25. //判断数据类型 其实数组也属于对象
  26. console.log(typeof arr);
  27. //判断是否是一个数组
  28. console.log(Array.isArray(arr));
  29. //打印输出
  30. console.log(arr[3]);
  31. console.log("----------------------");
  32. //2.对象object 对象中存储的是一个属性 可以通过属性名来进行获取对象中的内容
  33. let obj = {
  34. name: "对象",
  35. age: 20,
  36. sex: "男",
  37. fun: function () {
  38. return (
  39. "我的名字是:" +
  40. this.name +
  41. ",性别:" +
  42. this.sex +
  43. ",年龄是:" +
  44. this.age +
  45. "岁"
  46. );
  47. },
  48. };
  49. //判断数据类型
  50. console.log(typeof obj);
  51. //读取内部数据
  52. console.log(obj.fun());
  53. console.log("----------------------");
  54. //3.函数类型 函数是数据类型也是一个对象
  55. function f1() {}
  56. function hanshu(f) {
  57. return typeof f;
  58. }
  59. //调用函数 将f1函数传值给hanshu
  60. console.log(hanshu(f1));

流程控制






























分支名称语法结构
if单分支if(条件表达式){执行语句}
if else双分支if(条件表达式){执行语句}else{执行语句}
if else if else多分支if(条件表达式){执行语句}else if(条件表达式){执行语句}else{执行语句}
switch多分支语法糖switch(true){case 条件表达式1: 执行语句; break; default:执行语句}
?:三元运算符条件表达式? 为真时执行的语句: 为假时执行的语句

流程控制有两种一种是分支(也就是判断)一种是循环 具体实例演示如下




  • 分支实例演示

l5uksmpe.png

  1. //流程控制:分支
  2. //假设小明今年17岁 他想去上网 网吧是18岁才可以进那么怎么才能判断呢
  3. // 语法:
  4. //if(条件表达式){执行语句} 可以这样理解如果条件表达式不成立那么执行语句将不会执行反之则执行
  5. let age = 20;
  6. //1.单分支
  7. if (age < 18) {
  8. console.log("抱歉您无法上网");
  9. }
  10. //2.双分支 语法if(条件表达式){执行语句}else{执行语句} 如果条件表达式不成立那么将会执行else后面的执行语句 反之将会执行前面的执行语句
  11. if (age < 18) {
  12. console.log("抱歉您无法上网");
  13. } else {
  14. console.log("欢迎光临");
  15. }
  16. // 双分支语法糖 三元运算符 ?: 条件表达式 ? true : false 如果条件成立执行第一个执行语句也就是true反之就是false
  17. console.log(age < 18 ? "不可以瑟瑟" : "可以瑟瑟");
  18. // 3.多分支 语法:if(条件表达式){执行语句}else if(条件表达式){执行语句}else if(...){...}else{都不满足时执行}
  19. //如果第一个条件不满足就往下找满足指定条件执行对应的执行语句
  20. age = 51;
  21. if (age >= 18 && age <= 50) {
  22. console.log("可以上网");
  23. } else if (age > 50 && age <= 80) {
  24. console.log("不建议上网");
  25. } else if (age > 80) {
  26. console.log("别上网了");
  27. } else if (age > 120 || age < 8) {
  28. console.log("别来了");
  29. } else {
  30. console.log("小屁孩回家写作业");
  31. }
  32. console.log("---------------------------");
  33. // 多分支语法糖 switch
  34. //语法switch(条件表达式){
  35. //case 条件表达式1:
  36. //执行语句
  37. // break;
  38. // ....
  39. //}
  40. // age = 50;
  41. let a = 100;
  42. switch (true) {
  43. case a >= 18 && a <= 50:
  44. console.log("可以上网");
  45. break;
  46. case a > 50 && a <= 80:
  47. console.log("不建议上网");
  48. break;
  49. case a > 80:
  50. console.log("别上网了");
  51. break;
  52. case a > 120 || a < 8:
  53. console.log("别来了");
  54. break;
  55. default:
  56. console.log("小屁孩回家写作业");
  57. }


  • 流程控制循环






























循环名称语法结构
while循环while(条件表达式){执行语句}
do while循环do{执行语句}while(条件表达式)
for循环for(初始话变量;条件表达式;自增或自减){执行语句}
for-offor(定义变量 of 需要遍历的数组){执行语句}
for-infor(定义变量 in 需要遍历的对象){执行语句}

l5umgkn7.png

  1. //流程控制:循环
  2. let arr = ["小明", "小王", "小刘", "小黄"];
  3. //1.whlie循环 语法while(条件表达式){执行语句} 当条件表达式不满足时执行内部代码 直到满足为止
  4. let i = 0;
  5. while (i < arr.length) {
  6. console.log(arr[i]);
  7. i++;
  8. }
  9. // 2.do while循环 与上面不同的是 他不管条件成不成立 都会先执行一遍内部代码 然后在进行条件判断
  10. console.log("----------");
  11. i = 0;
  12. do {
  13. console.log(arr[i]);
  14. i++;
  15. } while (i > arr.length);
  16. console.log("----------");
  17. // 3.for循环 语法for(声明一个初始化变量;条件表达式;自增自减){执行语句}
  18. for (let i = 0; i < arr.length; i++) {
  19. console.log(arr[i]);
  20. }
  21. console.log("----------");
  22. //4.for-of 可以通过此种方式查看数组的值
  23. let arrs = ["张三", "李四", "王二麻子"];
  24. for (let item of arrs) {
  25. console.log("姓名" + item);
  26. }
  27. console.log("----------");
  28. //5.for-in 可以通过for in 遍历输出对象的属性值
  29. let obj = {
  30. 姓名: "老王",
  31. 职业: "你猜",
  32. age: 50,
  33. };
  34. for (let key in obj) {
  35. console.log(obj[key]);
  36. }
  37. //小案例99乘法表
  38. for (let i = 0; i <= 9; i++) {
  39. for (let j = 1; j <= i; j++) {
  40. document.write(j + "*" + i + "=" + i * j + "   ");
  41. }
  42. document.write("
    "
    );
  43. }

推荐阅读
  • 深入解析 Vue.js 的设计与实现:第三章详解
    在《深入解析 Vue.js 的设计与实现》第三章中,详细探讨了 Vue.js 渲染器与虚拟 DOM 的机制。通过 JavaScript 对象来模拟实际的 DOM 结构,例如,`const vNode = { tag: 'div', props: { ... } }`,这种方式不仅提高了性能,还增强了组件的可维护性和灵活性。本章进一步分析了虚拟 DOM 的创建、更新及优化策略,为开发者提供了深入了解 Vue.js 内核工作的视角。 ... [详细]
  • 本文将介绍一种扩展的ASP.NET MVC三层架构框架,并通过使用StructureMap实现依赖注入,以降低代码间的耦合度。该方法不仅能够提高代码的可维护性和可测试性,还能增强系统的灵活性和扩展性。通过具体实践案例,详细阐述了如何在实际开发中有效应用这一技术。 ... [详细]
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • 为了深入了解某些测试框架的工作原理,并在培训中构建一个简单的测试框架,我系统地研究了 should.js 的源代码。本文将分享我的学习过程和分析结果,帮助读者更好地掌握 should.js 的核心机制。 ... [详细]
  • 如何判断一个度序列能否构成简单图——哈维尔-哈基米算法的应用与解析 ... [详细]
  • 利用 JavaScript 实现定时任务的高效执行方法(代码可直接复用) ... [详细]
  • Liferay Portal 中 AutoEscape 构造函数的应用与实例代码解析 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • MVVM架构~mvc,mvp,mvvm大话开篇
    返回目录百度百科的定义:MVP是从经典的模式MVC演变而来,它们的基本思想有相通的地方:ControllerPresenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模 ... [详细]
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
  • 本文探讨了通过JavaScript实现密码强度检测功能的优化方法。密码强度分为三个等级:使用单一类型字符(如纯数字或纯字母)且长度在1-6位的密码为“弱”;包含两种类型字符(例如字母与数字组合)的密码为“中等”;而长度超过12位并结合三种或四种类型字符(如大小写字母、数字及特殊符号)的密码则被认定为“强”。此外,文章还介绍了如何利用正则表达式和条件判断语句来高效地评估密码强度,确保用户账户的安全性。 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
  • 在C#和ASP.NET开发中,TypeParse 是一个非常实用的类型解析扩展方法库,提供了简便的类型转换功能。例如,通过 `var int1 = "12".TryToInt();` 可以将字符串安全地转换为整数,如果转换失败则返回0。此外,还支持更多复杂的类型转换场景,如 `var int2 = "22x".TryToInt();` 和 `var int3 = "3.14".TryToInt();`,确保了代码的健壮性和易用性。 ... [详细]
  • APKAnalyzer(1):命令行操作体验与功能解析
    在对apkChecker进行深入研究后,自然而然地关注到了Android Studio中的APK分析功能。将APK文件导入IDE中,系统会自动解析并展示其中各类文件的详细信息。官方文档提供了详细的命令行工具使用指南,帮助开发者快速上手。本文以一个RecyclerView的Adapter代理开源库为例,探讨了如何利用这些工具进行高效的APK分析。 ... [详细]
  • 本文深入探讨了 JavaScript 中 `let` 关键词的特性和应用场景。与 `var` 不同,`let` 的作用域限制在代码块内,而 `var` 的作用域则限定在函数内部。此外,`let` 声明不会发生变量提升,并且在同一作用域内不允许重复声明同一变量。通过具体的示例和分析,本文详细解释了这些特性如何影响代码的可读性和维护性。 ... [详细]
author-avatar
yjlz2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有