流程控制

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}`;

更多相关文章

  1. SqlServer使用 case when 解决多条件模糊查询问题
  2. 使用NotePad++录制宏功能如何快速将sql搜索条件加上前后单引号
  3. SQL查询数据库中符合条件的记录的总数
  4. SQLServer存储过程实现单条件分页
  5. SQL where条件和jion on条件的详解及区别
  6. SQL 多条件查询几种实现方法详细介绍
  7. 浅述SQL Server的聚焦强制索引查询条件和Columnstore Index
  8. sql中的left join及on、where条件关键字的区别详解
  9. mybatis collection 多条件查询的实现方法

随机推荐

  1. 学习用pyhon写hive udf
  2. 创建单独的函数而不是一个大的缓慢处理时
  3. python打印系统所有tcp,udp监听端口及服
  4. python学习(13)————jieba进阶生成词云
  5. 用于搜索和替换大字符串的最快Python方法
  6. 基于scrapy框架的关于58同城招聘网站信息
  7. PyQt中的各种提示框
  8. Python3:抓取百度关键词所包含的网页
  9. 如何使用os.listdir()忽略隐藏文件?
  10. 弹性豆茎,awsebcli,和祝福1.9.5。