ECMAScript 6基础
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基础的更多相关文章
- ECMAScript 初探 - 基础篇
ECMAScript 语言的标准是由 Netscape.Sun.微软.Borland 等公司基于 JavaScript 和 JScript 锤炼.定义出来的. ECMAScript 仅仅是一个描述,定 ...
- ECMAScript 6 基础
ECMAScript 6 基础 ECMAScript 6 简介 JavaScript 三大组成部分 ECMAScript DOM BOM ECMAScript 发展历史 https://develop ...
- ECMAScript 6 基础入门
0. ECMAScript 与 JavaScript ECMAScript (ECMA 262)是 JavaScript 语言标准的名字,ECMAScript 是标准,JavaScript 是各厂商的 ...
- ECMAScript/JS 基础知识讲解
闭包 下面这个方法能输入0 1 2 ... 9吗?显然是不可以的,输出结果是10个10. function test() { var arr = []; for(var i = 0; i < 1 ...
- JavaScript 基础第七天(DOM的开始)
一.引言 JavaScript的内容分为三个部分,这三个部分分别是ECMAScript.DOM.BOM三个部分组成.所谓ECMAScript就是JavaScript和核心基础语法,DOM是文档对象模型 ...
- Nodejs第一天-{Nodejs基础 深刻理解浏览器 环境变量 基础语法}
Nodejs第一天 1.什么是Nodejs Nodejs是一个可以运行(解析)ECMAScript的环境; ECMAScript是规定了一些列的语法 ,这些语法想要解析的执行就需要放在某个环境 ...
- javascript快速入门7--ECMAScript语法基础
ECMAScript的基础概念 熟悉Java.C和Perl这些语言的开发者会发现ECMAScript的语法很容易掌握,因为它借用了这些语言的语法.Java和ECMAScript有一些关键语法特性相同, ...
- css与js基础
CSS样式 1 宽高设置 块元素可使用 wid 1字体 font-family : 文本类型 font-size 字体大小 font-style 字体样式 斜体italic 正常norm ...
- HTML5学堂 全新的HTML5/前端技术分享平台
HTML5学堂 全新的HTML5/前端技术分享平台 HTML5学堂是做什么的? HTML5学堂~http://www.h5course.com~由多名热爱H5的讲师们组成的一个组织.致力于构建一个前端 ...
随机推荐
- Percona-XtraDB-Cluster-57 安装操作记录
一.PXC集群的一些特性 Percona官网服务器位于境外,访问很困难.本次安装使用的是其官网提供的最新版本5.7.23-31.31.1.el7,当前日期为2018.10.10. PXC集群中,存储引 ...
- Docker 使用笔记-常用基础命令
常用基础命令 环境:Linux Ubuntu 1.查看docker信息 docker version | docker info 2.启动docker服务 sudo systemctl start d ...
- gRPC in ASP.NET Core 3.x -- Protocol Buffer(2)Go语言的例子(上)
上一篇文章(大约半年前写的):https://www.cnblogs.com/cgzl/p/11246324.html 建立Go项目 在GOPATH的src下面建立一个文件夹 protobuf-go, ...
- javabst1an
(单选题)下列概念中不包括任何实现,与存储空间没有任何关系的是() A)类 B)接口 C)抽象类 D)对象 正确答案为:B解析:接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现 ...
- 深入理解JVM-类加载及类加载器
深入理解JVM 2020年02月06日22:43:09 - 记录学习过程 终于开始了.在学习这个之前,看了zhanglong老师的 java 8 和springboot 迫不及待了.先开始吧. 写在前 ...
- 视觉光盘,只有我可以贴全世界唯一,Windows上最高级的DOCKER客户端数字, 夜晚点击一个都没有,值班的小编辛苦了
继上一篇视觉光盘,只有我可以贴全世界唯一,你永远截不到的图片(小编请用人性化语言解释移出首页) 合体了 晚上的小编, 呆了吗? 我看到了少于150字的随笔不允许发布到网站首页 我决定了用我专业的龟式输 ...
- 【WPF学习】第四十四章 图画
通过上一章的学习,Geometry抽象类表示形状或路径.Drawing抽象类扮演了互补的角色,它表示2D图画(Drawing)——换句话说,它包含了显示矢量图像或位图需要的所有信息. 尽管有几类画图类 ...
- 第3章 JDK并发包(一)
3.1 多线程的团队协作:同步控制 3.1.1 synchronized的功能扩展:重入锁 重入锁可以完全替代synchronized关键字. 重入锁使用java.util.concurrent.lo ...
- Go语言实现:【剑指offer】顺时针打印矩阵
该题目来源于牛客网<剑指offer>专题. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 例如,如果输入如下4 X 4矩阵:1 2 3 4 5 6 7 8 9 10 11 ...
- 【python爬虫】windoes的爬虫中文乱码现象,通用转码解决
page = session.get(url="https://www.qidian.com/") page.encoding = page.apparent_encoding p ...