ES6 的新增特性以及简单语法 

  • let 和 const
  • 模板字符串
  • 箭头函数
  • 对象单体模式
  • es6面向对象
  • 模块化

 let 和 const

  之前一直用 var 来声明变量,ES6 新增 let 和 const

  1. script type="text/javascript">
  2.  
  3. // let声明变量块级作用域,不能重复声明
  4. // let声明的变量 是块级作用域,不能重复声明
  5. // {
  6. // // let a = 12;
  7. // let a = 12;
  8. // let a = 13;
  9. // }
  10.  
  11. // console.log(a);
  12.  
  13.    // var 的坑 ,循环的时候会按照最后一次的赋值
  14. // var a = [];
  15. // for (var i = 0; i < 10; i++) { //这里的 var i 换成 let i 即可解决
  16. // a[i] = function () {
  17. // console.log(i);
  18. // };
  19. // }
  20. // a[6](); // var 10 ,let 6
  21.  
  22. // var 会发生变量提升
  23. console.log(foo); // 输出undefined
  24. var foo = 2;
  25. // let 不发生变量提升
  26. console.log(foo); // 报错 ReferenceError
  27. let foo = 2;
  28.  
  29. // const 声明常量,一旦声明,立即初始化,不能重复声明。
  30. const foo; // 没立即赋值,会报错
  31. // const 声明是只读常量,不可更改
  32. const P = 1
  33. P = 2 // 报错无法更改
  34. </script>

模板字符串

  更加的简单的拼接字符串 用 ${} 来填入

  1. <script>
  2. var a = 1;
  3. var b = 2;
  4.  
  5. // var str = "哈哈哈哈" + a + "嘿嘿嘿" + b;
  6. // ` xxx${}xxxx${}xxx` 注意反引号
  7. var str = `哈哈哈哈${a}嘿嘿嘿${b}`;
  8. console.log(str);
  9. </script>

 箭头函数

  操作更加简单了,但是改变了特性造成了不便

  1. <script>
  2. // function(){} --等同于--- ()=>{}
  3.  
  4. // 1.this的指向发生改变,指向了定义对象时的对象
  5. // function(){} 的时候相当于 self
  6. // ()=>{} 的时候相当于 windows对象
  7. // 2.arguments不能使用,无法再通过 arguments 拿所有的参数
  8.     var person = {
  9. name:'张三',
  10. age: 18,
  11.  
  12. fav:()=>{
  13.             console.log(this);     // windows
  14.             console.log(arguments); // 报错不存在
  15.             }
  16.           }
  17.           person.fav();
  18. </script>

 对象单体模式

  为了解决箭头函数的问题

  (){} 完全等同于 function(){} 不再有上面的困扰了

  1. <script>
  2. var person = {
  3. name:'张三',
  4. age: 18,
  5.  
  6. fav(){
  7. console.log(this);
  8. console.log(arguments);
  9. }
  10. }
  11. person.fav();
  12. </script>

 ES6的面向对象

  1. <script>
  2. // 构造函数的方式创建对象
  3. // function Animal(name,age){
  4. // this.name = name;
  5. // this.age = age;
  6.  
  7. // }
  8. // Animal.prototype.showName = function(){
  9. // console.log(this.name);
  10. // }
  11. // Animal.prototype.showName2 = function(){
  12. // console.log(this.name);
  13. // }
  14. // Animal.prototype.showName3 = function(){
  15. // console.log(this.name);
  16. // }
  17. // Animal.prototype.showName4 = function(){
  18. // console.log(this.name);
  19. // }
  20. // var dog = new Animal('日天',18)
  21.  
  22. class Animal{
  23. constructor(name,age){ // 必须要 constructor 初始化属性 类似于 init
  24. this.name = name;
  25. this.age = age;
  26. } // 这一行一定不要加逗号
  27. showName(){
  28. console.log(this.name)
  29. }
  30. }
  31. var d = new Animal('张三',19);
  32. d.showName();
  33. </script>

10.1 ES6 的新增特性以及简单语法的更多相关文章

  1. hive 0.10 0.11新增特性综述

    我们的hive版本升迁经历了0.7.1 -> 0.8.1 -> 0.9.0,并且线上shark所依赖的hive版本也停留在0.9.0上,在这些版本上有我们自己的bug fix patch和 ...

  2. ES6/ES2015的一些特性的简单使

    1.一些常用的ES6的特性: let, const, class, extends, super, arrow functions, template string, destructuring, d ...

  3. ES6(函数新增特性)

    ES6(函数新增特性) 1.函数参数默认值 没有 y 时,默认就是world 有 y 时,输出值即可 (错误) (C有默认值,正确) 默认值后面不能再有没有默认值的变量 2.作用域 y 取其前面的 x ...

  4. Java SE 10 新增特性

    Java SE 10 新增特性 作者:Grey 原文地址:Java SE 10 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  5. ES6相关新特性介绍

    你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...

  6. ES6常用新特性

    https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...

  7. ES6 && ECMAScript2015 新特性

      ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES201 ...

  8. 前端开发者不得不知的es6十大特性(转)

    转载自AlloyTeam:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten ...

  9. 前端开发者不得不知的ES6十大特性

    前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will- ...

随机推荐

  1. SAP MM 可以不用创建盘点凭证直接录入盘点结果?

    SAP MM 可以不用创建盘点凭证直接录入盘点结果? 可以.SAP标准功能就支持这么做. 事务代码 MI09 (Enter Count w/o Reference to Document), 输入pl ...

  2. 日志管理工具之logrotate

    Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...

  3. scrollTo不起作用

    最近,我在HorizontalScrollview中使用scrollTo不起作用? ...... 以上省略N个字. 我只想说: 在使用scrollTo的时候,要先保证该HorizontalScroll ...

  4. jsp用el表达式获取后台传来的值,或者获取session中的值

    <script type="text/javascript"> var usernameC = ${sessionScope.SESSION_USER_PROFILE. ...

  5. asp.net网页上获取其中表格中的数据(爬数据)

    下面的方法获取页面中表格数据,每个页面不相同,获取的方式(主要是正则表达式)不一样,只是提供方法参考.大神勿喷,刚使用了,就记下来了. 其中数据怎么存,主要就看着怎么使用了.只是方便记录就都放在lis ...

  6. c/c++ 多线程 层级锁

    多线程 层级锁 当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个.同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁...) 但是,有的时候,并不能 ...

  7. centos7.4系统升级kernel内核

    在实验环境下,已安装了最新的CentOS 7.4操作系统,现在需要升级内核版本. 实验环境CentOS-7-x86_64-Minimal-1708.iso CentOS Linux release 7 ...

  8. Django REST framework基础:认证、权限、限制

    认证.权限和限制 身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制.然后 权限 和 限制 组件决定是否拒绝这个请求. 简单来说就是: 认证确定了你是谁 权限确定你能不 ...

  9. 修改json对象的每一个值

    function fun1(obj){ var names={}; /*for in 可以用于数组或者对象*/ for(var name in obj){ names[name] = obj[name ...

  10. Java线程状态转换

    前言:对于Java线程状态方面的知识点,笔者总感觉朦朦胧胧,趁着最近整理资料,将Java线程状态方面的知识点总结归纳,以便加深记忆. 1.Java线程状态值 在Thread类源码中通过枚举为线程定义了 ...