10.1 ES6 的新增特性以及简单语法
ES6 的新增特性以及简单语法
- let 和 const
- 模板字符串
- 箭头函数
- 对象单体模式
- es6面向对象
- 模块化
let 和 const
之前一直用 var 来声明变量,ES6 新增 let 和 const
script type="text/javascript">
// let声明变量块级作用域,不能重复声明
// let声明的变量 是块级作用域,不能重复声明
// {
// // let a = 12;
// let a = 12;
// let a = 13;
// }
// console.log(a);
// var 的坑 ,循环的时候会按照最后一次的赋值
// var a = [];
// for (var i = 0; i < 10; i++) { //这里的 var i 换成 let i 即可解决
// a[i] = function () {
// console.log(i);
// };
// }
// a[6](); // var 10 ,let 6
// var 会发生变量提升
console.log(foo); // 输出undefined
var foo = 2;
// let 不发生变量提升
console.log(foo); // 报错 ReferenceError
let foo = 2;
// const 声明常量,一旦声明,立即初始化,不能重复声明。
const foo; // 没立即赋值,会报错
// const 声明是只读常量,不可更改
const P = 1
P = 2 // 报错无法更改
</script>
模板字符串
更加的简单的拼接字符串 用 ${} 来填入
<script>
var a = 1;
var b = 2; // var str = "哈哈哈哈" + a + "嘿嘿嘿" + b;
// ` xxx${}xxxx${}xxx` 注意反引号
var str = `哈哈哈哈${a}嘿嘿嘿${b}`;
console.log(str);
</script>
箭头函数
操作更加简单了,但是改变了特性造成了不便
<script>
// function(){} --等同于--- ()=>{} // 1.this的指向发生改变,指向了定义对象时的对象
// function(){} 的时候相当于 self
// ()=>{} 的时候相当于 windows对象
// 2.arguments不能使用,无法再通过 arguments 拿所有的参数
var person = {
name:'张三',
age: 18, fav:()=>{
console.log(this); // windows
console.log(arguments); // 报错不存在
}
}
person.fav();
</script>
对象单体模式
为了解决箭头函数的问题
(){} 完全等同于 function(){} 不再有上面的困扰了
<script>
var person = {
name:'张三',
age: 18, fav(){
console.log(this);
console.log(arguments);
}
}
person.fav();
</script>
ES6的面向对象
<script>
// 构造函数的方式创建对象
// function Animal(name,age){
// this.name = name;
// this.age = age; // }
// Animal.prototype.showName = function(){
// console.log(this.name);
// }
// Animal.prototype.showName2 = function(){
// console.log(this.name);
// }
// Animal.prototype.showName3 = function(){
// console.log(this.name);
// }
// Animal.prototype.showName4 = function(){
// console.log(this.name);
// }
// var dog = new Animal('日天',18) class Animal{
constructor(name,age){ // 必须要 constructor 初始化属性 类似于 init
this.name = name;
this.age = age;
} // 这一行一定不要加逗号
showName(){
console.log(this.name)
}
}
var d = new Animal('张三',19);
d.showName();
</script>
10.1 ES6 的新增特性以及简单语法的更多相关文章
- hive 0.10 0.11新增特性综述
我们的hive版本升迁经历了0.7.1 -> 0.8.1 -> 0.9.0,并且线上shark所依赖的hive版本也停留在0.9.0上,在这些版本上有我们自己的bug fix patch和 ...
- ES6/ES2015的一些特性的简单使
1.一些常用的ES6的特性: let, const, class, extends, super, arrow functions, template string, destructuring, d ...
- ES6(函数新增特性)
ES6(函数新增特性) 1.函数参数默认值 没有 y 时,默认就是world 有 y 时,输出值即可 (错误) (C有默认值,正确) 默认值后面不能再有没有默认值的变量 2.作用域 y 取其前面的 x ...
- Java SE 10 新增特性
Java SE 10 新增特性 作者:Grey 原文地址:Java SE 10 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...
- ES6相关新特性介绍
你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...
- ES6常用新特性
https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...
- ES6 && ECMAScript2015 新特性
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES201 ...
- 前端开发者不得不知的es6十大特性(转)
转载自AlloyTeam:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten ...
- 前端开发者不得不知的ES6十大特性
前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will- ...
随机推荐
- 如何解决Dynamics 365的错误:用户身份验证无效,MSIS0006
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复246或者20170312可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- mysql innodb存储引擎和一些参数优化
mysql 的innodb存储引擎是事务性引擎,支持acid.innodb支持版本控制和高并发的技术是svcc:需要重点注意:myisam只缓存索引,innodb缓存索引和数据:
- Android为TV端助力 UDP协议
废话不多说.直接上代码! 一. 接收端 1.创建UDP连接 public void init() { try { //开关的作用 isRunning = true; DatagramSocket mU ...
- 从零学习Flutter(一):初识Dart
Fluter是Google推出的跨平台开发App的一套框架,很多人都说,Google出品比属于金品,故,我也来凑凑热闹,Fluter是用Dart写的,所以在用Fluter之前,我们还是有必要简单了解一 ...
- [Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件
1.安装 pyinstaller 插件 cmd命令:pip install PyInstaller PS . o.o 不知道 easy_install 的百度吧. 2.pyinstaller 简介 他 ...
- 容器化系列 - GitLab启动和配置 on Docker
本文简单说明了如何在Docker容器中运行GitLab. 1 准备工作 1.1 下载镜像 $ docker pull docker.io/gitlab/gitlab-ce:latest 1.2 创建持 ...
- Linux 环境 Intelij Idea 安装与快捷图标配置
索引: 目录索引 参看代码 GitHub: intelij-idea.txt 一.Linux (DeepinOS) 环境 1.官网下载 ideaIU-.tar.gz 2.解压 .tar.gz -C ~ ...
- C#-事件event
目录 1. 简介 2.实际案例 2.1实际案例1 2.2实际案例2--带有参数的事件 3.标准事件的用法 3.1通过扩展EventArgs来传递数据 3.2代码实例 1. 简介 事件是一种类型安全的委 ...
- Redhat安装Oracle 11g (转)
1.1 安装前准备 1.1.1 修改操作系统核心参数 在Root用户下执行以下步骤: 1.1.1.1 修改/etc/security/limits.conf文件 输入命令:vi /et ...
- #022 Python 实验课
拍7游戏 描述 “拍7游戏”规则是:一堆人围成一圈,开始时,任意指定一人说出数字“1”后,一圈人按顺时针方向,每人按整数由小到大的顺序一人一个地报出后续数字“2”.“3”......,当遇到为“7”的 ...