欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

常见问题

javascript es6的常用语法你知道吗

作者:用户投稿2026-01-11 06:14:15
目录
  • 1.const常量标识
    • 1.不允许重复声明赋值
    • 2.块级作用域
    • 3.无变量提升
    • 4.dead zone (死区)
    • 5.let or cosnt
  • 总结
    • 1.const常量标识
      • 1.不允许重复声明赋值
      • 2.块级作用域
      • 3.无变量提升
      • 4.dead zone (死区)
      • 5.let or cosnt
    • 总结

      1.const常量标识

      1.不允许重复声明赋值

      const args='kenneth'
      const args="kenneth"
      

      es5实现声明常量

      Object.defineProperty(window,"args",{
      value: ' this is es5',
      writable: false
      })
      

      2.块级作用域

      if(true){
      const args=123
      }
      console.log(args)
      

      3.无变量提升

      console.log(args)
      const args=1
      

      var args=123
      console.log(window.args)      //123
      
      cosnt  args1=456
      console.log(window.args1)    //cosnt不在window中
      

      4.dead zone (死区)

      if(true){
      console.log(infor)
      const infor=123
      }
      

      专属报错:

      5.let or cosnt

      const obj={
       id:1,
       age:18,
       name:'aaa'
      }
      obj.age=19       // cosnt 创建一个对象,对象中的属性可以被改变
      //解决:冻结对象,一个被冻结的对象再也不能被修改
      Object.freeze()
      const obj2={
       id:2,
       name:'bbb',
       age:20,
       food:['banana','apple']
      }
      Object.freeze(obj2)
      obj2.age=21                 //被Object.freeze()冻结后,不可以改变    
      obj2.foods[1]='pear'        //可以改变  freeze只能冻结根层 嵌套引用类型需要嵌套递归
      
      //实现创建引用类型:
          function deepFreeze(obj) {
                  Object.freeze(obj);
                  (Object.keys(obj) || []).forEach((key) => {
                      let innerObj = obj[key]
                      if (typeof innerObj === 'object') {
                          deepFreeze(innerObj);
                      }
                  }
                  )
              }
      
              const tempObj = {
                  id: 23,
                  name: '1',
                  food: ['banana', 'apple']
              }
              deepFreeze(tempObj)
      

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

      1.const常量标识

      1.不允许重复声明赋值

      const args='kenneth'
      const args="kenneth"
      

      es5实现声明常量

      Object.defineProperty(window,"args",{
      value: ' this is es5',
      writable: false
      })
      

      2.块级作用域

      if(true){
      const args=123
      }
      console.log(args)
      

      3.无变量提升

      console.log(args)
      const args=1
      

      var args=123
      console.log(window.args)      //123
      
      cosnt  args1=456
      console.log(window.args1)    //cosnt不在window中
      

      4.dead zone (死区)

      if(true){
      console.log(infor)
      const infor=123
      }
      

      专属报错:

      5.let or cosnt

      const obj={
       id:1,
       age:18,
       name:'aaa'
      }
      obj.age=19       // cosnt 创建一个对象,对象中的属性可以被改变
      //解决:冻结对象,一个被冻结的对象再也不能被修改
      Object.freeze()
      const obj2={
       id:2,
       name:'bbb',
       age:20,
       food:['banana','apple']
      }
      Object.freeze(obj2)
      obj2.age=21                 //被Object.freeze()冻结后,不可以改变    
      obj2.foods[1]='pear'        //可以改变  freeze只能冻结根层 嵌套引用类型需要嵌套递归
      
      //实现创建引用类型:
          function deepFreeze(obj) {
                  Object.freeze(obj);
                  (Object.keys(obj) || []).forEach((key) => {
                      let innerObj = obj[key]
                      if (typeof innerObj === 'object') {
                          deepFreeze(innerObj);
                      }
                  }
                  )
              }
      
              const tempObj = {
                  id: 23,
                  name: '1',
                  food: ['banana', 'apple']
              }
              deepFreeze(tempObj)
      

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!