ES6(简单了解)
1、import类似于var,不过是定义对外接口的,接受外部的文件。
import xx from xx ,有点像var i =3;
如import profile from './profile';
2、export default 就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字。(es6中导入使用import,导出使用export)
3、let 声明的变量 只在let命令所在的代码块内有效。
所以let变量 一般用于for循环,避免循环变量泄露为全局变量 https://blog.csdn.net/yu452148611/article/details/53897361
4、模板字符串 : 用 ` `来表示,与es5,字符串相比,多了,解析空格、和变量(插值)的能力、
5、Number全局对象 : ES6将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。
6、函数变化 : ES6允许为函数的参数设置默认值,即直接写在参数定义的后面。
function log(x, y = 'World') {
console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello
7、箭头函数:
var f = () => 5;
// 等同于
var f = function () { return 5 }; var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
return num1 + num2;
}; const full = ({ first, last }) => first + ' ' + last; // 等同于
function full(person) {
return person.first + ' ' + person.last;
}
总结:(个人观点) 箭头函数是特殊的匿名函数,和前面的 = 号没关系(=号只是赋值),箭头前面是形参,后面是返回值。
箭头函数里面没有 this对象,所以在里面出现 this,那使用的就是上一层作用域链的 this对象。(类似变量的作用域链)
函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
https://www.cnblogs.com/lianjq/p/6527039.html
8、对象 :
1、 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁
var birth = '2000/01/01';
var Person = {
name: '张三',
//等同于birth: birth
birth,
// 等同于hello: function ()...
hello() { console.log('我的名字是', this.name); }
};
2、属性名表达式,ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内。
(个人)相当于属性名也可以动态生成了
let propKey = 'foo';
let obj = {
[propKey]: true,
['a' + 'bc']: 123
};
9、rest 参数 : https://www.cnblogs.com/garfieldzhong/p/8056692.html
es5中,函数声明的时候不设 形参(或不知道需要参数不定的时候),调用时有实参 且 函数里面用到传递过来的参数。函数里获取传递过来的参数需要使用 arguments这个
类数组对象表示对应的实参。
使用 rest 参数 就可以不用 arguments 数组对象,可以使用自定义的数组对象。(这样就解决了箭头函数中没有arguments 数组对象,而需要这个功能的问题)
// arguments变量的写法
function sortNumbers() {
return Array.prototype.slice.call(arguments).sort()
} // rest参数的写法
const sortNumbers = (...numbers) => numbers.sort(
10、扩展运算符 : 扩展运算符(spread)是三个点(…)。它好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列。
https://blog.csdn.net/yu452148611/article/details/53897361
function push(array, ...items) {
array.push(...items);
}
function add(x, y) {
return x + y;
}
var numbers = [4, 38];
add(...numbers) //
11、变量的解构赋值 (以后再深入了解,不常用)
12、map 函数: js 数组 map方法 参考链接
map函数的作用可以看做是简化forEach方法遍历数组的功能。
ES7+ES8 参考:https://www.jianshu.com/p/13c5d002478b
ES6(简单了解)的更多相关文章
- koa2入门--01.ES6简单复习、koa2安装以及例子
1.ES6简单复习 /*let 和 const: let用于定义一个块作用域的变量,const 定义一个常量 */ let a = 'test'; const b = 2; /*对象的属性和方法的简写 ...
- ES6简单语法
ES6 简单语法: 变量声明 ES5 var 声明变量为全局变量 会变量提升 ES6 let 声明的变量为块级变量 且不能重复声明 不存在变量提升 # {}一个大括号为一个作用域 ES6 const ...
- es6简单介绍
1.ECMAScript 6 简介 2.let和const命令 3.变量的解构赋值 4.字符串的扩展之模板字符串 5.正则的扩展 6.数值的扩展 7.函数的扩展 8.数组的扩展 9.对象的扩展 10. ...
- Vue学习【第二篇】:ES6简单介绍
ECMAScript 6简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript ...
- ES6简单入门
let let命令用来声明块级作用域. 以前的JavaScript只有全局作用域和函数作用域, 没有块级作用域. // 示例1: if (1) { var a = "hello"; ...
- ES6简单理解基本使用
let const 原来的var声明标识符:可以重复声明,编译不报错. let,const声明标识符:不能重复声明,再声明编译报错. var声明的标识符作用域是当前函数,let和const是当前{块} ...
- ES6——简单的多态
简单的多态 多态: 1.同一个接口,在不同情况下做不一样的事情:相同的接口,不同的表现: 2.接口本身只是一组定义,实现都是子类里面:需要子类去实现的方法(子类只需重写与父类同名的方法,即可达到覆盖的 ...
- ES6简单总结
1.变量声明let和const 我们都是知道在ES6以前,var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: functi ...
- ES6简单初识
ES常用命令介绍 函数的Rest参数和扩展 Promise使用 Module.exports和ES6 import/export的使用 promise使用 promise 为了解决callback嵌套 ...
- es6简单小复习
Ecmascript 6 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了. Ecmascript 是 JavaScript 语言的 ...
随机推荐
- ribbon学习
spring cloud 中的负载均衡有ribbon和feign 引入ribbon依赖 <!--ribbon相关--> <dependency> <groupId> ...
- Python基础教程(010)--第一个程序Hello Python
前言 会编写Hello Python源程序 内容 1,在桌面下,新建Python目录 2,在认识的Python目录下,新建一个HelloPython的文件 linux下: touch HellPyth ...
- SQL必知必会——创建和操纵表(十七)
1.创建表 一般有两种创建表的方法: 多数DBMS都具有交互式创建和管理数据库表的工具表也可以直接用SQL语句操纵1.1.表创建基础 CREATE TABLE products( prod_id,CH ...
- 【C#技术】一篇文章搞掂:Infragistics组件库
工具栏 // 按钮不可按 tool.SharedProps.Enabled = false; Grid // Grid中记录时间 // 建议SQL Server中使用字符字段(没有深入测试,只是字符字 ...
- HTML5: HTML5 内联 SVG
ylbtech-HTML5: HTML5 内联 SVG 1.返回顶部 1. HTML5 内联 SVG HTML5 支持内联 SVG. 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Ve ...
- mybatis原理与设计模式-日志模块- 适配器模式
在讲设计模式之前,得先知道java程序设计中得六大原则,才能更好得理解我们得系统为什么需要设计模式 1 单一职责原则 一个类只负责一种职责,只有这种职责的改变会导致这个类的变更.绕口一点的正统说法:不 ...
- 如何用QTP录制鼠标右键点击事件
QTP录制鼠标右键单击事件要通过模拟键盘操作来实现 Step 1,修改ReplayType为2,一般情况默认设置是1的.(1 – 使用浏览器事件运行鼠标操作. 2 – 使用鼠标运行鼠标操作)Setti ...
- Django 模型中的CRUD
一.通过 ORM 向 DB 中增加数据 1.Entry.objects.create(属性=值,属性=值) Entry:具体要操作的Model类 ex: Author.objects.create(n ...
- jmeter 不同线程组之间传递变量2
方法1 通过变量传递参数: 第一个脚本: HTTP Request_新建出差申请单_登录,关联出参数token.companyId.userId.userName 1.添加后置处理器:BeanShe ...
- Scala 槽点 - require
require def this(name: String, age: Int) = { this() require(name != null && !name.isEmpty, & ...