博客列表 >流程控制和函数和返回值

流程控制和函数和返回值

ianren
ianren原创
2022年01月08日 22:09:19482浏览

流程控制

1. 顺序(默认)

2. 分支

  • 有条件的执行某个代码块
  1. 单分支:进当表达式计算结果为真时,才执行代码块 if(条件表达式){}
  1. let age = 28;
  2. if (age >= 18) {
  3. console.log("你好");
  4. }
  5. // `if (age >= 18) ` 此为判断条件 当 age>=18 时 才向下执行{}里面的 `console.log("你好");`.否则不执行
  1. 双分支: 有一个默认分支
  1. let age = 8;
  2. if (age >= 18) {
  3. console.log("你好");
  4. } else {
  5. console.log("现在不好");
  6. }
  7. // 当 `age>=18;` 执行 "你好", 否则 执行 "现在不好"
  8. ///简化代码
  9. let age = 8;
  10. let res = age >= 18 ? "你好" : "现在不好";
  11. console.log(res);
  1. 多分支: 有多个默认分支
  1. let age = 48;
  2. if (age >= 1 && age < 30) {
  3. console.log("我再1-30之间");
  4. } else if (age >= 30 && age < 50) {
  5. console.log("我再30-50之间");
  6. } else if (age >= 50 && age < 100) {
  7. console.log("我再50-100之间");
  8. } else {
  9. console.log("我不在100以内");
  10. }
  11. /// && 为并且 || 或
  1. switch 进行优化
  1. let age = 118;
  2. switch (true) {
  3. case age >= 1 && age < 30:
  4. console.log("我再1-30之间");
  5. break;
  6. case age >= 30 && age < 50:
  7. console.log("我再30-50之间");
  8. break;
  9. case age >= 50 && age < 100:
  10. console.log("我再50-100之间");
  11. break;
  12. default:
  13. console.log("我不在100以内");
  14. }

3. 循环

1. while 入口行判断

  1. const colors = ["red", "green", "blue"];
  2. console.log(colors[0], colors[1], colors[2]);
  3. // 查看数组里有几个值
  4. console.log(colors.length);
  5. //查看数组里面最后一个值的索引号
  6. console.log(colors.length - 1);
  7. // 起始索引
  8. let i = 0;
  9. // 循环条件
  10. let length = colors.length;
  11. // 设变量 length 等于 数组里面有几个数值
  12. // 更新索引 要在代码块里面
  13. while (i < length) {
  14. console.log(colors[i]);
  15. i++;
  16. }
  • 循环三条件
  1. 初始条件: 数组索引的引用 (i = 0)
  2. 循环条件: 为真才执行循环体 ( i < arr.length)
  3. 更新条件: 必须要有,否则进入死循环 ( i++)

2. do{} while() 出口型判断,无论条件是否成立,必须执行一次代码

  1. // 出口型判断,无论条件是否成立,必须执行一次代码
  2. i = 0;
  3. do {
  4. console.log(colors[i]);
  5. i++;
  6. } while (i < length);
  7. // 正常输出 red , green , blue
  8. // 如果把条件改为不成立 `(i > length)` 他也会输出 `red ` 因为不管成不成立 都会输出一次

for()循环 (是 while 的简化)

  • for (初始化条件; 循环条件; 更新条件) {…}
  1. for (i = 0; i < length; i++) {
  2. console.log(colors[i]);
  3. }
  4. // 优化, 将数组长度,提前计算出来缓存到一个变量中(有助有提高速度)
  5. for (let i = 0, length = colors.length; i < length; i++) {
  6. console.log(colors[i]);
  7. }

3.for - of 快速迭代处理集合

  • 数组内部有一个迭代器的方法,可以用for - of
  • for - of 优点 : 用户不必再起关心索引,而将注意力集中在数组成员上
  1. for (let f of colors.entries()) {
  2. console.log(f);
  3. }
  4. // colors.entries() 返回的是数组每个成员的键值对
  5. // colors.keys(); 返回的是数组每个成员的键值(0 ,1, 2)
  6. // colors.values() 返回的是数组每个成员的值(red, green,blue)
  7. // 优化(默认返回值)
  8. for (let f of colors) {
  9. console.log(f);
  10. }
  11. // 返回的是数组每个成员的值(red, green,blue)

4.for - in 遍历对象

  1. const obj = { a: "red", b: "green", c: "blue" };
  2. for (let key in obj) {
  3. console.log(obj[key]);
  4. }

函数和返回值

返回值

  • 函数默认单值返回

  • 如何返回多个值;

    1. 用数组返回
  1. w = () => [1, 2, 3, 4];
  2. console.log(w());
  1. 对象: 模块
  1. w = () => ({ a: 1, b: 2, c: 3 });
  2. console.log(w());
  3. // 对象的简化
  4. let name = "ianren";
  5. let user = {
  6. // name: "woshiwo",
  7. // name: name,
  8. name,
  9. };
  10. console.log(user.name);
  11. // 变量名(name)与属性名(name)同名时;且在同一作用域可以直接写一个name
  12. // 2. 方法简化
  13. user = {
  14. name,
  15. // 所谓方法本质仍是属性 他的值是一个函数声明
  16. getName() {
  17. return this.name;
  18. },
  19. getName1: () => this.name,
  20. };
  21. // 箭头函数不要用到字面量中(有this的不能用箭头函数)
  22. console.log(user.getName());
  23. console.log(user.getName1());

模板字面量 与模板函数

-模板字面量(加反引号)

  1. console.log("hello");
  2. console.log(`hello`);
  • 模板字面量 里面可以使用插值(解析变量)
  1. let name1 = "ianren";
  2. console.log("hello " + name1);
  3. // 使用插值
  4. console.log(`hello ${name}`);
  5. // 变量/表达式等插值,使用${...}插入到模板字面量中
  6. // 表达式
  7. console.log(`10 + 20 = ${10 + 20}`);
  8. // 判断
  9. console.log(`${10 < 20 ? "大于" : "小于"}`);
  10. // 模板函数:使用模板字面量为参数的函数
  11. // 1.模板函数(第一个参数是字面量做成的数组,第二个参数起,是字面量中的插值列表)
  12. function total(strings, num, price) {
  13. console.log(num, price);
  14. }
  15. let num = 10;
  16. let price = 20;
  17. total`${10} * ${500}`;
  18. // 模板函数的优化 以后只用这一种
  19. // 使用 ...rest 将插值合并
  20. function sum(strings, ...arr) {
  21. console.log(strings);
  22. console.log(arr);
  23. console.log(`${arr.reduce((a, c) => a + c)}`);
  24. }
  25. sum`计算多个数 和:${1}${2}${3}${4}${5}`;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议