随笔分类 - javascript
摘要:水平扩展 Node.js 应用程序 水平扩展是复制应用程序实例以管理大量传入连接。 此操作可以在单个多内核机器上执行,也可以在不同机器上执行。垂直扩展是提高单机性能,它不涉及代码方面的特定工作。在同一台机器上的多进程提高应用程序吞吐量的一种常用方法是为机器的每个内核生成一个进程。 通过这种方式,No
阅读全文
posted @ 2021-07-28 17:20
酷儿q
摘要:一、强制转换 1、其他的数据类型转换为String 方式一:toString()方法 调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回,但是注意:null和undefined这两个值没有toString,如果调用他们的方法,会报错。 var a = 123
阅读全文
posted @ 2021-07-14 21:25
酷儿q
摘要:1. 获取一个随机布尔值 (true/false) 这个函数使用 Math.random() 方法返回一个布尔值(true 或 false)。Math.random 将在 0 和 1 之间创建一个随机数,之后我们检查它是否高于或低于 0.5。这意味着得到真或假的几率是 50%/50%。 const
阅读全文
posted @ 2021-07-14 21:22
酷儿q
摘要:一、前言 在开发过程中,有时会遇到需要控制任务并发执行数量的需求。 例如一个爬虫程序,可以通过限制其并发任务数量来降低请求频率,从而避免由于请求过于频繁被封禁问题的发生。 接下来,本文介绍如何实现一个并发控制器。 二、示例 const task = timeout => new Promise((r
阅读全文
posted @ 2021-07-14 21:20
酷儿q
摘要:1. 使用元素位置判断元素是否在当前视区 这种方法实现起来比较简单, 我们一步一步来。 首先:编写一个 util 函数 isVisible,它将仅接收一个参数,即 element。 export const isVisible = (el) => { }; 使用 getBoundingClientR
阅读全文
posted @ 2021-07-14 21:13
酷儿q
摘要:1.关于JavaScript JavaScript是一门单线程语言,在最新的html5中提出了Web-Worker,但javascript是单线程这一核心仍未改变。所以一切javascript版的"多线程"都是用单线程模拟出来的,一切javascript多线程都是纸老虎! 2.javascript事
阅读全文
posted @ 2021-07-14 21:09
酷儿q
摘要:装饰器存在的意义 会偷懒的程序员,才是优秀的程序员。 举个例子:我拿着员工卡进入公司总部大楼。因为每个员工所属的部门、级别不同,并不能进入大楼的任何房间。每个房间都有一扇门;那么,公司需要安排每个办公室里至少一个人关于验证来访者的工作: 先登记来访者 验证是否有权限进入,如果没有则要求其离开 记录其
阅读全文
posted @ 2021-07-14 21:02
酷儿q
摘要:推入任务队列后的时间不准确 定时器代码: setInterval(fn(), N); 上面这句代码的意思其实是fn()将会在 N 秒之后被推入任务队列。 所以,在 setInterval 被推入任务队列时,如果在它前面有很多任务或者某个任务等待时间较长比如网络请求等,那么这个定时器的执行时间和我们预
阅读全文
posted @ 2021-07-14 21:00
酷儿q
摘要:1. 文件转 Base64 在大规模使用 FileSystem接口之前,前端读取文件主要靠 input[type='file'] 元素。开发者通常会随手创建一个 FileReader 实例来读取文件,用完之后随即抛弃之,不得不说真是无情。实际上这个实例是可以复用起来的: /** * @method
阅读全文
posted @ 2021-07-14 20:58
酷儿q
摘要:拖拽属于前端常见的功能,很多效果都会用到js的拖拽功能。滑动条的核心功能也就是使用js拖拽滑块来修改位置。一个完整的滑动条包括 滑动条、滑动痕迹、滑块、文本 等元素,先把html代码写出来,如下所示: <div class="bar_wrap" id="wrap"><!--外包裹元素--> <div
阅读全文
posted @ 2021-07-14 20:55
酷儿q
摘要:实参和形参 在解释默认函数参数之前,重要的是要知道参数的默认值是什么。所以我们先回顾函数中实参和形参之间的区别。 在下面的代码中,我们创建一个函数,该函数返回一个给定数的立方: function cube(x) { return x * x * x } 此示例中的x变量是一个参数-传递给函数的命名变
阅读全文
posted @ 2021-07-14 20:53
酷儿q
摘要:概述 jsON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,jsON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。 在JS
阅读全文
posted @ 2021-07-07 19:13
酷儿q
摘要:一、什么是定时器 js提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下 setTimeout: 设置一个定时器,在定时器到期后执行一次函数或代码段 var timeoutId = window.setTimeout(func[, delay, param1, param2, ...]
阅读全文
posted @ 2021-07-07 19:12
酷儿q
摘要:1、call函数封装实现 // 手写call函数 function call(Fn,obj,...arg){ // 如果obj为null或者undefined,则指向window if(obj undefined || obj null){ // globalThis是ES11的新特性,指向全局 o
阅读全文
posted @ 2021-07-07 19:11
酷儿q
摘要:看到标题你可能会想,如此简单的问题值得去探究吗?如果我有一个json object,只需下面简单的几行代码就可以完成: var obj = { "_id": "5078c3a803ff4197dc81fbfb", "email": "user1@gmail.com", "image": "some_
阅读全文
posted @ 2021-06-26 09:40
酷儿q
摘要:js中定义函数的三种方式 通过实例来说明吧 <script> //method1 function fn() { console.log('fn created '); } //method2 var fn2 = function () { console.log('fn2 created'); }
阅读全文
posted @ 2021-06-26 09:39
酷儿q
摘要:一、可迭代对象和迭代器 1. 可迭代对象指的是,可通过 for/of 循环的对象,是es6的特性,包括(数组,字符串,set对象,map对象) 2. 扩展操作符...可以展开可迭代对象 let chars = [..."abcd"] // chars ["a","b","c","d"] let da
阅读全文
posted @ 2021-06-26 09:21
酷儿q
摘要:在前端 js 中,有着多种数组循环的方式: for 循环;while 和 do-while 循环;forEach、map、reduce、filter 循环;for-of 循环;for-in 循环; 那么哪种循环的执行速度最快呢,我们今天来看一看。 在测试循环速度之前,我们先来创建一个有 100 万数
阅读全文
posted @ 2021-06-26 09:19
酷儿q
摘要:问题 现有 40 个异步请求需要发送,但由于某些原因,我们必须将同一时刻并发请求数量控制在 6 个以内,同时还要尽可能快速的拿到响应结果。应该怎么做?这个问题与一道经典面试题很类似: 实现一个批量请求函数 multiRequest(urls, maxNum),要求如下: 要求最大并发数 maxNum
阅读全文
posted @ 2021-06-26 09:18
酷儿q
摘要:什么是数组扁平化? 数组扁平化其实就是将多维数组转为一维数组。 数组扁平化的几种方式 方式一:ES6的flat方法 const arr = [1,[2,[3,[4,5]]],6] // 方法一:数组自带的扁平化方法,flat的参数代表的是需要展开几层,如果是Infinity的话,就是不过嵌套几层,全
阅读全文
posted @ 2021-06-26 09:16
酷儿q

浙公网安备 33010602011771号