ECMAScript 和 JavaScript 是什么关系?

  1996 年 11 月,JavaScript 的创造者 Netscape 公司,希望JavaScript能够成为国际标准,将其提交给标准化组织 ECMA。次年,ECMA 发布了ECMAScript 1.0 版。不叫 JavaScript的原因:一是商标,JavaScript 已被 Netscape 公司注册为商标;二是体现其制定者是 ECMA,不是 Netscape,有利于保证其的开放性和中立性。

  

 let 和 const 命令

let声明变量

  块状作用域(任意大括号包含的变量都只在大括号里起作用,超出则报错)

{let a=20;}

console.log(a);//报错

//使用var
var a = []; for (var i = 0; i < 5; i++) { a[i] = function () { console.log(i); }; } a[3](); // 结果为5
//使用let
var a = []; for (let i = 0; i < 5; i++) { a[i] = function () { console.log(i); }; } a[3](); // 结果为3

  不能重复声明

let a=20;

let a=10;

console.log(a);//报错

  没有变量提升

console.log(a);//报错

let a=20;

  暂时性死区(在代码块内,使用let命令声明变量之前,该变量都是不可用的),简称TDZ

var a = 123;

if (true) {

    a = 'abc';

    let a;//在let命令声明变量a之前,都属于变量a的“死区”。

}

const 声明常量(声明一个只读的常量。一旦声明,常量值不可变)

  声明必须同时赋值

const a;

a=20;

console.log(a);//报错

  const 声明与 let 声明一样:无变量提升、块级作用域、暂时性死区、不可重复声明。

字符串的扩展

模板字符串

var y = 2018,m = 5,d = 7;

var str = `今天是${y}年${m}月${d}日`;

部分新方法

var str = "hello";

//判断是否包含某指定的字符

var res1 = str.includes("d");//res1结果为 false

//判断是否以某字符开头

var res2 = str.startsWith("e");//res2结果为 false
//判断是否一某字符结尾 var res3 = str.endsWith("o");//res3结果为 true //让字符串重复几次 var res4 = str.repeat(3);//res4结果为 hellohellohello

函数的扩展

默认值

//函数的默认值

function fn(a,b = 20) {

    console.log(a,b);

}

fn(10);//结果为10 20

剩余参数

//剩余参数

function fn(a,...b) {

    console.log(a,b);

}

fn(10,[2,3,4]);//结果为 

箭头函数

//有参数

var fn1=num=>num;//相当于var fn1=function(num){return num;}
//无参数
var fn2=()=>10;//相当于var fn2=function(){return 10;}
//多个参数
var fn3=(num1,num2)=>num1+mun2;//或者var fn3=(num1,num2)=>{return num1+num2};
//map的用法
[1,2,3].map(num=>num*2);//相当于var fn=[1,2,3].map(function(num){return num*2;});

set方法

Set是一个构造函数,可创建出类似于数组的数据结构一般用于创建不重复的数组

//创建set数组

var arr=new Set([1,2,3]);

//添加数据

arr.add(4);

//删除指定数据

arr.delete(4);//判断数组是否有某指定元素

var res=arr.has(2);//res 结果为 true
//控制台输出数组元素 for(let [key,value] of arr.entries()){ console.log(value); }
//删除所有元素
arr.clear();

promise 的用法

回调函数

function a(callBack) {

    console.log("我是主函数");

    callBack();

}

function b() {

    console.log("我是回调函数")

}

a(b);

多层回调

function run() {

  var obj=new Promise(function (resolve,reject) {

    resolve("运行成功的函数");

    reject("运行失败的函数");

  })

  return obj;

}

run().then(function () {

  //执行一些功能

}).then(function () {

  //再执行一些功能

})

类与继承

class Person{

  constructor(name,age){

    this.name=name;

    this.age=age;

  }

  static tell(){

    alert("hello");

  }

  say(){

    alert(this.name+this.age);

  }

}

var per=new Person("David",23);

console.log(per.name);

per.say();

//static修饰的方法是类直接调用的不能用new出来的对象调用Person.tell();

class Student extends Person{

  constructor(name,age,score){

    super(name,age);

    this.score = score;

  }

  show(){

    alert(this.name + this.score);

  }

}

var stu=new Student("Nancy",24,80);

stu.show();

stu.say();

