常用到的es6用法

一、数据类型(let/const)

1、在其他语言(如C/C++/java等)中,变量最小作用域是以{}括起来的块级作用域,相对而言,在es5前,js中最小的作用域为函数,这样会导致在某些场景下,运用起来会比较繁琐。

举例子

1 for (var i = 0; i < 3; i++) {
2     setTimeout(function() {
3         console.log(i);
4     }, 0);
5 }
7 console.log(i);

执行结果:

5 //循环体外打印
5
5
5

我们原本期望通过循环和定时器能够依次打印0、1、2,但是由于通过var声明的变量的最小作用域为函数,导致函数体外的i最终污染了循环体中的i。当然我们可以通过函数来解决问题

解决办法:

for (var i = 0; i < 3; i++) {
    (function(i) {
        setTimeout(function(){
            console.log(i);
        }, 0);
    })(i)
}
console.log(i);

这样借助自执行函数的方式可以解决,但是比较麻烦,es6中的let关键字,可以很容易的帮助我们解决该问题。

for (let j = 0; j < 3; j++) {
     setTimeout(function() {
         console.log(j);
     }, 0);
}
console.log(j);

这样在循环体外访问会报错 not define。let允许声明一个作用域被限制在块级作用域中的变量、语句或者表达式,而var只能声明在全局或者函数块的变量。

2、const关键字声明变量的作用域同let,不同点是,它是用于声明常量的关键字,声明时必须赋值,赋值后不能被变更,即只读。

二、字符串

1、模板字符串:允许嵌入表达式的字符串字面量。可以使用多行字符串和字符串插值功能。

//之前
console.log(‘hello \n world‘)

//之后
console.log(`hello
world`)

//执行结果helloworld

let name = ‘mili‘;let age = 23;console.log(`Hello, my name is ${name}, I am ${age}`);

2、includes(str, index):检测字符串中是否存在子串

3、startsWith(str, index):检测字符串是否以某子串开头

4、endsWith(str, index):检测字符串是否以某子串结尾

如果要查询某子串在字符串中的具体位置,可以使用indexOf

三、数组

在es5之前数组有些超好用的方法,如(map、filter、some、every等)都非常实用,具体细节此处就不做展开;

1、find():传入回调函数,找到数组中符合条件的第一个元素,并返回;

2、findIndex():传入回调函数,找到数组中符合条件的第一个元素的下标,并返回;

let objArr = [{name: ‘a‘, age: 10},{name: ‘b‘, age: 20},{name: ‘c‘, age: 30}];

let dest = objArr.find((item) => {return item.age > 10;});

let destIndex = objArr.findIndex((item) => {return item.age > 10});

console.log(dest);
console.log(destIndex);

输出结果:
{name: "b", age: 20}

1

3、arr.fill(value, start, end):用新元素替换掉数组内的元素,可以指定替换的下标范围;

4、arr.copyWithin(target, start, end):选择数组的某个下标,从该位置开始复制元素,也可以指定复制的元素范围;

let fillArr = [1, 2, 3, 4, 5, 6];
fillArr.fill(7, 1, fillArr.length-1);

const copyArr = [1, 2, 3, 4, 5];console.log(copyArr.copyWithin(3)) // [1,2,3,1,2] 从下标为3的元素开始,复制数组,所以4, 5被替
console.log(fillArr);console.log(copyArr);

输出结果:

[1, 7, 6]

[1, 2, 3, 1, 2]

四、函数

1、箭头函数:箭头函数没有自己的this(this来自父级最近的非箭头函数)、arguments、super或者new.target

普通函数涉及到this指针:1、函数座位全局函数被调用,this指向全局对象;2、函数座位对象的方法被调用,this指向对象;

let arr = [2, 10, 8, 20];
let newArr = arr.filter((item) => {
     return item > 8
})
console.log(newArr);

2、函数参数默认值

// es6前
function handle(num, callback) {
    num = num || 6;
    callback = callback || function (data) {console.log(data)};
    callback(num);
}

// es6后
function handle(num = 6, callback = function (data) {console.log(data)}) {
    callback(num);
}

五、其他

