随笔分类 -  javascript

上一页 1 2 3 4 5 6 ··· 14 下一页
摘要:装饰器存在的意义 会偷懒的程序员,才是优秀的程序员。 举个例子:我拿着员工卡进入公司总部大楼。因为每个员工所属的部门、级别不同,并不能进入大楼的任何房间。每个房间都有一扇门;那么,公司需要安排每个办公室里至少一个人关于验证来访者的工作: 先登记来访者 验证是否有权限进入,如果没有则要求其离开 记录其 阅读全文
posted @ 2021-07-28 15:42 浅笑·
摘要:声明常量 好吧~ 大叔不吐槽了,还是说正事儿吧。其实,在 ES5 里面也不是不能声明常量,就是有那么一捏捏的别扭。你知道 Object 有个叫做 defineProperty() 的方法吧?它是用来给某个对象定义属性的。在 ES5 里面就可以通过这个方法间接地来声明常量。 比方说,你现在想在全局作用 阅读全文
posted @ 2021-07-14 20:33 浅笑·
摘要:1.实验 我们来做个实验。哪个执行得更快:立即解决的 Promise 还是立即setTimeout(也就是0毫秒的setTimeout)? Promise.resolve(1).then(function resolve() { console.log('Resolved!'); }); setTi 阅读全文
posted @ 2021-07-14 20:28 浅笑·
摘要:slice 工作原理 在深入研究一些更高级的用法之前,让我们看一下 slice 方法的基础知识。如MDN文档, slice 是数组上的一个方法,它最多有两个参数: arr.slice([begin[, end]]) begin 从该索引处开始提取原数组中的元素,如果该参数为负数,则表示从原数组中的倒 阅读全文
posted @ 2021-07-14 20:26 浅笑·
摘要:先来一道常见的面试题: console.log('start') setTimeout(() => { console.log('setTimeout') }, 0) new Promise((resolve) => { console.log('promise') resolve() }) .th 阅读全文
posted @ 2021-07-14 20:17 浅笑·
摘要:本文比较并总结遍历数组的四种方式: for 循环: for (let index=0; index < someArray.length; index++) { const elem = someArray[index]; // ··· } for-in 循环: for (const key in 阅读全文
posted @ 2021-07-14 20:14 浅笑·
摘要:执行环境 执行环境:定义变量或函数有权访问的其他数据。 每个执行环境对应与之关联的变量对象。 变量对象:保存环境中定义的所有变量和函数。 全局执行环境:最外围的执行环境,在web浏览器中,全局执行环境为window对象。 全局变量对象:保存所有window对象下的属性和方法。 执行环境的销毁 某个执 阅读全文
posted @ 2021-07-14 20:13 浅笑·
摘要:JavaScript 中方法链 你一定曾经用过 jQuery 之类的库,可能看到过类似的东西。在进行级联时主要有两种方法:一种是一个接一个的执行方法,另一种是在同一行上。在纯 JavaScript 中这种做法也很普遍。你可以在数组、字符串和 promise 看到它。 在这些情况下所有的过程都是相同的 阅读全文
posted @ 2021-07-14 20:12 浅笑·
摘要:1. 数值分割符 _ ES2021 引入了数值分割符 _,在数值组之间提供分隔,使一个长数值读起来更容易。Chrome 已经提供了对数值分割符的支持,可以在浏览器里试起来。 let number = 100_0000_0000_0000 // 0太多了不用数值分割符眼睛看花了 console.log 阅读全文
posted @ 2021-07-14 20:11 浅笑·
摘要:复制数组 我们可以使用展开操作符复制数组,不过要注意的是这是一个浅拷贝。 const arr1 = [1,2,3]; const arr2 = [...arr1]; console.log(arr2); // [ 1, 2, 3 ] 这样我们就可以复制一个基本的数组,注意,它不适用于多级数组或带有日 阅读全文
posted @ 2021-07-14 20:08 浅笑·
摘要:删除数组指定的某个元素 首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] 阅读全文
posted @ 2021-07-14 18:30 浅笑·
摘要:概述 jsON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,jsON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。 在JS 阅读全文
posted @ 2021-07-14 18:29 浅笑·
摘要:1,获取内网ip function getIP(callback) { let recode = {}; let RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitR 阅读全文
posted @ 2021-07-07 17:51 浅笑·
摘要:foreach 语法: [ ].forEach(function(value,index,array){ //code something}); forEach()方法对数组的每个元素执行一次提供的函数。 var array = ['a', 'b', 'c'];array.forEach(funct 阅读全文
posted @ 2021-07-07 17:49 浅笑·
摘要:事件循环与消息队列 首先大家都知道js是一门单线程的语言,所有的任务都是在一个线程上完成的。而我们知道,有一些像I/O,网络请求等等的操作可能会特别耗时,如果程序使用"同步模式"等到任务返回再继续执行,就会使得整个任务的执行特别缓慢,运行过程大部分事件都在等待耗时操作的完成,效率特别低。 为了解决这 阅读全文
posted @ 2021-07-07 17:44 浅笑·
摘要:代码展示 首先构建一个用来构造LRU对象模块的文件: 'use strict'; let Lru = function(cacheSize,callbackBackingStoreLoad,elementLifeTimeMs=1000){ let me = this; let maxWait = e 阅读全文
posted @ 2021-07-07 17:43 浅笑·
摘要:前端的设计模式是什么 设计模式一个比较宏观的概念,通俗来讲,它是软件开发人员在软件开发过程中面临的一些具有代表性问题的解决方案。当然,在实际开发中不用设计模式同样也是可以实现需求的,只是在业务逻辑比较复杂的情况下,代码可读性及可维护性变差。所以随着业务逻辑的扩展,了解常用设计模式解决问题是非常有必要 阅读全文
posted @ 2021-07-07 17:42 浅笑·
摘要:1. 可选链运算符 之前当我们想要使用某个结构比较深的属性,同时又无法确定所有的父级一定存在时,我们需要进行一连串的判断,例如一个数据结构: const student = { score: { math: 98, }, }; 我们想要获取最内层的 math 属性的值时: if (student & 阅读全文
posted @ 2021-07-07 17:41 浅笑·
摘要:原始值 我们假设一个变量 name 具有一个与之关联的原始值(number,string,boolean,undefined 和null)。 如果我们将此变量 name 复制到另一个变量name2 ,则原始变量的任何修改都不会影响到第二个变量,因为它们是原始值。 let name="fly63"; 阅读全文
posted @ 2021-07-07 17:39 浅笑·
摘要:exports ES6模块只支持静态导出,只可以在模块的最外层作用域使用export,不可在条件语句与函数作用域中使用。 Named exports (命名导出) 这种方式主要用于导出多个函数或者变量, 明确知道导出的变量名称。使用:只需要在变量或函数前面加 export 关键字即可。使用场景:比如 阅读全文
posted @ 2021-07-07 17:32 浅笑·

上一页 1 2 3 4 5 6 ··· 14 下一页