Blogger Information
Blog 94
fans 0
comment 0
visits 92730
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【JS】JS作用域、字面量简化总结 【简化为重点】
可乐随笔
Original
718 people have browsed it

作用域、字面量简化

作用域、作用域链

  • 作用域
  • 作用域:查询变量的工具
  • 作用域链:查询变量的路径(由内向外不可逆)

  • 作用域类型

    1. 块作用域
    1. 函数作用域
    1. 全局使用域

1. 块使用域

  1. // 流程控制,{},if,while,...
  2. {
  3. let name = 'admin'
  4. console.log(name);
  5. }
  6. // 仅限块内,外部不可见
  7. // console.log(name);
  8. console.log('----------------------')

2. 函数作用域

  1. const hello = function(){
  2. //私有成员
  3. const site = 'php.cn'
  4. //私有成员,函数内部可以访问
  5. console.log(site)
  6. }
  7. //访问函数hello
  8. hello()
  9. console.log('----------------------')

3. 全局作用域

  1. // 块,函数之外的都是全局,全局可见
  2. const course = 'JavaScript'
  3. //块
  4. {
  5. console.log(course)
  6. }
  7. console.log('----------------------')

4. 作用域链

  1. const item = '手机'
  2. const scopeChain = function(){
  3. //const item = '电脑'
  4. return function(){
  5. //const item = '相机'
  6. return item
  7. }
  8. }
  9. console.log(scopeChain()())
  10. //函数中的变量和全局中变量不是同一个变量,如果在函数中找不到变量,会向上查找。
  11. //这个就叫作用域链

对象字面量的简化

  1. **class**,只支持简化语法
  2. let product = {
  3. productName: '华为(MateXs2)',
  4. unitPrice: 9999,
  5. getInfo: function(){
  6. return `${this.productName} : ${this.unitPrice} 元`
  7. },
  8. }
  9. console.log(product.getInfo());
  10. const productName = '华为(MateXs2)'
  11. const unitPrice = 9999
  12. product = {
  13. productName: productName,
  14. unitPrice: unitPrice,
  15. getInfo: function(){
  16. return `${this.productName} : ${this.unitPrice} 元`
  17. },
  18. }
  19. console.log(product.getInfo());
  20. console.log('----------------------')

1. 属性简化

  1. product = {
  2. //当属性名与变量名相同时,可只写属性名,不写值变量名
  3. //可以理解为这里引用了上面的变量。
  4. productName,
  5. unitPrice,
  6. getInfo: function(){
  7. return `${this.productName} : ${this.unitPrice} 元`
  8. },
  9. }
  10. console.log(product.getInfo());
  11. console.log('----------------------')

2. 方法简化

  1. product = {
  2. productName,
  3. unitPrice,
  4. //将 冒号和function删除,就完成了简化
  5. //可以理解为:这里定义了一个getInfo()函数
  6. // getInfo: function(){
  7. getInfo() {
  8. return `${this.productName} : ${this.unitPrice} 元`
  9. },
  10. }
  11. console.log(product.getInfo());
  12. console.log('----------------------')
  13. // ! 能不能用箭头函数来简化方法? 不行 NO
  14. product = {
  15. productName,
  16. unitPrice,
  17. //箭头函数,箭头函数没有函数名,拿不到this
  18. getInfo : () => {
  19. return `${this.productName} : ${this.unitPrice} 元`
  20. },
  21. }
  22. console.log(product.getInfo());
  23. console.log('----------------------')
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