es6
tianmeng1999
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
音频录制实现 绘制频谱
封装 loadDevices.js。原创 2023-11-20 14:04:27 · 1004 阅读 · 0 评论 -
手写 flat 数组降纬
/** * 数组扁平化 * @param {Number} depth 降维层级 infinty 降到一维数组 */Array.prototype.myFlat = function(depth=1){ let result = [], deep = -1; // 扁平层数 function _flat(arr){ deep++; arr.forEach((item)=>{ if(Array.isArray(item)){原创 2021-05-31 16:57:27 · 179 阅读 · 4 评论 -
手写 reduce
/** * reduce方法 * @param {*} fu 回调函数 * @param {*} initVal 初始值 */Array.prototype.myReduce = function(fu, initVal){ let prev = initVal == undefined ? this[0] : initVal; let i = initVal == undefined ? 1 : 0; for(; i< this.length; i++){原创 2021-05-31 16:54:45 · 223 阅读 · 0 评论 -
es11 globalThis全局this
始终指向全局对象,无论指向环境是什么(浏览器,nodejs,…)浏览器console.log(globalThis) // windownodeconsole.log(globalThis) // global用处 如果想对全局对象进行操作 就可以忽略环境 直接使用globalThis就可以了...原创 2020-08-14 10:35:57 · 297 阅读 · 0 评论 -
es11 新的数据类型 BigInt 大整数
主要用来进行大数值运算不能和普通数据类型做运算// 大整形let n = 521n //在普通数字后面加nconsole.log(n, typeof n)函数把普通的整数转化为大整数值let n = 123BigInt(n) // 123n浮点数转大整数值 报错大数值运算// 最大安全整数let max = Number.MAX_SAFE_INTEGERconsole.log(max)console.log(max+1)console.log(max+11)不能表示原创 2020-08-14 10:25:47 · 782 阅读 · 0 评论 -
es6 动态import 实现按需加载
动态importes6 import 文档关键字import可以像调用函数一样来动态的导入模块。以这种方式调用,将返回一个 promiseimport('./hello.js').then(module=>{ // module 就是模块里面导出的对象})示例index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <met原创 2020-08-14 10:01:17 · 9698 阅读 · 0 评论 -
es6 可选链操作符
?.在应对对象类型参数的时候function main(config){ const dbHost = config && config.db && config.db.host console.log(dbHost)}main({ db:{ host:"192.168.0.xx", name:"root" }})// dbHost "192.168.0.xx"这样一层层判断会比较繁琐使用 可原创 2020-08-14 09:50:08 · 1330 阅读 · 0 评论 -
class 私有属性
class Per{ // 公有属性 name; // 私有属性 #age; // => this.#age; #width; constructor(name, age, width){ this.name = name this.#age = age this.#width = width } info(){ console.log(this.#age) return this.#原创 2020-08-14 09:11:08 · 657 阅读 · 0 评论 -
es10 数组方法 flat/flatten 数组降维 flatMap
flatflat(指定嵌套数组结构应展平的深度级别。默认为1。) 降低多少维度 最低转为一维数组将多维数组转化为低维数组// 二维转一维const arr = [1,2,4,[4,5,6]]// 降低一个纬度arr.flat() // [1, 2, 4, 4, 5, 6]// 三维转二维const arr2 = [1,2,4,[4,5,6,[8,9]]]// 降低一个纬度arr2.flat() // [1, 2, 4, 4, 5, 6, [8,9]]// 四维维转二维cons原创 2020-08-13 17:44:44 · 727 阅读 · 0 评论 -
es6 对象方法扩展 Object.is/assign/setPrototypeOf/getPrototypeOf
Object.is判断2个值是否完全想等Object.is(120, 121) // false// 和 === 不一样Object.is(NaN, NaN) // trueNaN === NaN // falseObject.assign对象合并Object.assign 示例Object.setPrototypeOf/getPrototypeOf原创 2020-08-13 09:05:22 · 170 阅读 · 0 评论 -
es6 数值扩展 Number.EPSILON/isFinite/parseInt/parseFloat/isInteger Math.trunc/sign 二进制八进制 十进制
Number.EPSILONNumber.EPSILON 是JavaScript 表示的最小精度EPSILON 属性接近于 2.220446049250313e-162个值的差 小于EPSILON 就可以认为是相等的function equal(a,b){ return Math.abs(a-b) < Number.EPSILON}console.log(0.1 + 0.2 === 0.3) // false 0.1 + 0.2 => 0.30000000000000004c原创 2020-08-12 18:58:16 · 432 阅读 · 0 评论 -
js ES5/6静态成员(属性/方法)
静态成员是构造函数的属性 跟实例无关function Per(){ }Per.name = "name" // 静态属性 是函数对象的属性Per.call = function(){} // 静态方法Per.prototype.size = 'size'let p = new Per()p.size // 'size'静态成员 属于类 不属于实例class Per{ static pname = 'Per' // 静态属性 constructor(name){ thi原创 2020-08-12 09:10:08 · 651 阅读 · 0 评论 -
es6 Symbol数据类型 description
es6引入了一种全新的原始数据类型,表示独一无二的值,他是javascript语言的第七种数据类型,是一直类似于字符串的数据类型。特点Symbol 的值是惟一的,用来解决命名冲突的问题Symbol 值不能与其它数据进行运算Symbol 定义的对象属性不能使用 for…in 循环遍历,但是可以使用 Reflect.ownKeys来获取对象的所要键名使用// 创建Symbollet s = Symbol()console.log(typeof s) // 'Symbol'let s2 =原创 2020-08-11 09:09:58 · 447 阅读 · 0 评论 -
es6 rest参数(...args) 用于获取函数实参 代替arguments
rest参数 用于获取函数实参 代替arguments// argumentsfunction data(){ console.log(arguments) //对象}data('张三','李四','王五')// rest参数 function data(...args){ console.log(args) //数组}data('张三','李四','王五')rest参数 必须防止参数最后function data(a, b, ...args){ console.log(ar原创 2020-08-10 08:55:15 · 589 阅读 · 0 评论 -
es6/es9 的内置对象扩展 扩展运算符(rest参数/spread扩展运算符)
Array 的扩展方法扩展运算符(展开语法)扩展运算符可以将数组或对象转化为用逗号分隔的参数序列。let ary = [1,2,3]...ary // 1,2,3console.log(...ary) // 1 2 3 这里的逗号被当做了参数分隔符可用于合并数组// 方法一let ary1 = [1,2,3]let ary2 = [4,5,6]let ary3 = [...ary1, ...ary2]console.log(ary3) // [1,2,3,4,5,6]// 方法二原创 2020-06-30 09:12:25 · 405 阅读 · 0 评论 -
es6 剩余参数
剩余参数剩余参数语法允许我们将一个不定数量的参数表示为一个数组function sun(first, ...args){ console.log(first) // 1 console.log(args) // [10,20,30]}sun(1, 10,20,30)配合解构赋值let stu = ['dd', 'gg', 'hh']let [a1, ...s2] = stua1 // 'dd's2 // ['gg', 'hh']...原创 2020-06-29 21:30:42 · 153 阅读 · 0 评论 -
es6 什么是ES6 为什么要使用ES6
文章目录什么是ES6为什么要使用ES6什么是ES6ES的全称是 ECMAScript, 它是由ECMA国际标准化组织制定的一项脚本语言的标准化规范。ES6 实际上是一个泛指,泛指 es2015 即后需的版本为什么要使用ES6每一次标准的诞生都意味着语言的完善,功能的加强。javascript语言本身也有一些令人不满意的地方。变量提升特性增加了程序运行时的不可预测性语法过于松散,实现相同的功能,不同的人可能会写出不同的代码...原创 2020-06-28 09:12:57 · 2448 阅读 · 0 评论 -
js async 与 await
这里写自定义目录标题mdn 文档注意async 函数 (异步函数)await 表达式右侧的表达式是promise右侧的表达式不是 promise右侧的表达式是promise的错误状态 错误处理mdn 文档https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/async_functionhttp...原创 2020-03-27 17:54:08 · 210 阅读 · 0 评论 -
自定义 Promise
文章目录定义整体结构Promise构造函数实现Promise.then()/catch()的实现Promise.resolve()/reject()的实现Promise.all()/race()的实现Promise.resolveDelay()/rejectDelay()的实现 延迟ES5 function 完整版ES6 class 完整版定义整体结构测试文件index.html<!...原创 2020-03-27 17:05:32 · 244 阅读 · 0 评论 -
es6 解构赋值
对象结构const obj = { name: 'obj', age: 18, son:{ mon: 'mon', father: 'father', brot: 'brot' }}const {name, age} = objconsole.log(name, age,);// 'obj' 18解决命名重复const mon = 'monmonmonmon';...原创 2019-11-08 16:23:11 · 156 阅读 · 0 评论 -
es6 WeakMap定义 WeakMap方法
定义是键/值对的集合,其中键被弱引用。键必须是对象,并且值可以是任意值。let per = new WeakMap()let xyz = {name:'xyz'}Weak.set(xyz,'xyz is the best')per.size 无效per.size;//undefinedper不能循环 迭代for(let i of per){}键必须是对象Weak.se...原创 2019-11-08 16:18:30 · 394 阅读 · 0 评论 -
es6 map对象 map方法 记录按钮点击次数
map定义保存键值对,并记住键的原始插入顺序。任何值(对象值和原始值)都可以用作键或值。let per = new Map()let per = new Map([['0','xyz'],['1','xyz']])Map.prototype.size 返回Map对象中键/值对的数量。let per = new Map()per.set('0','xyz')per.set('1','...原创 2019-11-08 16:03:54 · 320 阅读 · 0 评论 -
es6 Weakset对象初步理解 Weakset方法
Weakset对象定义WeakSet对象是对象的集合。中的一个对象WeakSet只能出现一次;在WeakSet的集合中是唯一的。与set对象区别 MDN 解释:与相比Sets,WeakSets只是对象的集合,而不是任何类型的任意值该WeakSet是弱:引用集合中的对象是弱举行。如果没有其他引用存储在中的对象WeakSet,则可以对其进行垃圾回收。这也意味着该集合中没有存储当前对象的列表。W...原创 2019-11-08 15:06:19 · 402 阅读 · 0 评论 -
es6 set对象 set方法 set应用数组去重
定义Set对象是值的集合,值是惟一的let sets = new Set([1,2])console.log(sets);不能直接添加数字let sets = new Set(2)方法set.size类似于数组长度let sets = new Set()sets.size;//0set.prototype.add 添加let sets = new Set()se...原创 2019-11-08 14:30:11 · 2434 阅读 · 0 评论 -
es6 promise理解使用 allSettled
简单理解let pro = new Promise((succ, err)=>{ // succ('成功信息'); //成功回调 执行then err('错误信息') //失败回调 执行catch }) pro.then(res=>{ console.log(res) }).catch(err=>{ console.error(err...原创 2019-11-08 13:26:26 · 861 阅读 · 0 评论 -
es6 proxy
proxyproxy可以在修改对象的时候设置一层条件 拦截下面设置了 读取objProxy 属性的时候 如果该属性是字符串类型 那么就返回大写 属性值设置objProxy 属性 限制了name数组设置 必须为string类型let obj = {name:'objname',age:11}; let objProxy = new Proxy(obj, { get(...原创 2019-11-08 11:40:31 · 154 阅读 · 0 评论 -
es6 Generator生成器 es6提供的一种异步解决方案
了解使用 加*function* funColors(){ console.log('--start--') yield 'red' console.log('--red-green--') yield 'green' console.log('--green-blue--') yield 'blue' console.log('--end--')} let colors =...原创 2019-11-07 15:46:11 · 751 阅读 · 0 评论 -
es6 迭代器(遍历器)Iterator 自定义遍历器 lterator/简单模拟values方法 for of运行机制 Array/Set/Map默认迭代器接口 对象设置迭代器
lteratorlet arr = ['xx','yy','zz'];let iterator = arr[Symbol.iterator]()iterator.next()arr.entries 也返回了遍历器let arrEn = arr.entries()arrEn.next()arr.keyslet kes = arr.keys()kes.next(...原创 2019-11-07 14:51:44 · 535 阅读 · 0 评论 -
es6 class方法理解 继承 重写父类方法 get/set
class 定义的一种特殊的函数 没有函数声明提示// 无法在初始化之前访问'User'// console.log(User);// Uncaught ReferenceError: Cannot access 'User' before initializationclass User{ constructor(){ }}typeof User;// function构造函...原创 2019-11-07 14:07:24 · 2349 阅读 · 0 评论 -
es6 对象字面量扩展
const name = 'zmlcz';const age = 18;const deta= '1999-07-26';const obj = { name: name, age: age, deta: deta, getfun: function(){ console.log(this.name) }}// 可简写为const obj = { name, age...原创 2019-11-05 10:51:16 · 158 阅读 · 0 评论 -
es6 数组方法 Array.from() Array.of() 集合转换为数组
from把 类数组对象/可遍历的对象/字符串 转化为数组第二个参数 类似于maplet arr = { 0:1, 1:2, length:2, "push":Array.prototype.push}Array.from(arr); // 返回[1,2] 不改变arr// 第二个参数 类似于mapArray.from(arr,item=>item*2); //[2, 4...原创 2019-11-04 17:27:01 · 451 阅读 · 0 评论 -
es6 字符串方法 startsWith endsWith includes repeat trimStart trimEnd
// startsWith 字符串是不是以什么开头 大小写敏感const str = 'https://www.baidu.com';str.startsWith('https');//truestr.startsWith('www',8);//true 字符串第8位以后 是不是以www开头的// endsWith 字符串是不是以什么结尾 大小写敏感const str = 'a.tx...原创 2019-11-04 16:18:57 · 226 阅读 · 0 评论 -
es6 字符串模版解析 模板字符串标记
var str = 20var str2 = ` fdgdfg ${str*2} --- ${str}`// css .con{ margin: auto; padding: 10px; width: 300px; border:1px solid; border-radius: 5px; box-shadow: 5px 5px 5px...原创 2019-11-04 14:14:49 · 533 阅读 · 0 评论 -
es6 参数默认值
function fun(a, b = 5, c = 9){ console.log(a,b,c)}fun(1,2);// 1,2,9// 只传第三个参数fun(undefined,undefined,2);// undefined 5 2原创 2019-11-04 13:42:56 · 150 阅读 · 0 评论 -
es6 箭头函数 返回对象简化
一个参数可省括号无参数写括号一个返回值可省return//正常函数function fun(age){ return ++age}var num = 18var age = fun(num )// 箭头函数let age2 = (num) => { reuturn num*2}...原创 2019-11-04 13:33:21 · 1005 阅读 · 0 评论 -
es6 let,const 展示性死区/没有变量提示(Temporal Dead Zone)
在 es5中 变量提升console.log(ff);//undefinedvar ff = 'ff'es6 访问不到ffconsole.log(ff);//报错 ncaught ReferenceError: Cannot access 'ff' before initializationlet ff = 'ff'//或 //const ff...原创 2019-11-04 11:59:29 · 330 阅读 · 0 评论 -
js 求幂 Math.pow()/指数运算符`**`
// es6console.log(Math.pow(2,10));//2 的 10次方 1024// es5console.log(2**10);//2 的 10次方 1024原创 2019-09-08 19:32:58 · 3085 阅读 · 0 评论
分享