Es6

ECMAScript 6

  ECMAScript 6.0 ( 以下简称 ES6 ) 是Javascript 语言的下一代标准,因此,ECMAScript 和 Javascript 的关系是,前者是后者的规格,后者是前者的一种实现 (另外的ECMAScript 方言还有 Javascript 和 ActionScript)

es6变量:

  1,声明(定义)变量的关键字

      var  function  let  const  class  import

    * 备注:不能忽略函数的形参,函数的私有作用域

    

    var 定义变量 --- 变量能够提升,但是不能定义;给window添加一个对应的属性

    function 定义变量 --- 既可以提前声明,同时还定义了(赋值了)

    定义:所谓定义,就是给这个变量赋值了

    let es6提供的一种声明变量的方式 --- 没有变量提升,在声明之前不能使用,不能重复声明,不会给window增加属性

    es6 新增了let命令,用来声明变量;他的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效

 

作用域:

   ~ var 作用域

      var声明的变量,作用域分两种:

        全局作用域 --- 在window下声明的变量或者在函数外声明的变量

        局部作用域 --- 在函数内部声明的

  * 了解浏览器执行的机制:

     浏览器在执行的时候,首先开辟一个大空间window,window下面主要分两个模块,一个叫栈,一个叫堆,栈用来存放变量的内存地址,堆主要存放代码块;然后浏览器从上到下执行代码

   ~function 声明的变量:

      function声明的变量给window添加一个对应的属性,属性值是方法

      * 函数归属谁,跟它在哪调用无关,在哪定义有关

        

      * 任何一个函数都有一个返回值,如果写了return,return的是什么就返回什么

        

      * 函数在if中的特殊情况,在if语句中定义的函数只声明不定义,当条件成立的时候,if模块中不管函数在哪声明的函数,都会第一步对这个函数先定义,再去执行if里面的代码;

        

        

        

块级作用域:(私有作用域)

  带 { } 的都是块级作用域 , if(){}  for()  对象()

  var function 没有块级作用域这个概念,因为var有变量提升

  let const 有块级作用域

    

    

    

 块级作用域和对象的区别:

  {

    name :''zhang'',

    age : 12

  }

  { } 如果想表示对象,就不能放在行首,就是{}前面不能没有东西

  { } 前面什么都没有,代表块级作用域

  eval ( "  ( {name : 'zhang' , age : 12 } ) " )

暂存性死区:

  如果块级作用域内使用 let const 命令声明变量了;这个区域就会被这个变量 强制绑定,凡是在声明变量之前这些变量都是不可以的,使用会报错,这就是暂时性死区;

    

    

    

    使用变量b,在定义变量b之前,出现了暂时性死区

      let a=a --- 报错 赋值运算从左往右,右边使用变量a结果发现a没有声明,而let语法规定不能在没定义前使用变量,所有报错
      var a=a --- 不报错 因为var可以变量提升,在等号赋值的时候,是从右往左,使用变量a,此时a是undefined,
      赋值时就是把undefined赋值给a,所有a还是undefined

 

函数参数默认值:

  1,写法上 --- 有默认值的写后面,没默认值的写前面
  2,如果传对应的参数,就不要默认值了,不是先赋默认值,然后用实参去覆盖

 

      

 

转载于:https://www.cnblogs.com/xiaotaiyangye/p/11147354.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值