![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6
文章平均质量分 75
The..Fuir
这个作者很懒,什么都没留下…
展开
-
实习打怪之路:Promise简介原理和常见方法
这就是Promise的作用了,简单来讲,就是能把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。原创 2022-07-21 11:21:03 · 248 阅读 · 0 评论 -
面试题57:commonjs与es6模块化有什么区别
1.CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。2.CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。3.CommonJS是对模块的浅拷贝,ES6 Module是对模块的引入,即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似const 。4.import的接口是read-only(只读状态),不能修改其变量值。 即不能修改其变量的指针指向,但可以改变变量内部指针指向原创 2022-07-02 23:06:37 · 554 阅读 · 0 评论 -
面试题44:call、apply与bind的用法和区别
首先call、apply、bind的作用都是改变函数运行时this的指向。其次,在ES6的箭头函数下, call 和 apply、bind 将失效。原创 2022-06-12 21:13:52 · 295 阅读 · 0 评论 -
面试题36:箭头函数和普通函数的区别
面试官:请说一下箭头函数和普通函数的区别一.外形不同:箭头函数使用箭头定义,普通函数中没有二.箭头函数都是匿名函数普通函数可以有匿名函数,也可以有具体名函数,但是箭头函数都是匿名函数。三.箭头函数不能用于构造函数,不能使用new普通函数可以用于构造函数,以此创建对象实例。四.箭头函数中this的指向不同在普通函数中,this总是指向调用它的对象,如果用作构造函数,this指向创建的对象实例。1.箭头函数本身不创建this也可以说箭头函数本身没有this,但是它在声明时可以捕获其所.原创 2022-05-14 23:01:10 · 552 阅读 · 0 评论 -
Promise如何实现同步与异步
1、同步和异步(1)同步:js是一种单线程的语言,因此js在同一时间只能做一件事情,单线程的意思就是如果同时有多个任务的话,这些任务需要排队,按照顺序执行,前一个执行完后一个才能执行,这就是同步任务。(2)异步:但是同步任务是有很多不合理,如果前一个任务时间很长的话,后面也要等待前一个执行完,用户体验不好,所以就有了异步任务。 异步任务是指不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程。异步任务的实现最典型的就是回调函数和promise。.原创 2022-05-14 22:34:16 · 5197 阅读 · 0 评论 -
ES6属性名的遍历
先看一个例子:Reflect.ownKeys()方法let name = Symbol('name');let product = {[name]:"洗衣机","price":799};console.log(Reflect.ownKeys(product));再看使用for..inlet name = Symbol('name');let product = {[name]:"洗衣机","price":799};// console.lo..原创 2022-05-14 12:47:30 · 381 阅读 · 0 评论 -
面试题35:ES6新增的特性面试笔试题
请至少说出5个ES6的特性 ,简述它们的作用。答:1.let关键字,用于声明只在块级作用域起作用的变量2.const关键字,用于声明一个常量3.Symbol数据类型,定义一个独一无二的值4.for...of遍历,可遍历具有iteration接口的数据结构5.Set结构,存储不重复的成员值得集合6.Map结构,键名可以是任意类型得键值对集合7.Promise对象,更合理,规范地处理异步操作8.Class类定义类和更简便地实现类地继承.................可.原创 2022-05-13 23:53:49 · 3007 阅读 · 1 评论 -
JS模板字符串
在ES6之前,就是在ES5中,我们都使用单引号或者双引号来包裹字符串,当我们想要在字符串中加入变量时,不能直接写在字符串里,而是需要通过字符串拼接的方式来往字符串中加入变量。例如: var num = 123; var str = '你好num'; var str1 = '你好' + num; console.log(str); console.log(str1); 从上面的代码以及运行结果我们可以发现想要在字符串中添加变量就需要用到字符串拼接,当需要拼接的变量数量较多时可能...原创 2022-05-13 22:28:07 · 251 阅读 · 0 评论 -
面试题34:JS中数组有几种循环方法
js中数组的几种循环方式forfor循环最基本的循环方式,不多说。这种最基本的循环才是速度最快的,效率最高的。for(var i = 0;i<5;i++){ console.log(i)} 优化:使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显var arr = [1, 2, 3, 4, 5, 6]var len = arr.lengthfor(var i = 0; i < len; i++) { console.转载 2022-05-13 18:38:19 · 413 阅读 · 0 评论 -
ES6面试知识点和什么是语法糖
ES6是什么,为什么要学习它,不学习ES6会怎么样?答:ES6是新一代的JS语言标准,对部分JS语言核心做了升级优化,规范了JS的使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用开发。Babel是什么,有什么作用?答:Babel是一个ES6的转码器,可以将ES6代码转为ES5代码,以便兼容那些还没支持ES6的平台。let有什么用,有了var为什么还要用let答:在ES6之前,声明变量只能用var,var方式声明变量不太合理,因为在ES5中,var是函.原创 2022-05-13 11:36:01 · 268 阅读 · 0 评论 -
Genertor生成器 、Generator内next()的传参问题、 Generator模拟用户下单、async的使用:
目录Genertor生成器Generator内next()的传参问题Generator模拟用户下单async的使用:Genertor生成器<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> &l...原创 2022-05-12 21:36:35 · 561 阅读 · 0 评论 -
ES6:async异步函数
async异步函数async函数是使用async关键字声明的函数。 async函数是AsyncFunction构造函数的实例, 并且其中允许使用await关键字。async和await关键字让我们可以用一种更简洁的方式写出基于Promise的异步行为,而无需刻意地链式调用promise。Async函数是generator函数的语法糖,在generator函数的基础上添加了一些更加方便用户操作的新特性。Async函数的执行和普通函数一致,只需要一行代码即可,因为他具有内置的执行。async与awai.原创 2022-05-12 21:22:51 · 936 阅读 · 0 评论 -
ES6中Generator的应用
Generator介绍Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同,Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。执行 Generator 函数会返回一个遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。Generator函数有两个特征: function关键字与函数名之间有个星号; 函数内部使用yield表达式 fun.原创 2022-05-12 14:56:04 · 567 阅读 · 0 评论 -
ES6迭代器的作用、实现、遍历
目录迭代器Iterator 的作用有三个:迭代器实现迭代器协议遍历扩展迭代器迭代器/遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。Iterator 的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是ES6...原创 2022-05-12 09:41:41 · 329 阅读 · 0 评论 -
Promise的概述、异步操作、封装
//分析ajax//1.JS是单线程的 JS代码是自上而下执行的 不能突然插队其他任务在主线程未执行完成之前//2.//1) ajax异步操作 - 其余任务队列//es5的一个缺陷 无法完成正常项目编写$.ajax({ url:'', method:'', data:{}, success(res){ console.log(1); }, error(error){ console.log(2);...原创 2022-05-11 23:38:15 · 136 阅读 · 0 评论 -
ES6中Promise的原型方法、静态方法和使用、应用方法
目录Promise介绍实例化原型方法Promise.prototype.then()Promise.prototype.catch()Promise.prototype.finally()静态方法Promise.all([p1,p2])Promise.race([p1,p2])Promise.any([p1,p2])Promise.resolve()Promise.reject()应用Promise引子:// 分析ajax $.原创 2022-05-11 15:55:57 · 737 阅读 · 0 评论 -
ES6中Class类构造函数、实例、原型属性和方法、继承extends、super关键字
目录Class类构造函数实例属性和方法原型属性和方法静态属性和方法继承super 关键字Class类JavaScript 语言中,生成实例对象的传统方法是通过构造函数。 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰更像面向对象编程的语法而已。所以ES..原创 2022-05-11 11:55:54 · 2282 阅读 · 0 评论 -
ES6中Set集合、Set API、Map集合、Map API
目录集合Set集合初始化Set APIMap集合初始化Map API(与set类似)集合Set集合初始化Set类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构展。Set 构造函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。Set集合比较特殊,内部只需要存储一个值,set集合的key和value一样。let set = new Set();c.原创 2022-05-11 00:08:53 · 376 阅读 · 0 评论 -
面试题29:箭头函数、普通函数的区别以及this指向问题。
es6中的箭头函数和普通函数有什么区别?1、普通函数中的this总是指向调⽤它的那个对象,箭头函数没有⾃⼰的this,他的this永远指向其定义环境,任何⽅法都改变不了其指向,如call()、bind()、apply()。(正是因为它没有this,所以也就不能⽤作构造函数,也没有原型对象)箭头函数不能当作构造函数,也就是说,不能使⽤new命令,否则会报错。2、箭头函数没有原型属性。3、箭头函数不可以使⽤yield命令,因此箭头函数不能⽤作Generator函数。4、箭头函数不能使⽤argu...原创 2022-05-09 21:11:41 · 1010 阅读 · 0 评论 -
ES6 Symbol类型的应用、symbol属性名的遍历、Symbol.for()&&Symbol.keyFor()
目录Symbol类型介绍Symbol.prototype.descriptionSymbol的应用1 给对象内追加属性2 消除魔术字符串symbol属性名的遍历Symbol.for()&&Symbol.keyFor()Symbol.for(key)Symbol.keyFor(sym)Symbol类型介绍ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin.原创 2022-05-08 17:22:41 · 1281 阅读 · 0 评论 -
ES6对象扩展、函数扩展、对象API、数组API扩展
目录常用扩展对象扩展对象简写对象API拓展Object.is()Object.assign()Object.getPrototypeOf()Object.setPrototypeOf()Object.setPrototypeOf()Object.keys()函数扩展函数参数设置默认值参数解构rest 参数箭头函数数组API拓展Array.from(arrayLike[, mapFn[, thisArg]])Array.of().原创 2022-05-07 23:40:42 · 538 阅读 · 0 评论 -
ES6数组解构、对象解构、字符串解构、数值解构、布尔类型解构
目录解构(Destructuring)数组解构不完全解构集合解构默认值对象解构重命名解构嵌套解构默认值运算符…字符串解构数值解构布尔类型解构解构(Destructuring)ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring),解构的本质属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。如果解构不成功,变量的值就等于undefined。数组解构以前,为.原创 2022-05-07 22:58:35 · 1207 阅读 · 0 评论 -
ES6之npm包管理器、cnpm包管理器yarn包管理器包管理器对比
目录包管理器提高npm安装速度方案一:修改npm仓库地址为淘宝仓库地址方案二:我们可以使用淘宝的npm镜像cnpm,cnpm的使用与npm使用非常类似。不过在使用之前要先安装cnpm。方案三:我们可以使用淘宝yarn工具,yarn的使用与npm使用类似。不过在使用之前要先安装yarn。npm包管理器npm install -g的区别npm install -S -D 的区别cnpm包管理器yarn包管理器包管理器对比包管理器NPM 是 N.原创 2022-05-07 11:49:35 · 731 阅读 · 0 评论 -
ES6模块化与工程化、export导出、import导入、CJS模块化、模块对象exports导出require导入
模块化与工程化Javascript一直没有模块体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。这对开发大型的、复杂的项目形成了巨大障碍。在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。注意:从 v13.2 版本开始,Node.js 已经默认.原创 2022-05-06 13:29:01 · 1737 阅读 · 0 评论 -
ES6简介、新特性、Babel编译器、babel-cli工具、babel-polyfill工具(安装和使用)
目录简介ECMAScript 的历史ES6新特性1.语法方面2.功能方面 Babel编译器babel-cli工具第一步:创建一个文件夹,名称为app,在vscode中打开终端,终端路径定格在app目录第二步:初始化项目第三步:全局安装babel-cli工具第四步:局部安装预设(Presets)第五步:在项目根目录创建.babelrc文件(注意文件名前有个点),内部代码如下第六步:转码结果输出到标准输出第七步:转码结果写入一个文件,--o...原创 2022-05-06 11:10:23 · 2711 阅读 · 0 评论 -
无法将“babel”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
最近在做node.js 前端的时候,遇到一个问题,全局安装了Babel,Babel提供babel-cli工具,用于命令行转码但在查看是否安装成功,输入:babel --version 命令报错:无法将“babel”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。因为我确认了是全局安装,那就很有可能是没有配置环境变量。ES6的某些高级语法在浏览器环境甚至是Node.js环境中无法执行。Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行执行。...原创 2022-05-05 21:17:16 · 2180 阅读 · 0 评论 -
面试题26:var、let、const的区别【JavaScript和ES6】
1.var是ES5提出的,let和const是ES6提出的。2.const声明的是常量,必须赋值(1)一旦声明必须赋值,不能使用null占位。(2)声明后不能再修改(3)如果声明的是复合类型数据,可以修改其属性3.let和var声明的是变量,声明之后可以更改,声明时可以不赋值4.var允许重复声明变量,后一个变量会覆盖前一个变量。let和const在同一作用域不允许重复声明变量,会报错。5.var声明的变量存在变...原创 2022-05-05 20:55:59 · 1272 阅读 · 0 评论 -
babel : 无法加载文件 E:\Briup\linux\node\node_global\babel.ps1,因为在此系统上禁止运行脚本。
错误提示系统上禁止运行脚本,查看执行策略:get-ExecutionPolicyget-ExecutionPolicy此时是受限制的,系统防止执行不信任脚本。解决方法:以管理员身份运行PowerShell,执行:set-ExecutionPolicy RemoteSignedwindow+R...原创 2022-05-05 16:22:01 · 386 阅读 · 0 评论