ECMAScript 6基础的更多相关文章

  1. ECMAScript 初探 - 基础篇

    ECMAScript 语言的标准是由 Netscape.Sun.微软.Borland 等公司基于 JavaScript 和 JScript 锤炼.定义出来的. ECMAScript 仅仅是一个描述,定 ...

  2. ECMAScript 6 基础

    ECMAScript 6 基础 ECMAScript 6 简介 JavaScript 三大组成部分 ECMAScript DOM BOM ECMAScript 发展历史 https://develop ...

  3. ECMAScript 6 基础入门

    0. ECMAScript 与 JavaScript ECMAScript (ECMA 262)是 JavaScript 语言标准的名字,ECMAScript 是标准,JavaScript 是各厂商的 ...

  4. ECMAScript/JS 基础知识讲解

    闭包 下面这个方法能输入0 1 2 ... 9吗?显然是不可以的,输出结果是10个10. function test() { var arr = []; for(var i = 0; i < 1 ...

  5. JavaScript 基础第七天(DOM的开始)

    一.引言 JavaScript的内容分为三个部分,这三个部分分别是ECMAScript.DOM.BOM三个部分组成.所谓ECMAScript就是JavaScript和核心基础语法,DOM是文档对象模型 ...

  6. Nodejs第一天-{Nodejs基础 深刻理解浏览器 环境变量 基础语法}

    Nodejs第一天 1.什么是Nodejs ​ Nodejs是一个可以运行(解析)ECMAScript的环境; ​ ECMAScript是规定了一些列的语法 ,这些语法想要解析的执行就需要放在某个环境 ...

  7. javascript快速入门7--ECMAScript语法基础

    ECMAScript的基础概念 熟悉Java.C和Perl这些语言的开发者会发现ECMAScript的语法很容易掌握,因为它借用了这些语言的语法.Java和ECMAScript有一些关键语法特性相同, ...

  8. css与js基础

    CSS样式 1 宽高设置 块元素可使用 wid 1字体 font-family :  文本类型 font-size     字体大小 font-style 字体样式 斜体italic   正常norm ...

  9. HTML5学堂 全新的HTML5/前端技术分享平台

    HTML5学堂 全新的HTML5/前端技术分享平台 HTML5学堂是做什么的? HTML5学堂~http://www.h5course.com~由多名热爱H5的讲师们组成的一个组织.致力于构建一个前端 ...

随机推荐

  1. mvc jQuery 点击按钮实现导出Excel功能 参数长短不限

    var exportSubmit=function(url, obj){ var form = $("<form>"); //定义一个form表单 form.attr( ...

  2. Maven 项目无法在Ecplise加进tomcat server

    当把用Maven项目 加进 tomcat server 时,出现 "There are no resources that can be added or removed from the ...

  3. 三、 TCP(传输控制协议)

    它建立在网际层协议(IP)提供的数据包传输技术之上,.TCP使应用程序可使用连续的数据进行通信.除非由于网络故障导致连接中断或冻结,TCP都能保证数据流完好地传输.而不会发生丢包 ,重包或是乱序的问题 ...

  4. 【原创】(二)Linux进程调度器-CPU负载

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  5. springboot结合Docker部署

    工程目录 创建Dockerfile FROM java VOLUME /tmp ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar RUN bash -c ...

  6. 2020-02-20Linux学习日记,第二天

    在内容开始前请教一下博客园的大佬.编辑器中没有看到格式刷,要怎么不连续的选中内容给予想要的格式,有看到的麻烦私信解答一下,谢谢! ----------------------------------- ...

  7. 【Java并发工具类】CountDownLatch和CyclicBarrier

    前言 下面介绍协调让多线程步调一致的两个工具类:CountDownLatch和CyclicBarrier. CountDownLatch和CyclicBarrier的用途介绍 CountDownLat ...

  8. Uncaught Error: Call to undefined function mcrypt_get_iv_size() 解决办法

    函数 mcrypt_get_iv_size 在只在(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0) 这几个版本 ...

  9. 【笔记】Git简明教程

    前言 Git这个东西我曾经有学过,但学的内容太多了,有点懵,不太理解,磕磕碰碰的,走了不少弯路.不过最近我在B站上发现了一个讲的很好的教程:<表严肃讲Git>.因此,我决定用文字的方式分享 ...

  10. Linux中awk抽取包含某字段的整行日志

    命令示例:awk '{if($0~"listAuths") print}'   xxx.log 解释说明:抽取xxx.log整个日志文件中,包含“listAuths”的行,打印输出