一. ES6

  • ES6中定义变量使用 let/const
  • let
    1. 使用let定义的变量不能进行"变量提升"
    2. 同一个作用域中,let不能重复定义相同的变量名
    3. 使用var在全局作用域中定义的变量相当于给window增加了一个私有的属性,但是使用let定义的变量和window没有任何的关系
  • const
    1. 除了拥有let的那些特点之,const定义的变量是一个恒定的值(常量),存储的值是不能进行改变的
  • 块级作用域
    • ES5中的作用域只有两种

      • 全局作用域
      • 函数执行形成的私有作用域
    • ES6中的作用域多加了一种
      • 块级作用域:基本上凡是被"{<js code>}"包起来的都是块级作用域,块级作用域和之前学习的私有作用域一样,保护里面的私有变量不受外界的干扰;而且作用域链机制和之前相同

        • 每一次循环都会形成一个块级作用域,而i是每一个私有作用域中的私有变量
  • 箭头函数
    • function () {};
    • () => {};
    • let fn(a=0,b=0) =>a+b
      • 可以给形参设置默认值,而不是undefined
    • 箭头函数中的this会继承父级作用域中的this,例如在定时器中的回调函数,或自执行函数,不再是window,而是继承
    • 真实项目中混用箭头函数和普通函数,视情况选用
    • 箭头函数没有arguments,
    • 类的创建
    class Fn{
    //类,其中可以定义实例的私有属性
    constructor(){ }
    //公有的方法
    eat(){ }
    //作为类的私有属性
    static say(){ }
    }
    • 类的继承(寄生组合式继承)
    class fn2 extends Fn{
    constructor(){
    //指的是fn2
    super();//继承了父类实例的私有属性
    }
    //继承父类的公共方法
    //不能继承父类的私有属性
    }
  • 对象中增加函数属性
    • 直接函数名(){},不需要用键值对的方式
    • 对象的解构赋值需要保证变量名和属性名一致才可以获取对应位置的值(默认情况下)
    • let {a:x,b:u,x;z}=obj 相当于在给原有的属性名设置别名
  • 扩展运算符"..."
    let ary=["ss",12,21];
    let [a,...b]=ary
    console.log(a)//->"ss"
    let fn=(info,...scoreAry){
    //可以弥补arguments的缺失,接受实参
    }

ES6

  • 其实就是对ES5的一个完善
  • 不是所有的浏览器都兼容,低版本浏览器就不兼容
  • 目前项目中使用ES6非常多(React大部分开发者都是基于ES6写的),因为ES6非常的方便
  • 我们需要把不兼容的ES6转换为兼容的ES3/ES5代码 =>"Babel"
  1. 块级作用域 从字面量理解 {}包含的就是一个块级作用域
  2. let 声明只在当前块级作用域起作用的变量
    • 利用块级作用域理解let
  3. const 常量 一旦定义了就不能改变的变量
    • 如果常量的值是基本数据类型的值就不能变
    • 如果常量的值是引用数据类型它的引用指针就不能变
var a=1;//在es5中,a是一个全局变量,相当于给window自定义了一个属性a,window.a,在es6中,它对全局对象window和全局作用域实现分离,但是为了保证兼容性,依然保留var声明的全局变量的特性,利用let声明块级变量来实现的只是相当于一个全局变量

ES6的基础知识总结的更多相关文章

  1. es2015(es6)基础知识整理(更新中...)

    1.let let可以声明块级作用域变量 'use strict'; if (true) { let app = 'apple'; } console.log(app); //外面是访问不到app的 ...

  2. ES6的基础知识(一)

    1.ECMAScript 6.0(以下简称ES6). 2.ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的其中一种实现. 3.对ES6支持的浏览器:超过 90% ...

  3. es6 generator 基础知识

    1.定义和使用 function *gen() { return 'first generator'; } // 有点类似类的实例化过程 let generatorResult = gen() // ...

  4. javascript基础知识笔记-自用

    笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...

  5. React Native 入门基础知识总结

    中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...

  6. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  7. 快速掌握JavaScript面试基础知识(二)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  8. es 模块的基础知识,深度了解

    // 一模块的基础知识 /** * export :用于模块输出的出口 * import :文件引入的入口 */ // 1,第一种方式使用export方式输出 var a = 'a'; var b = ...

  9. java基础知识学习笔记

    本文知识点以js为参照.对比分析得出笔记.JavaScript之所以叫JavaScript是打算借助java推广自己.虽然都是开发语言,但JavaScript一开始主要运行在 客户端,而java主要运 ...

随机推荐

  1. Vijos——T 1082 丛林探险

    https://vijos.org/p/1082 描述 东非大裂谷中有一片神秘的丛林,是全世界探险家的乐园,著名黄皮肤探险家BB一直想去试试.正好我国科学家2005年4月将首次对东非大裂谷进行科考,B ...

  2. [Python] Format Strings in Python

    Single quotes and double quotes can both be used to declare strings in Python. You can even use trip ...

  3. 使用bitmap处理海量数据

    bitmap是一个十分实用的结构.所谓的Bit-map就是用一个bit位来标记某个元素相应的Value, 而Key即是该元素.因为採用了Bit为单位来存储数据,因此在存储空间方面,能够大大节省.  适 ...

  4. linearlayout-weight 属性作用

    今天用到了weight的属性,现在就把这个属性的具体意义记录一下.也是参考网上的讲解,只不过自己验证了一下而已 参考自 http://blog.csdn.net/jincf2011/article/d ...

  5. POJ 2374 线段树建图+Dijkstra

    题意: 思路: 线段树+Dijkstra(要堆优化的) 线段树要支持打标记 一个栅栏 拆成两个点 :左和右 新加一个栅栏的时候 看看左端点有没有被覆盖过 如果有的话 就分别从覆盖的那条线段的左右向当前 ...

  6. c# for 和 foreach

    1给定长度 不需要计算长度的 for比foreach循环效率高 2 在不确定长度 或者计算长度有性能损耗的时候 用foreach比较方便 2336 循环语句是编程的基本语句,在C#中除了沿用C语言的循 ...

  7. Ansible学习记录一:Linux下部署

    0.Ansible介绍 Ansible 是一个简单的自动化运维管理工具,可以用来自动化部署应用.配置.编排 task(持续交付.无宕机更新等),采用 paramiko 协议库(fabric 也使用这个 ...

  8. .Net中的缓存依赖配置

    缓存--能非常好的提高网站的性能. 在訪问量大,但更新较少的站点中使用缓存,能够大大提高执行效率. 在.net中给我们提供了非常好的缓存机制.页面缓存.数据缓存,还有非常好的依赖缓存. 依赖缓存优点就 ...

  9. 44.delete用法

    声明+delete:函数禁止使用.可以使一个类禁止释放

  10. BZOJ1212: [HNOI2004]L语言(Trie图+DP)

    Description 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D ...