迭代器、promise与异步编程、proxy代理待更新

原文地址:https://www.cnblogs.com/juntao-snail/p/9599261.html

时间: 2024-08-30 18:29:03

常用到的es6用法的相关文章

嵌入式之---常用模板函数(用法说明函数、参数解析函数)

主要内容:嵌入式常用模板函数(用法说明函数.参数解析函数) /*显示参数列表*/ void usage() {     printf("usage: server [-p:x] [-i:IP] [-o]\n\n");     printf("       -p:x      Port number to listen on\n");     printf("       -i:str    Interface to listen on\n");

浅谈struts2标签中的2个很常用的标签的用法(radio和select)

1.如图所示我们需要在前台的页面通过radio和select将对应的数据库中的数据显示到选项当中,这也是我们做项目中经常需要做的,动态的显示,而不是静态的显示. 首先我们需要在页面中导入struts2的标签库<%@ taglib prefix="s" uri="/struts-tags"%>,一般的我们不用struts2写一个radio代码如下: <input type="RADIO" name="sex"

(转载)Android常用的Dialog对话框用法

Android常用的Dialog对话框用法 Android的版本有很多通常开发的时候对话框大多数使用自定义或是 Google提供的V4, V7 兼容包来开发保持各个版本的对话框样式统一,所以这里使用的是V7 包里的AlertDialog. 1 import android.app.ProgressDialog; 2 import android.content.DialogInterface; 3 import android.os.Bundle; 4 import android.os.Sys

【转】SQL 常用关键字释义和用法

转自: http://blog.csdn.net/iamwangch/article/details/8093933 下面 是 从网络上整理 出来的 SQL 关键字和 常用函数的 释义和简单用法. 1.1 SELECT SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). 语法: view plain SELECT 列名 FROM 表名 view plain SELECT * FROM 表名 view plain eg:select * from table_a; 1

Java常用四大线程池用法以及ThreadPoolExecutor详解

为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中,线程池的概念是Executor这个接口,具体实现为ThreadPoolExecutor类,学习Java中的线程池,就可以直接学习他了对线程池的配置,就是对ThreadPoolExecutor构造函数的参数的配置 一.ThreadPoolExecutor提供了四个构造函数: //五个参数的构造函数 pu

C#中几种常用的集合的用法

集合:将一推数据类型相同的数据放入到一个容器内,该容器就是数组:内存中开辟的一连串空间. 非泛型集合 ArrayList集合: ArrayList是基于数组实现的,是一个动态数组,其容量能自动 增长 ArrayList的命名空间System.Collections 常用方法如下: 示例static void Main(string[] args) { ArrayList list = new ArrayList(); //添加单个元素 list.Add(true); list.Add(1); l

C语言常用数学函数及其用法

转自:http://blog.sina.com.cn/s/blog_8b5a0d0001011779.html 三角函数:(所有参数必须为弧度)  1.acos 函数申明:acos  (double x);   用途:用来返回给定的 X 的反余弦函数. 2.asin 函数申明:asin  (double x);   用途:用来返回给定的 X 的反正弦函数. 3.atan 函数申明:atan  (double x);   用途:用来返回给定的 X 的反正切函数. 4.sin 函数声明:sin   

android常用开发工具的用法

1.在命令行创建.删除和浏览AVD 管理AVD需要Android SDK目录下的tools子目录下的android命令,android+下面的命令 list:列出机器上所有已经安装的android版本和AVD设备. list avd:列出机器上所有已经安装的android版本. list target:列出机器上所有已经安装的android版本. create avd:创建一个avd设备. move avd:移动或者重命名一个avd设备 delete avd:删除一个avd设备 update a

我所接触到的一些常用Linux命令和用法(初学者献丑了)每日更新.......

命令                    作用 shutdown -h now      立刻关机命令 startx               进入图形界面(如果你的redhat安装了桌面的话),X就是X-window桌面 shutdown -r now      立刻重启(或者用reboot) vi编辑器的使用(其实vi非常强大,快捷键也很多,这里只说一些常用的vi命令) vi HelloWorld.java    创建一个HelloWorld.java文件,同时用vi打开 按i(插入模式