ES6/ES2015,,在ES5的基础上扩展了很多新的功能,在使用的时候要慎重,因为有一部分js代码在部分浏览器是不兼容的,但是所有写在服务器端的代码基本上都支持ES6的写法.

新特性:

一.开启严格模式

在函数的第一行加上"use strict"字符串,如果需要整个js代码中开启,就在js第一行加上这一段字符.

设置"严格模式"的目的,主要有:

  • 清除javascript语法的一些不合理,不严谨之处,减少怪异行为
  • 清楚代码运行的一些不安全之处,保证代码运行的安全.
  • 提高编译效率,增加运行速度
  • 为未来新版本的javascript做好铺垫.

注意:

在正常模式下可以直接使用为未声明的变量 严格模式不行

name="jhon";
console.log(name);
//输出jhon

在正常模式下一个方法可以有很多个同名参数 严格模式不行

function fn(aa,aa,bb){
return aa+aa+bb;
}
console.log(fn("11","22","33"));
//输出222233

二.定义变量使用let(类似var)

javascript中的var:

  • var声明的变量会有变量提升
  • var没有块级作用域
  • var可以多次重复定义一个变量

这些声明在后天开发语言是不允许的,为了规范变量的声明ES6退出了新的关键字let代替var的声明变量.

let的特点:

  • let声明的变量不会有变量提升
  • let存在块级作用域
  • let不能多次重复定义变量

三.定义常量const

常量是指不会改变的数据.

常量const的特点:

  • 值不能再改变
  • 常量具有块级作用域
  • 不要在块级作用域中声明常量
  • 没有变量提升,要先声明后使用
  • 不可以声明同名的常量
  • 一定要赋初始值,否则会报错
  • 如果声明的是常量是一个对象,只要对象的地址不改变,其内部的属性可以改变

四.字符串的扩展

如果要判断字符串”hello word”中是否存在”word”,用字符串中的方法只有indexOf,在ES6中又为我们提供了其它的方法:

  • includes()->返回布尔值,用于判字符串是否包含某些字符串
  • startsWith()->返回布尔值,用于判断字符串是否以某些字符开头
  • endWith()->返回布尔值,用于判断字符串是否以缪谢字符结尾.有两个参数(字符串,数值)->("o",3)用于判断下标3的字符串是否是"0".
  • repeat()->传入一个数字,将字符串重复数字对应的次数返回.

注意:传入的是正小数,数字会被向下取整;传入字符串类型的数值("5"),可以,传入("5a")不可以当空处理;不能传入负数.

五.模块语法:"模块字符串"

结构:`模板内容${code}`

注意:code可以是变量,方法名,js表达式

 //变量
let name='jack';
let temp=`我叫${name}`;
//temp==>我叫jack //表达式
let a=1;
let b=1;
let temp=`a+b的和是$(a+b)`;
//temp==>2 //方法
function getName(){
return 'jack';
}
let temp=`我叫${getName()}`;
//temp==>jack

六.箭头函数 0=>{}

为了方便书写,es6规定了一种新的写法来简化匿名函数:去掉function改为=>,结构为()=>{}

过程一:去掉function关键字

arr.each(function(m,n){
              console.log(n)

});

得到:arr.each((m,n)=>{console.log(n);});

过程二:如果只有一句代码可以去掉大括号和return关键字

得到: arr.each((m,n)=>console.log(n));

过程三:如果参数只一个,可以将参数中的小括号去掉。

得到: arr.each(n=>console.log(n))

过程四:如果代码只有一句,并且代码中return,可以去掉return.

得到: arr.sort((n,m)=>n-m);

注意:箭头函数没有固定的写法,它是根据当前方法的参数和方法的返回值来的

箭头函数中this指向问题:

  • 箭头函数没有自己的this,函数体内部写的this,会顺着作用域去找最近真实存在的this。

  • 箭头函数内部的this是定义时所在的对象,而不是使用时所在的对象,并且不会改变。

  • 箭头函数不能作为构造函数
  • 箭头函数中不存在arguments,箭头函数中的argument指向的是外层的arguments.

