ES6基础一
声明方式
var和let的区别
1,var用来声明全局变量,let用来声明局部变量:
2,var可以提升变量,let声明的变量不在变量提升:
const声明常量
变量解构赋值
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。
数组解构赋值
例如上面要为三个变量赋值,我们就可以使用变量解构赋值:
在使用数组解构的时候,个数可以不一致,但是格式需要保持一致:
对象解构赋值
数组是按照顺序进行赋值的,所以需要保持左右两边形式一致;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
如果在解构之前就定义了变量,这时候你再解构会出现问题,需要在解构的语句外边加一个圆括号:
默认值
解构赋值是允许我们使用默认值的:
undefined和null的区别
undefined相当于什么都没有,能接受默认值;null相当于有值,但值为null
...运算符
对象扩展运算符(…)
当编写一个方法时,如果使用对象扩展运算符来作参数,就能允许它传入的参数是不确定的:
拷贝赋值
上面这种情况在刚学习js的时候是常常会碰见的,因为我们这是对内存堆栈的引用,而不是真正的赋值,如果我们希望这个时候只改变数组b而不改变a,可以使用下面的方法:
但是使用了对象扩展运算符之后,就可以使用下面这种方法:
rest运算符(...)
rest运算符和对象扩展运算符有很多相似之处,下面列举rest运算符的简单用法:
字符串模板
字符串拼接
在ES5中,我们会采用下面的方式进行字符串拼接:
在ES6中,我们可以使用字符串模板拼接字符串,并且还支持html标签:
字符串查找
在ES5中,我们可以利用indexOf的返回值,来判断字符串中是否包括某个字符,在获取结果后还需要再进行一次判断。
在ES6中,可以通过includes直接进行判断了,并且还可以通过startsWith和endsWith来判断开头和结束为止的判断:
ES6基础一的更多相关文章
- ES6 基础
转载自:ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来 ...
- 新手必看ES6基础
ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两 ...
- ES6基础语法
1. 什么是ECMAScript ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association ...
- 从零开始学 Web 之 ES6(四)ES6基础语法二
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 ES6(五)ES6基础语法三
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 ES6(六)ES6基础语法四
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- ES6 基础学习
ECMAScript 6 标准入门 一.let和const let命令 let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效:是块级作用域,且let不允许 ...
- ES6基础-ES6 class
作者 | Jeskson 来源 | 达达前端小酒馆 ES - Class 类和面向对象: 面向对象,即万物皆对象,面向对象是我们做开发一种的方式,开发思维,面向对象的思维中万物皆对象,以人作为例子,它 ...
- ES6基础-ES6的扩展
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展. 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符 ...
- ES6基础-变量的解构赋值
作者 | Jeskson 来源 | 达达前端小酒馆 解构赋值: 数组的解构赋值,对象的解构赋值,字符串的解构赋值,数值与布尔值的解构赋值,函数参数的解构赋值. 开发环境准备: 编辑器,VS Code, ...
随机推荐
- XXS level5
(1)用第四关的方法尝试,发现不行,查看页面源代码,发现on中间有了下划线 (2)查看PHP源代码 <?php ini_set("display_errors", 0); $ ...
- 【HDOJ1598】【枚举+最小生成树】
http://acm.hdu.edu.cn/showproblem.php?pid=1598 find the most comfortable road Time Limit: 1000/1000 ...
- 《DSP using MATLAB》Problem 5.9
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- java 调用process
java调用process 有两种实现方法,一是使用Runtime类,二是使用Process类. 我在最近的项目里用的是Runtime类,接下来写下总结. 有图有真相(在网上学来一句话) packag ...
- LeetCode - Is Graph Bipartite?
Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipart ...
- 【JVM】java对象
一.对象内存布局 对象在内存中存储可分为3块区域:对象头,实例数据,对齐填充 1.对象头 对象头包含两部分内容. 第一部分:存储对象自身的运行时数据,哈希吗(hashCode),GC分代年龄,锁状态标 ...
- 【Disruptor】之Ringbuffer
一.Ringbuffer的概念 =>是一个环形数据队列的数据结构 =>嗯,正如名字所说的一样,它是一个环(首尾相接的环),你可以把它用做在不同上下文(线程)间传递数据的buffer. =& ...
- LinkedList(实现了queue,deque接口,List接口)实现栈和队列的功能
LinkedList是用双向链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢. 底层是一个双向链表,链表擅长插入和删除操作,队列和栈最常用的2种操作都设计到插入和删除 impo ...
- 原生js实现ajax用于简单的签到或登录
<script> function createStandardXHR() { try { return new window.XMLHttpRequest(); ...
- NET设计模式 第二部分 创建型模式(4):工厂方法模式(Factory Method)
工厂方法模式(Factory Method) ——.NET设计模式系列之五 Terrylee,2004年1月2日 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实 ...