ES语法
SpringSir
道阻且长,行则将至。
展开
-
面试-回调函数、promise、async--await区别
回调函数容易引起代码的层层嵌套—>“回调地域”,promise就是解决回调地域、优化编码的, 但是并没有从根本上解决代码嵌套问题,async-await 函数则是在这个基础上做的进一步优化,是es6的新特性, 一个语法糖, 它会返回promise中then方法的执行结果,失败的结果用try-catch代码块这个你知道的...原创 2021-09-08 20:35:39 · 178 阅读 · 0 评论 -
undefined与null的区别
null表示"没有对象",即该处不应该有值。典型用法是:作为函数的参数,表示该函数的参数不是对象;作为对象原型链的终点。undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:变量被声明了,但没有赋值时,就等于undefined;调用函数时,应该提供的参数没有提供,该参数等于undefined;对象没有赋值的属性,该属性的值为undefined;函数没有返回值时,默认返回undefined。...原创 2021-09-08 18:17:22 · 437 阅读 · 0 评论 -
JavaScript - 通用类型判断-Object.prototype.toString.call()封装
function getType (value) { return Object.prototype.toString .call(value) .match(/\s+(\w+)/)[1] .toLowerCase()}console.log(getType('')) // stringconsole.log(getType(2)) // numberconsole.log(getType原创 2021-08-19 08:45:14 · 373 阅读 · 0 评论 -
解构对象 - 无声明赋值
详情点击此处—>mdn详讲:无声明赋值一个变量可以独立于其声明进行解构赋值。var a, b;({a, b} = {a: 1, b: 2});注意:赋值语句周围的圆括号 ( … ) 在使用对象字面量无声明解构赋值时是必须的。{a, b} = {a: 1, b: 2} 不是有效的独立语法,因为左边的 {a, b} 被认为是一个块而不是对象字面量。然而,({a, b} = {a: 1, b: 2}) 是有效的,正如 var {a, b} = {a: 1, b: 2}你的 (原创 2021-08-18 14:39:54 · 265 阅读 · 0 评论 -
在箭头函数中, 返回字面量形式的对象
需要用小括号把对象字面量包起来;大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上小括号。const arrO = [{ a: 12, b: '卡卡西', name: '鸣人' }]const newArr = arrO.map(({ a, b }) => ({ a, b }))console.dir(newArr)...原创 2021-08-18 14:31:08 · 133 阅读 · 0 评论 -
ES2015(ES6)+
JES2015-ES6目录名词释义ECMAScriptES2015ES6let 和 const箭头函数函数的参数默认值用法示例模板字符串扩展(展开) 运算符解构赋值对象解构赋值数组的解构赋值应用-解构赋值结合函数声明对象成员的简写概述Symbol作为对象属性Symbol.for内置SymbolSymbol的属性Set和WeakSetSet实例WeakSetMap和WeakMapMap实例1:扩展对象实例2:完善私有属性的实现WeakMap实例:完善私有属性的实现ProxyReflect 反射Iterator原创 2021-08-11 11:13:46 · 729 阅读 · 0 评论 -
Promise、try-catch-finally、async-await
前言: 以下示例代码, 基于node运行环境PromisePromise是一个容器,保存异步代码的执行结果;作用:解决异步回调地域(异步代码,层层嵌套);缺陷:语法、编码上还是存在嵌套现象目录:const fs = require('fs')function createPromise(name){ return new Promise((resolve, reject) => { fs.readFile(`${__dirname}/${name}.tx原创 2021-08-06 16:18:07 · 1101 阅读 · 0 评论