Blogger Information
Blog 37
fans 0
comment 1
visits 28117
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
javascript引用类型与流程控制
kong
Original
541 people have browsed it

JS基本语法-3

1. 引用类型

基本类型:number ,string ,boolean ,null ,undefined
引用类型:object ,array ,function

数组

  1. // const arr = [数组成员可以是任意类型]
  2. //数组
  3. const arr = [1 ,'admin' ,true]
  4. //数组访问 下标从0开始[index]
  5. console.log(arr[1]) //admin

对象

  1. //对象
  2. const obj = {
  3. //数据成员: 属性
  4. name: '小明',
  5. sex: '男',
  6. age: 15,
  7. 1: 0 //非法标识符 使用数组索引方式访问 obj[1]
  8. }
  9. // 对象访问
  10. console.log(obj.name) //小明
  11. //对象函数声明,属性就叫:方法
  12. //this:与当前对象绑定,this->user,user变this改变
  13. //箭头函数没有自己的this ,它的this,永远和它的上下文绑定(父级作用域)
  14. const user = {
  15. id: 5,
  16. uname: '张老师',
  17. show: function(){
  18. return `id=${this.id},uname=${this.uname}`
  19. }
  20. }
  21. console.log(user.show())

数组 对象 总结

  1. 1. 数组: [...] ,arr[index]
  2. 2. 对象: {...} ,obj.key
  3. 数组 ,对象的成员 ,可以是任意类型

数组,对象应用场景

1. 多维数组

  1. let arr = [1 ,'手机' ,5000]
  2. arr = [
  3. [1 ,'手机' ,5000]
  4. [2 ,'电脑' ,9000]
  5. [3 ,'键盘' ,100]
  6. ]
  7. console.log(arr[1])

2. 对象数组

  1. let obj = [
  2. {
  3. id: 1,
  4. item: '手机',
  5. price: 5000
  6. },
  7. {
  8. id: 2,
  9. item: '电脑',
  10. price: 9000
  11. },
  12. {
  13. id: 3,
  14. item: '键盘',
  15. price: 1000
  16. }
  17. ]
  18. // 读取
  19. console.log(obj[1].item) //电脑

3. 类数组

//‘类数组’: 类似, 像一个数组 ,本质上仍然是一个对象
// 内部是数组结构,但是有一个对象的外衣

  1. const obj = {
  2. 0: 5,
  3. 1: 'admin',
  4. 2: '123@qq.com',
  5. length: 3
  6. }
  7. console.log(obj[0] ,obj.length) //5 ,3
  8. //转为真正的数组
  9. const arr = Array.from(obj)
  10. console.log(arr) //[5 ,'admin' ,'123@qq.com' ,3]

总结

  1. 多维数组(二维)
  2. 对象数组
  3. '类'数组

作用域与作用域链

  1. /?1. 块作用域
  2. {
  3. //let支持块作用域在作用域外访问不到✔
  4. //var不支持块作用域可以在块作用域外面访问到
  5. // var a = 100
  6. // console.log(a)
  7. }
  8. //外部访问不到
  9. // console.log(a)
  10. /?2. 函数作用域
  11. //从内部先查找,找不到往外找
  12. let links = 'https://baidu.com'
  13. const urls = function(){
  14. //内部声明的叫私有成员
  15. let links = 'https://php.cn'
  16. console.log(links)
  17. }
  18. urls() //https://php.cn
  19. //?3. 全局作用域
  20. //所有块,函数外部都是全局的
  21. const userName = 'php'
  22. {
  23. //在块里访问
  24. console.log(userName)
  25. }
  26. //函数里访问
  27. ;(function(){
  28. console.log(userName)
  29. })

对象简化

  1. //经典写法
  2. let item = {
  3. name: '苹果15',
  4. price: 50000,
  5. show: function(){
  6. return `${this.name}: ${this.price}元`
  7. }
  8. }
  9. //属性简化写法
  10. let names = '苹果15'
  11. let price = 50000
  12. item = {
  13. //属性名: 变量名
  14. //如果属性与变量同名可只写属性不写变量
  15. names,
  16. price,
  17. show: function(){
  18. return `${this.name}: ${this.price}元`
  19. }
  20. }
  21. //方法简化
  22. item = {
  23. //可以删除:function
  24. names,
  25. price,
  26. show(){
  27. return `${this.name}: ${this.price}元`
  28. }
  29. }

总结

  1. 作用域:用于查询变量
  2. 作用域链:查询变量的路径(由内向外不可逆)
  3. 类型:块,函数,全局

对象字面量的简化语法

  1. 属性简化: 属性名与变量同名的情况下只写属性即可
  2. 方法简写: 删除`:function`

流程控制

  1. //1. 分支
  2. //单分支
  3. let flag = false;
  4. if(flag){
  5. console.log('ok')
  6. }
  7. //2. 双分支
  8. if(flag){
  9. console.log('ok')
  10. }else{ // 条件不满足时候执行
  11. console.log('no ok')
  12. }
  13. //3. 多分支
  14. let nol = 120;
  15. if(nol === 100){
  16. console.log('Ok')
  17. }
  18. if(nol === 120){
  19. console.log('Hello')
  20. }else{
  21. console.log('No Hello')
  22. }
  23. //4. 双分支语法糖
  24. // 语法糖:简化抒写
  25. // 双分支简化成三元运算符
  26. let a = false;
  27. if(a){
  28. console.log('早上')
  29. }else{
  30. console.log('下午')
  31. }
  32. //三元运算符
  33. //条件 ? true : false
  34. // 简化
  35. console.log(a?'早上':'中午')
  36. //5. 多分支语法糖
  37. let arr1 = [1, 2, 3, 4, 5];
  38. //等值判断
  39. switch (arr1.length) {
  40. case 0:
  41. console.log("0");
  42. break;
  43. case 1:
  44. console.log("1");
  45. break;
  46. case 2:
  47. console.log("2");
  48. break;
  49. default:
  50. console.log("3");
  51. }
  52. //范围判断
  53. let b = 90;
  54. switch(b){
  55. case b>=80 && b< 100:
  56. console.log('b>=80 ,b< 100')
  57. break
  58. case b>=100 && b < 200:
  59. console.log('b>=100 ,b<200')
  60. break
  61. default:
  62. console.log('end')
  63. }

总结

  1. 单分支: `if(){...}`
  2. 双分支: `if(){...}else{...}`
  3. 多分支: `if(){...}else if(){...}else{...}`
  4. 双分支语法糖: `con ? true : false`
  5. 多分支语法糖: `switch`(离散,区间)
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!