ES6基础

变量声明

注:es6 中变量声明方式6种 var function let const class import 形参

总结: 【es6中语法】 在同一个作用域中【变量名】不能重复;

function 定义函数 函数声明提升

var 声明变量  变量提升

 let 声明的变量

只能在当前块中使用。let 声明的变量;决定变量能在哪里使用;而不是形成一个作用域

注意事项

1.在当前{}中不能重复声明let 声明的变量

2.在当前{}中 let 声明的变量之前不能使用该变量 ----暂时性死区  不能变量提升

3.函数体中 let 不能声明形参

4. 再同一个作用域中let 不能声明函数名

5.内层{} 声明的变量不影响外层{} 声明的变量

var 声明的变量;在提升;只要遇到let重名,一律报错;不允许重复,默认提升到当前let的块级域顶端

-for 中的let 默认()中的let为父级作用域,{}let为子级作用域

for循环特殊,执行多次所以可以形成多个块级作用域

 块级作用作用域

let const 声明的变量能在哪里用的问题

- 没有变量提升
- 不能重复命名
- 块级作用域

模板字符串
+ 模板字符串的基本用法

var s1 = `abc`
  + 模板字符串的优势:
  var obj = {name:'',age:5};
  var s1 = "我叫: "+obj.name+",今年:"+obj.age+"岁。"
  

   结构赋值
  结构赋值;赋值的内容要么是对象要么是数组。其他类型会报错的
  是从对象和数组中取值的一种方式

  + 对象的结构赋值
  var obj = {name:"张三"age:18}
  var {name.age}=obj;
  //生成2个变量 
  //name值来自于obj.name
  //age值来自obj.age

  + 函数参数的结构赋值
  
  function f1(obj){
    console.log(obj.age);
    console.log(obj.height)
  }
  //等价于
  function f1({age,height}){
      console.log(age);
      console.log(height)
  }
  f1({age:5,height:180})
   
+ 补充:属性的简写

  var a =3;
  var c = 10;
  var b  = {a,c};
   //b对象有一个a属性,a属性的值,来自于a变量
   //还有一个c属性,c属性的值来自于c变量
   console.log(b)

super

- 1:super 只存在对象的简写函数中
- 2:super 指向的原型对象


如何判断:super为那个原型对象?
1.判断简写函数中this
2.再找super ,**super == this._prot_**
 对象中function的简写

    var obj = {
        foo(){}
    }
    1.you this 有super
    2.不能 obj.foo.prptotype修改foo的原型
    3.object.setprototypeOf(obj.foo,{})修改foo原型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值