博客列表 >学习数组与对象及作用域

学习数组与对象及作用域

Sinan学习博客
Sinan学习博客原创
2023年02月19日 09:31:08311浏览

学习数组与对象及作用域

1. 演示数组与对象的声明与访问

  1. //数组
  2. let arr1 = ["张三", 28, "男"];
  3. console.log(arr1[0], arr1[1], arr1[2]);
  4. console.log("-------------------------------------------1");
  5. //多维数组
  6. let arr2 = ["张三", 28, "男", ["唱歌", "游泳"]];
  7. console.log(arr2[0], arr2[1], arr2[2], arr2[3][0]);
  8. console.log("-------------------------------------------2");
  9. let arr3 = [
  10. ["张三", 28, "男"],
  11. ["李四", 18, "男"],
  12. ["王五", 38, "男"],
  13. ];
  14. console.table(arr3); //表格显示整个多维数组
  15. console.log(arr3[1]); //单独显示指定一维数组
  16. console.log(arr3[1][1]); //显示指定数组的成员
  17. console.log("-------------------------------------------3");
  18. //对象1
  19. let obj = {
  20. uname: "李四",
  21. age: 18,
  22. sex: "男",
  23. run: function () {
  24. return "我很能跑";
  25. },
  26. };
  27. console.log(obj.uname, obj.age, obj.sex, obj.run());
  28. console.log("-------------------------------------------4");
  29. //对象2
  30. let obj1 = {
  31. uname: "李四",
  32. age: 18,
  33. sex: "男",
  34. show: function () {
  35. return `姓名:${obj1.uname}, 年龄:${obj1.age}, 性别:${obj1.sex}`;
  36. },
  37. };
  38. console.log(obj1.show());
  39. console.log("-------------------------------------------5");
  40. //对象用this
  41. let obj2 = {
  42. uname: "李四",
  43. age: 18,
  44. sex: "男",
  45. show: function () {
  46. return `姓名:${this.uname}, 年龄:${this.age}, 性别:${this.sex}`;
  47. },
  48. };
  49. console.log(obj2.show());
  50. console.log("-------------------------------------------6");
  51. //对象方法是匿名函数用箭头函数简化
  52. let obj3 = {
  53. uname: "李四",
  54. age: 18,
  55. sex: "男",
  56. show: () => `姓名:${obj3.uname}, 年龄:${obj3.age}, 性别:${obj3.sex}`,
  57. };
  58. console.log(obj3.show());
  59. console.log("-------------------------------------------7");
  60. //对象数组
  61. let obj4 = [
  62. { id: 1, item: "手机", price: 5000 },
  63. { id: 2, item: "电脑", price: 9000 },
  64. { id: 3, item: "键盘", price: 1000 },
  65. ];
  66. console.log(obj4[0].item);
  67. console.log("-------------------------------------------8");
  68. //类数组: 像数组,但本质还是对象
  69. let obj5 = {
  70. 0: 1,
  71. 1: "手机",
  72. 2: 5000,
  73. length: 3,
  74. show: function () {
  75. return `${this[2]}`;
  76. },
  77. };
  78. console.log(obj5[1]); //访问成员
  79. console.log(obj5.show()); //访问方法
  80. console.log(obj5.length);
  81. console.log("-------------------------------------------9");
  82. //类数组转化为数组
  83. let arr4 = Array.from(obj5);
  84. console.log(arr4);
  85. console.log(arr4[1]);

2. 演示作用域与作用链

  • 块作用域
  • 函数作用域
  • 全局作用域
  1. //块作用域
  2. //在块内部声明的变量,作用域在该代码块内部。
  3. {
  4. let num = 100;
  5. console.log(num); //100
  6. }
  7. console.log(num); //num is not defined
  8. //在代码块外部的变量不能作用于该代码块
  1. //函数作用域
  2. let hello = "PHP中文网";
  3. const say = function () {
  4. let hello = "php.cn";
  5. console.log(hello);//php.cn
  6. //当函数内部变量hello,使用函数内的,如没有则往上一级查找
  7. };
  8. say();
  1. <script>
  2. //全局作用域
  3. const PI = 3.14;//声明在代码块,函数块的外部,拥有全局作用域
  4. {
  5. console.log(PI); //3.14
  6. }
  7. const sayHello = function () {
  8. console.log(PI); //3.14
  9. };
  10. sayHello();
  11. </script>

3. 代码描述对象的简化方案

  1. <script>
  2. //对这个对象进行语法简化
  3. let item = {
  4. car: "皮卡",
  5. price: 138000,
  6. show: function () {
  7. return `${this.car} 价格: ${this.price} 元`;
  8. },
  9. };
  10. console.log(item.show());
  11. </script>

属性的简化

  • 如果属性名与变量名同名可只写属性名,不写变量名。
  1. <script>
  2. let car = "皮卡";
  3. let price = 138000;
  4. item = {
  5. car,//只写属性名
  6. price,//只写属性名
  7. show: function () {
  8. return `${this.car} 价格: ${this.price} 元`;
  9. },
  10. };
  11. console.log(item.show());
  12. </script>

方法的简化

  • :冒号,function 全部删除
  1. <script>
  2. // 方法的简化
  3. // :冒号,function 全部删除
  4. car = "皮卡";
  5. price = 138000;
  6. item = {
  7. car,
  8. price,
  9. show () {
  10. return `${this.car} 价格: ${this.price} 元`;
  11. },
  12. };
  13. console.log(item.show());
  14. </script>

4. 演示分支结构与对应的语法糖

分支语句

  1. //有条件的执行代码块
  2. let num = 120;
  3. if ((num = 100)) {
  4. //代码块1:
  5. console.log("hello");
  6. }
  7. if ((num = 120)) {
  8. //代码块2:
  9. console.log("world");
  10. } else {
  11. //代码块3:
  12. console.log("hhhh");
  13. }

三元运算符

  • 双分支语法糖
  1. console.log(num ? "hello" : "world")

switch语句

  • 多分支语法糖
  1. let alphabet = "c";
  2. switch (alphabet) {
  3. case "a":
  4. console.log(alphabet);
  5. break;
  6. case "b":
  7. console.log(alphabet);
  8. break;
  9. case "c":
  10. console.log(alphabet);
  11. break;
  12. case "d":
  13. console.log(alphabet);
  14. break;
  15. //...
  16. default:
  17. console.log("不是个字母")
  18. }

while循环

  1. let i = 0;
  2. while (i <= 5) {
  3. console.log("aaa");
  4. i++;
  5. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议