博客列表 >流程控制,模板函数

流程控制,模板函数

木子木杉
木子木杉原创
2022年01月03日 09:58:58363浏览

流程控制的分支,循环

1.分支
1.1单分支 if

  1. let age = 28;
  2. if (age >= 18) {
  3. console.log("允许观看");
  4. }

1.2双分支if-else 简化 condition?true:false

  1. age = 18;
  2. if (age >= 18) {
  3. console.log("允许观看");
  4. } else {
  5. console.log("少儿不宜");
  6. }
  7. age = 35;
  8. let res = age >= 18 ? "允许观看" : "少儿不宜";
  9. console.log(res);

1.3多分支if-elseif-else/switch

  1. age = 60;
  2. if (age >= 18 && age < 35) {
  3. console.log("允许单独观看");
  4. } else if (age >= 35 && age < 60) {
  5. console.log("允许二人观看");
  6. } else if (age >= 60 && age < 120) {
  7. console.log("建议在家人陪同下观看");
  8. } else if (age <= 3 || age >= 120) {
  9. console.log("非法年龄");
  10. } else {
  11. console.log("少儿不宜");
  12. }
  13. //!switch
  14. //区间判断,使用true
  15. age = 10;
  16. switch (true) {
  17. case age >= 18 && age < 35:
  18. console.log("允许单独观看");
  19. break;
  20. case age >= 35 && age < 60:
  21. console.log("允许二人观看");
  22. break;
  23. case age >= 60 && age < 120:
  24. console.log("建议在家人陪同下观看");
  25. break;
  26. case age <= 3 || age >= 120:
  27. console.log("非法年龄");
  28. break;
  29. default:
  30. console.log("少儿不宜");
  31. }
  32. //单值判断:变量
  33. let lang = "html";
  34. lang = "css";
  35. lang = "javascript";
  36. lang = "js";
  37. lang = "HTML";
  38. switch (lang.toLowerCase()) {
  39. case "html":
  40. console.log("超文本编辑语言");
  41. break;
  42. case "css":
  43. console.log("层叠样式表");
  44. break;
  45. case "javascript":
  46. case "js":
  47. console.log("通用前端脚本编程语言");
  48. break;
  49. default:
  50. console.log("不能识别");
  51. }

循环

1.while/do while

  1. //!while循环
  2. i = 0;
  3. while (i < length) {
  4. console.log(colors[i]);
  5. i++;
  6. }
  7. //!循环三条件
  8. //*1.初始条件:数组索引的引用(i=0)
  9. //*2.循环条件:为真才执行的循环体(i<arr.length)
  10. //*3.更新条件:必须要有,否则进入死循环(i++)
  11. //*do{}while(),出口型判断,无论条件是否成立,必须执行一次代码块
  12. i = 0;
  13. do {
  14. console.log(colors[i]);
  15. i++;
  16. } while (i < length);

2.for

  1. //for(初始条件;循环条件;更新条件){}
  2. for (i = 0, leng = colors.length; i < length; i++) {
  3. console.log(colors[i]);
  4. }
  5. //for-of;快速迭代处理集合数据
  6. //用户不必再关心索引,而将注意力集中在数组成员上
  7. for (let item of colors.entries()) {
  8. console.log(item);
  9. }
  10. for (let item of colors.keys()) {
  11. console.log(item);
  12. }
  13. for (let item of colors.values()) {
  14. console.log(item);
  15. }
  16. for (let item of colors) {
  17. console.log(item);
  18. }
  19. //!for-in 对象遍历
  20. const obj = { a: 1, b: 2, c: 3, say: function () {} };
  21. for (let key in obj) {
  22. console.log(obj[key]);
  23. }

参数与返回值

1.参数
1.1参数不足:默认参数

  1. f = (a, b = 0) => a + b;
  2. console.log(f(1));

1.2参数过多:…rest

  1. f = (...arr) => arr;
  2. console.log(f(1, 2, 3, 4, 5));
  3. console.log(...[1, 2, 3, 4, 5]);

2.返回值
2.1默认单值
2.2多值
2.2.1数组

  1. f = () => [1, 2, 3];
  2. console.log(f());

2.2.2对象

  1. f = () => ({ a: 0, b: 1, c: 2, get: function () {} });
  2. console.log(f());

字面量简化方案

1.属性简化
变量name与属性name同名
且在同一个作用域中,可以不写变量名

  1. let name = "朱老师";
  2. //!属性简化
  3. let user = {
  4. // name:"朱老师",
  5. // name:name,
  6. name,
  7. };
  8. console.log(user.name);

2.方法简化
所谓方法:本质仍是属性,只不过它的值是一个函数声明,将”:function”删除

  1. /*user = {
  2. name,
  3. getName: function(){
  4. return this.name;
  5. },
  6. };*/
  7. user = {
  8. name,
  9. getName() {
  10. return this.name;
  11. },
  12. };
  13. // console.log(user.getName());
  14. console.log(user.getName());

模板字面量

  1. //传统
  2. console.log("hello world");
  3. //模板字面量:反引号定义
  4. console.log(`hello world`);
  5. //模板字面量中,可以使用“插值”(变量,表达式),可以解析变量
  6. let name = "朱老师";
  7. console.log("hello" + name);
  8. //变量/表达式等插值,使用${...}插入到模板字面量中
  9. console.log(`hello ${name}`);
  10. console.log(`10+20= ${10 + 20}`);

模板函数

1.使用“模板字面量”为参数
2.第一个参数必须是模板字面量中的“字面量”组成的数组
3.第二个参数起是“模板字面量”的插值列表,通常使用“…rest”来归并到一个数组中处理

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议