一、基础

  1. ES6
  2. - 类:
  3. class A{
  4. constructor(name,color){
  5. this.name = name;
  6. this.color = color;
  7. }
  8.  
  9. toString(){
  10. console.log('name:'+this.name+'color:'+this.color);
  11. }
  12. }
  13.  
  14. let dog = new A('dog','white');
  15. dog.toString();
  16. #一些变量判断方法
  17. console.log(doga.hasOwnProperty('name'))
  18. console.log(doga.__proto__.hasOwnProperty('toString'))
  19.  
  20. - 继承
  21.  
  22. - 导入、导出
  23. 导出变量
  24. export var name = 'xxxxxx'
  25.  
  26. //test.js
  27. var name = 'ssds';
  28. var age = '';
  29. export{name,age};
  30.  
  31. 导出函数
  32. //myModule.js
  33. export function myModule(args) {
  34.  
  35. return args;
  36. }
  37. 导入
  38. import {myModule} from 'myModule'; //main.js
  39. import {name,age} from 'xxx.js'; //test.js
  40. //一条import语句可以同时导入默认函数和其他变量
  41. import defaultMethod, {otherMethod} from 'xx.js';
  42.  
  43. -箭头(Arrow)函数
  44.  
  45. ()=>
  46. v=>v+
  47. (a,b)=>a+b
  48. ()=>{
  49. alert("foo");
  50. }
  51. e=>{
  52. if(e==){
  53. return ;
  54. }
  55. return /e;
  56. }
  57.  
  58. - 函数参数默认值
  59. function foo(height=,color='red'){
  60. // .....
  61. }
  62.  
  63. - 模板字符串
  64. 不使用之前
  65. var name = 'your name is' + first + ' ' +last + '.'
  66. 使用模板字符串
  67. var name = `Your name is ${first} ${last}`
  68. #${}完成字符串的拼接,变量放于大括号之中
  69.  
  70. -解构赋值
  71. - 获取数组中的值
  72. #从数组中获取值并赋值到变量中,变量的顺序域数组中的对象顺序对应
  73. var foo = ['one','two','three','four'];
  74. var [one,two,three] = foo;
  75. console.log(two); //'two'
  76.  
  77. //如果你想忽略某些值,可以如下
  78. var [first, , ,last] = foo;
  79. console.log(last); // 'four'
  80.  
  81. //也可以先申明变量
  82. var a,b;
  83. [a,b] = [,];
  84. console.log(a); // 1
  85.  
  86. //如果没有从数组中获取到值,也可以为变量设置一个默认值
  87. var a,b
  88. [a=,b=] = [];
  89. console.log(a); //
  90. console.log(b); //7
  91.  
  92. //通过解构赋值可以方便的交换两个变量的值
  93. var a=;
  94. var b=;
  95.  
  96. [a,b] = [b,a];
  97. console.log(a); //
  98. console.log(b); //
  99. - 获取对象中的值
  100. const student ={
  101. name : 'Ming',
  102. age :'',
  103. city : 'shanghai',
  104. };
  105.  
  106. const{name,age,city} = student;
  107. console.log(name); //'Ming'
  108. console.log(age); //'18'
  109. console.log(city); //'shanghai'
  110.  
  111. - 延展操作符(Spread operator
  112.  
  113. - 函数调用
  114. myFunction(...iterableObj);
  115. - 数组构造或字符串
  116. [...iterableObj,'',...'hello',];
  117. - 构造对象时,进行克隆或者属性拷贝
  118. let objClone ={...obj};
  119.  
  120. Example
  121. 在函数调用时使用
  122. function sum(x,y,z){
  123. return x+y+z;
  124. }
  125. const numbers = [,,];
  126. //不使用延展操作
  127. console.log(sum.apply(null,numbers));
  128. //使用
  129. console.log(sum(...numbers)); //
  130. 构造数组
  131. const students = ['a','b'];
  132. const persons = ['c',...students,'d','e'];
  133. console.log(persons) //['a','b','c','d','e']
  134. 数组拷贝
  135. var arr = [,,]
  136. var arr2 = [...arr] //等同于arr.slice()
  137. arr2.push();
  138. console.log(arr2) //[1,2,3,4]
  139.  
  140. - 展开语法和object.assign()行为一致,执行的都是浅拷贝(只遍历一层)
  141. - 连接多个数组
  142. var arr1 = [,,];
  143. var arr2 = [,,];
  144. var arr3 = [...arr1,...arr2]; //等同于 var arr4 = arr1.concat(arr2);
  145.  
  146. #es2018中增加了对象的支持
  147. var obj1 = {foo:'ac',x:};
  148. var obj2 = {foo:'ad',y:};
  149.  
  150. var cloneobj = {...obj1}; // {foo:'ac',x:42}
  151. var mergeobj = {...obj1,...obj2}; // {{foo:'ad',x:42,y:43}}
  152.  
  153. React nativex中:
  154. - 使用
  155. <CustomComponent name='Jane' age={} />
  156. 等同于使用了...之后的,如下
  157. const params ={
  158. name:'Jine',
  159. age:
  160. }
  161. <CustomComponent {...params} />
  162.  
  163. - 配合解构赋值避免传入一些不需要的参数
  164. var params ={
  165. name:'',
  166. title:'',
  167. type:'aaa'
  168. }
  169. #不想传type,其他需要的放other里
  170. var {type,...other} =params;
  171. <CustomComponent type='normal' number={}{...other} />
  172. 等同于
  173. <CustomComponent type='normal' number={} name='' title='' />
  174.  
  175. - 对象属性简写
  176. - es6中允许设置一个对象的属性的时候不指定属性名
  177. - 不使用es6
  178. const name='xx',age='',city='shang';
  179. const student={
  180. name:name,
  181. age:age,
  182. city:city
  183. };
  184. console.log(student); //{name:'xx',age:'12',city:'shang'}
  185. - 使用es6
  186. const name='xx',age='',city='shang';
  187. const student ={
  188. name,
  189. age,
  190. city
  191. }
  192. console.log(student); //{name:'xx',age:'12',city:'shang'}
  193.  
  194. - Promise 异步编程的一种方案,必传统的callback更优雅,统一了用法,原生提供了Promise对象
  195. - 不使用es6
  196. 嵌套两个setTimeout函数
  197. setTimeout(function(){
  198. console.log('hello'); //1s后输出‘hello’
  199. setTimeout(function(){
  200. console.log('hi'); //2s后输出‘hi’
  201. },)
  202. },);
  203. - 使用es6
  204. var waitSecond = new Pormise(function(resolve,reject)
  205. {
  206. setTimeout(resolve,);
  207. });
  208.  
  209. waitSecond
  210. .then(function(){
  211. console.log("hello"); //1s后输出“hello”
  212. return waitSecond;
  213. })
  214. .then(function(){
  215. console.log("hi"); //2s后输出“hi”
  216. return waitSecond;
  217. });
  218. 上面的代码使用两个then来进行异步编程串行化,避免了回调地狱

------from muke

ES6的一些知识学习的更多相关文章

  1. Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习

    一  使用环境: windows 7 64位操作系统 二  IDE:VSCode/PyCharm 三  Vue.js官网: https://cn.vuejs.org/ 四  下载安装引用 方式1:直接 ...

  2. 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)

    紧接着:网络知识学习1 1.IP地址    IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...

  3. HTML5标签汇总及知识学习线路总结

    HTML5标签汇总,以及知识学习线路总结.

  4. 安全测试3_Web后端知识学习

    其实中间还应该学习下web服务和数据库的基础,对于web服务大家可以回家玩下tomcat或者wamp等东西,数据库的话大家掌握基本的增删该查就好了,另外最好掌握下数据库的内置函数,如:concat() ...

  5. GCC基础知识学习

    GCC基础知识学习 一.GCC编译选项解析 常用编译选项 命令格式:gcc [选项] [文件名] -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -c:仅执行编译操作,不进行连接操作: -o ...

  6. 毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构

    VHDL入门知识学习(一) VHDL程序基本结构 简介 VHDL程序基本结构 简介 概念: HDL-Hardware Description Language-硬件描述语言-描述硬件电路的功能.信号连 ...

  7. 「日常训练&知识学习」单调栈

    这几天的知识学习比较多,因为时间不够了.加油吧,为了梦想. 这里写几条简单的单调栈作为题解记录,因为单调栈的用法很简单,可是想到并转化成用这个需要一些题目的积淀. 相关博客参见:https://blo ...

  8. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  9. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

