博客列表 >JS基本语法3(引用类型/作用域/对象简化/流程控制)

JS基本语法3(引用类型/作用域/对象简化/流程控制)

茂林
茂林原创
2023年02月20日 08:39:21552浏览

JS基本语法

(引用类型/作用域/对象简化/流程控制)

引用类型

引用类型:数组/对象/函数

1.数组

1.1 定义数组:使用关键字const
数组成员可以是任意类型

  1. const arr=[1,'admin',true];

1.2 访问查看数组

  1. //访问数组中全部数据
  2. console.log(arr);
  3. console.table(arr);
  4. //访问数组单个或多个数据
  5. console.log(arr[1]);
  6. console.log(arr[0],arr[1],arr[2]);

1.3 验证数组:数据属于对象中的一种

  1. console.log(typeof arr);
  2. console.log(Array.isArray(arr))

输出结果:
js

2.对象

  • 定义对象使用关键字 let
  • 与数组相比 index(数值)->key(字符串,语意化),
  • 每个对象的成员就是属性
  • 当属性名是非法标识符时,用数组索引方式访问
  • 如果属性的值是一个函数声明时,这个属性就叫方法
    定义对象
    1. user={
    2. id:1,
    3. uname:'admin',
    4. isMarriedtrue,
    5. 'my email':'12345@qq.com',
    6. show:function (){
    7. //如果一个属性的值是函数声明时,这个属性就叫方法
    8. return `id=${this.id},uname=${this.uname} `;
    9. }
    访问对象
    1. console.log(user.id,user.uname,user.isMarried);
    2. //如遇到属性是非法字符串,可以用数组索引的方式访问
    3. console.log(user['my email']);
    4. console.log(show());

    3.数组和对象的应用场景

  • 类数组:类似,像数组 ,本质上是一个对象
  • 二维数组
  • 对象数组
  1. //类数组
  2. user = {
  3. 0: 5,
  4. 1: 'admin',
  5. 2: 'admin@qq.com',
  6. length: 3,
  7. age:18,
  8. }
  9. console.log(user[2], user.length)
  10. //多维数组
  11. arr=[
  12. [1,'苹果',10],
  13. [2,'梨',20],
  14. [3,'榴莲',50],
  15. ]
  16. //访问
  17. console.table(arr);
  18. console.log(typeof arr);
  19. console.log(Array.isArray(arr));
  20. console.log(arr[1]);
  21. console.log(arr[1][0]);
  22. //对象数组
  23. arr=[
  24. {id:1,'fruit':苹果','price':10},
  25. {id:2,'fruit':'梨','price':20},
  26. {id:3,'fruit':'榴莲','price':50},
  27. ]
  28. //访问
  29. console.table(arr[1].id);
  30. console.log(arr[2]["fruit"]);
  31. console.log(arr[2].fruit);

作用域

  • 代码块域:仅作用于代码块中,代码块外部无法访问:{代码块}
  • 函数作用域:在函数内部查找,函数内部的元素>函数外部的元素
  • 全局作用域
  • 函数作用链,由内而外,不可逆!
    注意:var 不支持作用域,会导致变量泄露
    1. //函数作用域
    2. let a=100;
    3. function abc(){
    4. let a=10,
    5. // 在函数内部也有一个变量a
    6. // 内部声明的叫私有成员
    7. console.log(a);
    8. }
    9. //函数作用链,由内而外,不可逆!
    10. console.log(abc);

    对象简化

  1. 属性简写: 属性名与变量同名,则只写属性即可
  2. 方法简写: 删除: function
  3. 模块字面量简写
    1. let uname = "朱老师";
    2. let age = 18;
    3. teacher = {
    4. id: 1,
    5. **//这里的属性uname的值调用外面变量uname的值,属性名与变量名同名的情况下,可以写一个属性名即可。**
    6. // uname: uname,
    7. uname,
    8. // age: age,
    9. age,
    10. /* work: function () {
    11. return `${uname} is a php teacher,${age}`;*/
    12. **//删除`:function`**
    13. work() {
    14. return `${uname} is a php teacher,${age}`;
    15. },
    16. };
    17. console.log(teacher.work());

流程控制

  1. 单分支: if(){}
  1. let a=10;
  2. //如果 变量a的值大于5,执行代码块里代码
  3. if(a>5){
  4. '代码块';
  5. }

2 . 双分支: if(){}else{}

  1. //如果 变量a大于等于8,执行代码块1,否则执行 代码块2;
  2. let a =10;
  3. if (a>= 8){
  4. '代码块1'
  5. }else{
  6. '代码块2'
  7. }

3 . 多分支: if(){}else if(){}else{}

  1. //如果变量a小于60,执行代码块1,如果不能满足,继续判断a大于等于60并且小于80,执行代码块2,否则执行代码块3
  2. let a = 85;
  3. if (a<60){
  4. '代码块1'
  5. }else if(a<=60 && a <80){
  6. '代码块2'
  7. }else {
  8. '代码块3'
  9. }

4 . 双分支语法糖: con ? true : false
也称三目运算符

  1. //如果 变量a大于等于8,执行代码块1,否则执行 代码块2;
  2. let a =10;
  3. /*if (a>= 8){
  4. '代码块1';
  5. }else{
  6. '代码块2';
  7. }
  8. */
  9. console.log(a>=8?'代码块1''代码块2');
  1. 多分支语法糖: switch(离散,区间),离散也称单值。区间称多值。
  1. //区间判断
  2. let a = 50;
  3. switch (true) {
  4. case a < 60:
  5. console.log("代码块1");
  6. break;
  7. case a >= 60 && a < 80:
  8. console.log("代码块2");
  9. break;
  10. case a > 80:
  11. console.log("代码块3");
  12. break;
  13. default:
  14. console.log("出错了!");
  15. }
  16. //单值判断
  17. switch (a) {
  18. case a === 60:
  19. console.log("代码块1");
  20. break;
  21. case a === 80:
  22. console.log("代码块2");
  23. break;
  24. case a === 100:
  25. console.log("代码块3");
  26. break;
  27. default:
  28. console.log("出错了!");
  29. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议