博客列表 >数据类型和流程控制

数据类型和流程控制

Wu.Ang
Wu.Ang原创
2022年08月18日 22:41:40384浏览

js 数据类型和流程控制

数据类型

1.原始类型:number、string、boolean、undefined、null

特点 : 1.单值 2.动态:数据的类型,由值来决定

2.引用类型:、array(数组)、object(对象)、function(函数)

  1. 数组 : 每个成员可以是原始类型,也可以是引用类型
  1. // 数组
  2. const arr = ["手机", "2", "4000"];
  3. console.log(arr);
  4. console.table(arr);
  5. console.log(arr.length);
  6. // 判断是否为数组;
  7. console.log(Array.isArray(arr));
  8. console.log(arr[0]);
  9. console.log(arr[1]);
  10. console.log(arr[2]);
  1. 对象 : 最主要功能,把一些常用操作封装
  1. // 对象
  2. let obj = {
  3. name: "电脑",
  4. num: 2,
  5. price: 5000,
  6. };
  7. console.log(obj["name"]);
  8. // 符合js标识符命名规范的属性名,可以用'.'访问
  9. console.log(obj.name);
  10. // 最主要功能,把一些常用操作封装
  11. obj = {
  12. name: "电脑",
  13. num: 2,
  14. price: 5000,
  15. total: function () {
  16. // this 当前对象的引用
  17. return this.num * this.price;
  18. },
  19. };
  20. console.log(obj.total());

数组和对象一起使用

  1. // 数组和对象一起使用
  2. const arr_obj = [
  3. { name: "手机", num: 1, price: 4000 },
  4. { name: "电脑", num: 5, price: 7000 },
  5. { name: "耳机", num: 20, price: 30 },
  6. ];
  7. console.log(arr_obj);
  1. 函数 : 既是数据类型,也是对象
  1. //将函数当成数据类型的优点
  2. //1.当成函数的参数 : 回调
  3. // 回调函数
  4. function f1() {
  5. return "world";
  6. }
  7. function f2(f) {
  8. return "hello" + f;
  9. }
  10. // 将f1作为参数传给f2;
  11. console.log(f2(f1()));
  12. //2.当成函数的返回值 : 闭包 可以实现静态变量的效果
  13. // 闭包
  14. function b() {
  15. return function () {
  16. return "Hello";
  17. };
  18. }
  19. console.log(b()());

流程控制

分支 : 有条件的执行某一段代码

  1. 单分支 : if(){}
  1. let age = 20;
  2. if (age >= 18) {
  3. console.log("已经成年");
  4. }
  1. 双分支 : if(){}else{}
  1. let age = 17;
  2. if (age >= 18) {
  3. console.log("已经成年");
  4. } else {
  5. console.log("没有成年");
  6. }

三元运算符:语法糖 条件?真:假

  1. let age = 17;
  2. age >= 18 ? console.log("已经成年") : console.log("未成年");
  1. 多分支 : if(){}else if(){}else{}
  1. age = 18;
  2. if (age >= 6 && age <= 12) {
  3. console.log("小学");
  4. } else if (age > 12 && age <= 15) {
  5. console.log("初中");
  6. } else if (age > 15 && age <= 18) {
  7. console.log("高中");
  8. } else {
  9. console.log("无");
  10. }

多分支语法糖 : switch

  1. // 区间判断,并非单值,一定要用true才能进入分支
  2. switch (true) {
  3. case age >= 6 && age <= 12:
  4. console.log("小学");
  5. break;
  6. case age > 12 && age <= 15:
  7. console.log("初中");
  8. break;
  9. case age > 15 && age <= 18:
  10. console.log("高中");
  11. break;
  12. default:
  13. console.log("无");
  14. }

循环 : 索引初始化,循环条件,更新循环条件

  1. while : 入口判断
  1. const commodity = ["啤酒", "饮料", "矿泉水"];
  2. // 起始的索引
  3. let i = 0;
  4. // 条件
  5. let length = commodity.length;
  6. while (i < length) {
  7. console.log("第" + i + "个商品是:" + commodity[i]);
  8. i++;
  9. }
  1. do : 出口判断
  1. i = 0;
  2. do {
  3. console.log("第" + i + "个商品是:" + commodity[i]);
  4. i++;
  5. } while (i < length);
  1. for es6 中快捷输出 for-of(不能遍历对象,可以用 for-in)
  1. for (let i = 0; i < commodity.length; i++) {
  2. console.log("第" + i + "个商品是:" + commodity[i]);
  3. }
  4. for (let item of commodity.values()) {
  5. // item为每个数组的变量名
  6. console.log(item);
  7. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议