随机推荐

  1. CSS3-1

    css3 1  学习前置条件:html + css2 2  概述 *历史 css3 就是层叠样式表的目前的最高版本,带来了许多新特性.如,圆角.渐变.过渡.动画.新布局(多列布局缩进盒子等) // c ...

  2. Linux特殊符号

    第1章 回顾昨天 1.1 linux如何让一个服务/脚本开机自启动? chkconfig /etc/rc.local 1.2 被chkconfig管理 需要什么条件 1.2.1 必须放在/etc/in ...

  3. Mysql 了解changeBuffer 与 purge 调优

    需要删除.新增记录或更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InooDB 会将这些更新操作缓存在 change buffer中, ...

  4. 文件防删除保护(miniifiter)

    0x01 思路(原理) 驱动层文件保护的思路是通过minifilter过滤文件删除相关的IRP,并将目标文件与被保护文件相比较,命中保护规则的话返回STATUS_ACCESS_DENIED拒绝访问:也 ...

  5. jq后加标签的事件(live事件)

    在使用中  live可以对未来元素起作用(比如:js后加的div等)   live在jq1.9以上版本已经废除 原:$('#del').live('click',function(){}) 改:$(' ...

  6. xml的作用

    XML应用面主要分为两种类型,文档型和数据型.下面介绍一下几种常见的XML应用: 1.自定义XML+XSLT=>HTML,最常见的文档型应用之一.XML存放整个文档的XML数据,然后XSLT将X ...

  7. 当锚点定位遇上position: fixed

    <!DOCTYPE html><html> <head> <title>当锚点定位遇上position: fixed</title> < ...

  8. 配置Nim的默认编译参数 release build并运行

    配置Nim的默认编译参数 release build并运行 默认情况下nim编译是debug build,如果需要release build, 需要加上-d:release , release编译的命 ...

  9. elasticsearch(6) 映射和分析

    类似关系型数据库中每个字段都有对应的数据类型,例如nvarchar.int.date等等,elasticsearch也会将文档中的字段映射成对应的数据类型,这一映射可以使ES自动生成的,也是可以由我们 ...

  10. TCP学习总结(一)

    在学习的过程中,相信大家都有过“学了就忘“这种经历,又特别是TCP/IP知识点密集的通信协议,所以在此总结一下自己学到的皮毛,希望对自己对大家也有所帮助. 这篇博客主要讲运输层TCP和UDP的东西,I ...