未完,待续...

ECMAscript6(ES6)新特性语法总结(一)的更多相关文章

  1. 34.js----JS 开发者必须知道的十个 ES6 新特性

    JS 开发者必须知道的十个 ES6 新特性 这是为忙碌的开发者准备的ES6中最棒的十个特性(无特定顺序): 默认参数 模版表达式 多行字符串 拆包表达式 改进的对象表达式 箭头函数 =&> ...

  2. 浅谈ES6新特性

    ES6的了解 新增模板字符串(为JavaScript提供了简单的字符串插值功能).箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs.).for-o ...

  3. ES6新特性概览

    本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...

  4. ES6新特性简介

    ES6新特性简介 环境安装 npm install -g babel npm install -g babel-node //提供基于node的REPL环境 //创建 .babelrc 文件 {&qu ...

  5. 必须掌握的ES6新特性

    ES6(ECMAScript2015)的出现,让前端开发者收到一份惊喜,它简洁的新语法.强大的新特性,带给我们更便捷和顺畅的编码体验,赞! 以下是ES6排名前十的最佳特性列表(排名不分先后): 1.D ...

  6. 你不知道的JavaScript--Item24 ES6新特性概览

    ES6新特性概览 本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代 ...

  7. javascript ES6 新特性之 扩展运算符 三个点 ...

    对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() ...

  8. 前端入门21-JavaScript的ES6新特性

    声明 本篇内容全部摘自阮一峰的:ECMAScript 6 入门 阮一峰的这本书,我个人觉得写得挺好的,不管是描述方面,还是例子,都讲得挺通俗易懂,每个新特性基本都还会跟 ES5 旧标准做比较,说明为什 ...

  9. ES6新特性概览1

    本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...

随机推荐

  1. [转]dataTables-使用详细说明整理

    本文转自:http://blog.csdn.net/mickey_miki/article/details/8240477 本文共四部分:官网 | 基本使用|遇到的问题|属性表 一:官方网站:[htt ...

  2. 细讲递归(recursion)

    首先先对递归进行入门. 递归是以自相似的方式重复项目的过程.在编程语言中,如果程序允许您在同一函数内调用函数,则称其为函数的递归调用. 简而言之,递归就是函数的自身调用.可以看看下面的递归使用: vo ...

  3. Qt 学习

    Qt 学习 C++ 模版 QObject 提供一个十分有用的 api,T findChild(QString, Qt::FindChildOptions),这个函数接收一个模版参数,返回模版参数的类型 ...

  4. GET和POST区别(转)

    作者:silence链接:https://www.zhihu.com/question/28586791/answer/153556269来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  5. html 01前沿-web介绍

    1. 认识网页 网页主要由文字.图像和超链接等元素构成.当然,除了这些元素,网页中还可以包含音频.视频以及Flash等. 2. 浏览器(显示代码) 浏览器是网页显示.运行的平台,常用的浏览器有IE.火 ...

  6. dedecms无法下载远程jpeg图片 织梦不能提取文章内容中的jpeg图片生成缩略图

    文件:/dede/inc/inc_archives_functions.php 代码: preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\. ...

  7. Promise对象(异步编程)

    Promise对象解决函数的异步调用(跟回调函数一样) 三种状态: 未完成(pending)已完成(fulfilled)失败(rejected) 通过then函数来链式调用 目前市面上流行的一些类库:

  8. Linux 两组信号对比

    博客逐步迁移到,独立博客,原文地址 http://www.woniubi.cn/two_groups_signal_difference/ 之前看信号的时候,没有太注意不同信号的对比.今天再次看到的时 ...

  9. cocos2d-x游戏之2048

    学习游戏编程是一件非常有趣的事情,在cocos2dx官网找了几个简单的游戏试试手,感觉也不是那么难,首先来看看2048这款游戏吧,很火的原因之一是因为它简单而易操作.网上这位Legendof1991大 ...

  10. django 定制admin

    https://www.cnblogs.com/liwenzhou/p/9519321.html