1.块级作用域(let

{

let fruit = “apple”;

}

console.log(fruit)

会报错,因为{ }大括号包含的区域为块级作用域,let在其中申明的变量只能在该块中生效

2.恒量声明(const

const fruit = "apple";

fruit = "banana";

console.log(fruit)

会报错,因为const声明的是恒量,不能被重新赋值,只能用方法改变,如const arr = [ ],可以使用arr.push()

3.结构写法

数组写法:

function breakfast() {

return ["cake", "tea", "apple"];

}

let [dessert, drink, fruit] = breakfast();

console.log(dessert, drink, fruit) ------ cake tea apple

对象写法:

function breakfast() {

return { dessert: "cake" , drink: "tea" , fruit: "apple"};

}

let {dessert: drink , drink: dessert , fruit: fruit} = breakfast();

console.log(dessert, drink, fruit) ------ tea cake apple

4.用法

当做展开的用法:

let fruits = ['apple', 'banana'],

foods = ['cake', ...fruits];

console.log(fruits) ------ ["apple", "banana"]

console.log(...fruits) ------ apple banana

console.log(foods) ------- ["cake", "apple", "banana"]

函数参数数组包容:

function breakfast(dessert, drink, ...foods) {

console.log(dessert, drink, foods) ------ cake tea ["apple", "pear"]

}

breakfast("cake", "tea", "apple", "pear")

5.字符模板

 let dessert="cake",drink="tea";

let breakfast=`今天早餐是${dessert}${drink}!`使用反引号包裹

console.log(breakfast) ------ 今天早餐是cake和tea!

查看字符串以什么开头:

console.log(breakfast.startsWith(‘今天’)) ------ true

查看字符串以什么结尾:

console.log(breakfast.endsWith(‘今天’)) ------ false

查看字符串以是否包含什么:

console.log(breakfast.includes(‘今天’)) ------ true

标签字符串:kitchen是设置的任意标签名

var dessert = "cake",drink = "tea";

var breakfast = kitchen `今天早餐是${dessert}和${drink}!`;

function kitchen(string, ...values) {

console.log(string); ------ ["今天早餐是", "和", "!", raw: Array[3]]

console.log(values); ------ ["cake", "tea"]

}

6.函数设置

设置函数参数的默认值:

function breakfast(drink = "tea", fruit = "apple") {

return `${drink} ${fruit}`;

}

console.log(breakfast()) ------ tea apple

console.log(breakfast("coffee", "banana")) ------ coffee banana

结构对象:

function breakfast(dessert, drink, {location,name}={}) { 设置默认值防止报错

console.log(dessert, drink, location,name) ------ cake tea 兰州 董小姐

}

breakfast("cake", "tea", {location:"兰州",name:"董小姐"})

name属性:

let func=function breakfast() { }

console.log(func.name) ------ breakfast

Arrow Functions 箭头函数:

let breakfast = (dessert, drink) => {

console.log(dessert + drink) ------ caketea

return dessert

}

console.log(breakfast('cake', 'tea')) ------ cake

let lunch = (dessert, drink) => dessert

console.log(lunch('cake', 'tea')) ------- cake

创建对象属性中的函数

let dessert = 'cake' , drink = 'tea';

let food = {

dessert,

drink,

 breakfast() { }  类似于breakfast: function() { }

}

console.log(food) ------ Object {breakfast: () , dessert: "cake" , drink: "tea"}

console.log(food.breakfast) ------ breakfast() {}

迭代next()

function* chef(foods) {  function后面加上*

for (var i = 0; i < foods.length; i++) {

yield foods[i];

}

}

let dinner = chef(["egg" , "apple"])

console.log(dinner.next()) ------ Object {value: "egg", done: false}

console.log(dinner.next()) ------ Object {value: "apple", done: false}

console.log(dinner.next()) ------ Object {value: undefined, done: true}

7.对象设置

设置具有空格的属性名:

let food={};

// food.hot drink="tea";   直接设置会报错

food['hot drink']="tea";

console.log(food) ------ Object {hot drink: "tea"}

判断相等:

console.log(+0 === -0) ------ true

console.log(Object.is(+0, -0)) ------ false

console.log(NaN === NaN) ------ false

console.log(Object.is(NaN, NaN)) ------ true

属性赋值:

let breakfast = {}

Object.assign(

breakfast,

{drink: 'beer'},

{fruit: 'apple'},

{fruit: 'pear'}  此处会替换上面设置的apple

)

console.log(breakfast) ------ Object {drink: "beer", fruit: "pear"}

判断设置对象的prototype

let breakfast = {

getDrink() { return "beer" }

}

let lunch = {

getDrink() { return "tea" }

}

let sunday = Object.create(breakfast);

console.log(sunday.getDrink()); ------ beer

console.log(Object.getPrototypeOf(sunday) === breakfast) ------ true

Object.setPrototypeOf(Sunday , lunch);

console.log(sunday.getDrink()); ------ tea

console.log(Object.getPrototypeOf(sunday) === lunch) ------ true

设置对象的__proro__

let breakfast = {

getDrink() { return "beer" }

}

let lunch = {

getDrink() { return "tea" }

}

let sunday = { __proto__:breakfast }

console.log(sunday.getDrink()); ------ beer

console.log(Object.getPrototypeOf(sunday) === breakfast) ------ true

sunday.__proto__=lunch;

console.log(sunday.getDrink()); ------ tea

console.log(Object.getPrototypeOf(sunday) === lunch) ------ true

sunday = {

__proto__: breakfast,

getDrink() {

return super.getDrink() + "tea";  super可以执行之前设置的方法

}

}

console.log(sunday.getDrink()); ------ beertea

8.class

创建一个类:

class chef {

constructor(food) {

this.food = food;

this.dish = [];

}

set menu(dish) {

this.dish.push(dish);

}

get menu() {

return this.dish

}

cook() {

console.log(this.food); ------ apple

}

static cook2(food) {  设置静态的方法

console.log(food) ; ------ orange

}

}

let dinner = new chef("apple")

dinner.cook();

console.log(dinner.menu = "banana"); ------ banana

console.log(dinner.menu = "pear"); ------ pear

console.log(dinner.menu); ------ [‘banana’ , ‘pear’]

chef.cook2("orange") 调用静态方法

类的继承:

    class Person {

constructor(name, birthday) {

this.name = name;

this.birthday = birthday;

}

intro() {

return `${this.name},${this.birthday}`;

}

}

 class Chef extends Person Chef通过extends继承Person的内容

constructor(name, birthday) {

super(name, birthday);   执行Person中的内容

}

}

let dinner = new Chef('Tom', '1992-03-07');

console.log(dinner.intro()); ------ Tom,1992-03-07

9.创建一个Map

let food = new Map();

let fruit = {} , cook = function() {} , dessert = 'cake';

food.set(fruit, 'apple');

food.set(cook, 'fork');

food.set(dessert, 'cake');

console.log(food); ------ Map {Object {} => "apple", function => "fork", "cake" => "cake"}

console.log(food.size); ------ 3

console.log(food.get(fruit)); ------ apple

food.delete(dessert);

console.log(food.has(dessert)); ------ false

food.forEach((value, key) => {

console.log(`${key}=${value}`);

})

------ [object Object]=apple

------ function () {}=fork

food.clear();

10.模块导入需要使用辅助工具,查阅相关文档

ES6(ECMAScript2015) 基础知识 浅析的更多相关文章

  1. Ajax基础知识 浅析(含php基础语法知识)

    1.php基础语法    后缀名为.php的文件 (1) echo   向页面中输入字符串  <?php    所有php相关代码都要写在<?php ?>这个标签之中 echo &q ...

  2. Nodejs 基础知识 浅析

    1. 模块化 ①常用模块化规范 CommonJS + nodejs AMD(Asynchronous Module Definition) + RequireJS CMD(Common Module ...

  3. es2015(es6)基础知识整理(更新中...)

    1.let let可以声明块级作用域变量 'use strict'; if (true) { let app = 'apple'; } console.log(app); //外面是访问不到app的 ...

  4. ES6的基础知识总结

    一. ES6 ES6中定义变量使用 let/const let 使用let定义的变量不能进行"变量提升" 同一个作用域中,let不能重复定义相同的变量名 使用var在全局作用域中定 ...

  5. ES6的基础知识(一)

    1.ECMAScript 6.0(以下简称ES6). 2.ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的其中一种实现. 3.对ES6支持的浏览器:超过 90% ...

  6. es6 generator 基础知识

    1.定义和使用 function *gen() { return 'first generator'; } // 有点类似类的实例化过程 let generatorResult = gen() // ...

  7. Echarts 基础知识浅析

    1. 引入Echarts Echarts是基于canvas的数据可视化产品,由百度公司推出 参考官方文档,引入教程示例即可,注意有两种引入方式: (1)直接引入 (2)模块化引入 2. 基本API使用 ...

  8. Angular1 基础知识 浅析(含锚点)

    1.angular:前端js框架  https://angularjs.org ① SPA单页应用程序 通过ajax从后台获取数据,动态渲染页面,不出现白屏,提高效率,节省流量 (1)锚点值 锚点:是 ...

  9. canvas2D 基础知识 浅析

    1.canvas HTML5给出的一个可以展示绘图内容的标签 使用领域: (推荐网站:threejs.org) 1. 游戏   2. 可视化数据  3. Banner广告  4. 多媒体 (1)在 c ...

随机推荐

  1. 2018春季校园招聘笔经面经合集:Java开发岗

    2018春季校园招聘笔经面经合集:Java开发岗 以下为精选面经: 美团外卖配送部后台开发面经 nowcoder.com/discuss/76 春招总结,干货满满 nowcoder.com/discu ...

  2. laravel跨域问题

    // 只有同源策略才允许发送cookies // header('Access-Control-Allow-Credentials:true'); 需要要index.php下开启 最近写登录图形验证码 ...

  3. HDFS伪分布式环境搭建

    (一).HDFS shell操作 以上已经介绍了如何搭建伪分布式的Hadoop,既然环境已经搭建起来了,那要怎么去操作呢?这就是本节将要介绍的内容: HDFS自带有一些shell命令,通过这些命令我们 ...

  4. [OpenCV]DMatch类和KeyPoints类:特征点匹配

    DMatch struct CV_EXPORTS_W_SIMPLE DMatch { CV_WRAP DMatch() : queryIdx(-), trainIdx(-), imgIdx(-), d ...

  5. 以太坊remix IDE安装步骤

    Remix 以太坊Solidity IDE搭建与初步使用 以太坊: 因为以太坊为开源社区,虽然东西很优秀,但是组件十分的杂乱,因此首先简单介绍下以太坊的一些常用组件: Geth: Geth是由以太坊基 ...

  6. Go基础篇【第2篇】: 内置库模块 fmt

    fmt官方文档说明:https://studygolang.com/pkgdoc import "fmt" mt包实现了类似C语言printf和scanf的格式化I/O.格式化动作 ...

  7. linux备忘录-日志档案

    linux的日志档案 linux的日志档案记录系统或程序在运行过程中产生的一些信息,例如事件的记录,错误的记录等等.特别是在发生错误时,我们可以通过日志档案找到错误发生的根源,例如当我们无法启动邮件服 ...

  8. 【集训试题】exam 信心考 最小割

    题意概述: 有N个人,A,B两个考场.如果学生i在A考场,总信心值增加xi:如果学生i在B考场,总信心值增加yi.其中还有m对好友,当第i对好友的两个人都在A考场时,总信心值增加ai:如果两人都在B考 ...

  9. C++内置类型如何存放于计算机内存中

    摘要:内置类型的机器实现.字/字节/比特.内存 一.概念 计算机以比特序列存储数据,每个比特非0即1,如:00011011011100010110010000111011... 二.计算机以块来处理内 ...

  10. 数据结构7——BFS

    一.重拾关键 宽度优先搜索,也有称为广度优先搜索,简称BFS.类似于树的按层次遍历的过程. 初始状态:图G所有顶点均未被访问过,任选一点v. 遍历过程:假设从图中某顶点v出发,在访问了v之后依次访问v ...