摘要: 与直接使用 Promise 相比,使用 async/await 不仅可以使代码更具可读性,而且还可以在 JavaScript 引擎中实现一些有趣的优化。 这篇文章是关于一个这样的优化,涉及异步代码的堆栈追踪。 async/await 和 Promise 的根本区别在于 await fn() 暂停当前 阅读全文
posted @ 2020-09-28 15:10 浅笑· 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 首先滚动贯穿现象: 当前容器已经滚动到底部或者顶部,无法再滚动,容器会默认选择上层容器进行滚动,可以说滚动贯穿并非是一个bug,只是一种现象 解决办法,尝试了很多种解决办法,最后依然采用js阻止默认事件的方式解决 1:监听当前容器的滚动距离,判断出到了顶部或者底部 2:如果在顶部,还要往上滚动,阻止 阅读全文
posted @ 2020-09-28 15:07 浅笑· 阅读(122) 评论(0) 推荐(0) 编辑
摘要: typescript三种作用域 全局作用域 − 全局变量定义在程序结构的外部,它可以在你代码的任何位置使用。 类作用域 − 这个变量也可以称为 字段。类变量声明在一个类里头,但在类的方法外面。 该变量可以通过类的对象来访问。类变量也可以是静态的,静态的变量可以通过类名直接访问。 资源搜索网站大全ht 阅读全文
posted @ 2020-09-28 15:06 浅笑· 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 导语:JavaScript定时器是window的一个对象接口,并不是JavaScript的一部分,它的功能是由浏览器实现的,在不同浏览器之间会有所不同。定时器也可以由node.js运行时本身实现。 几周前我在推特上发布了这样一个面试问题: JavaScript面试问题: 在哪里可以找到setTime 阅读全文
posted @ 2020-09-28 15:04 浅笑· 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 使用字符串可能是一项繁琐的任务,因为有许多不同的用例。例如,将字符串转换为驼峰大小写这样的简单任务可能需要几行代码才能达到最终目标。 function camelize(str) { return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(mat 阅读全文
posted @ 2020-09-28 15:02 浅笑· 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 介绍 对于很多人来说,使用JavaScript来处理图像不是一件非常简单的事情,幸运的是我们可以借助第三方的库来实现我们想要的功能,本篇文章就介绍一有哪些JavaScript图片处理库可供我们选择和使用!以下排名不分先后 1. Pica 此插件可减小大图像的上传大小,从而节省上传时间。它可以在浏览器 阅读全文
posted @ 2020-09-28 15:01 浅笑· 阅读(1707) 评论(0) 推荐(0) 编辑
摘要: 比较 JavaScript 中的原始值非常简单。只需使用任何一种可用的相等运算符即可,例如严格相等运算符: 'a' 'c'; // => false 1 1; // => true 但是对象却有结构化数据,所以比较起来比较困难。在本文中,你将学习如何正确比较 JavaScript 中的对象。 1. 阅读全文
posted @ 2020-09-28 15:00 浅笑· 阅读(3230) 评论(0) 推荐(0) 编辑
摘要: 如果您符合高级开发人员的资格,其工作涉及JavaScript,那么在编码面试中很有可能会被问到棘手的问题。 遵循这个建议:“熟能生巧”。深入有规律地学习JavaScript将提高您的编码能力,并且可以提高您的面试技巧。 在这篇文章中,你会发现7个乍一看很简单但很棘手的JavaScript面试问题。 阅读全文
posted @ 2020-09-28 14:58 浅笑· 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 想用Promise异步实现一个递归调用的接口,用来做简单AI的动作序列。发现一开始接触这个then的时候,不是很清楚,参考了网上的一些写法,改成自己的有问题,所以先静下心来研究一下这个调用的顺序问题 例子 先看个例子,参考[1] new Promise((resolve, reject) => { 阅读全文
posted @ 2020-09-28 14:57 浅笑· 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: 前言 在当前的JavaScript中,并没有枚举这个概念,在某些场景中使用枚举更能保证数据的正确性,减少数据校验过程,下面就介绍一下JavaScript如何模拟实现枚举效果。 枚举主要特点 枚举值不能重复 不能被修改 资源搜索网站大全https://55wd.com 广州品牌设计公司http://w 阅读全文
posted @ 2020-09-28 14:50 浅笑· 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 在信息安全越来越受重视的今天,前端的各种加密也变得更加重要。通常跟服务器的交互中,为保障数据传输的安全性,避免被人抓包篡改数据,除了 https 的应用,还需要对传输数据进行加解密。 目前常见的加密算法可以分成三类 对称加密算法:AES、... 非对称加密算法:RSA、... Hash 算法:MD5 阅读全文
posted @ 2020-09-28 14:49 浅笑· 阅读(1313) 评论(0) 推荐(0) 编辑
摘要: 前言 0.1 + 0.2 是否等于 0.3 作为一道经典的面试题,已经广外熟知,说起原因,大家能回答出这是浮点数精度问题导致,也能辩证的看待这并非是 ECMAScript 这门语言的问题,今天就是具体看一下背后的原因。 数字类型 ECMAScript 中的 Number 类型使用 IEEE754 标 阅读全文
posted @ 2020-09-28 14:48 浅笑· 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 数组 Array 数组去重 function noRepeat(arr) { return [...new Set(arr)]; } 查找数组最大 function arrayMax(arr) { return Math.max(...arr); } 查找数组最小 function arrayMin 阅读全文
posted @ 2020-09-28 14:47 浅笑· 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Array (数组)对象 数组对象的作用是:使用单独的变量名来存储一系列的值。 创建Array对象的语法 new Array(); new Array(size); new Array(element0, element1, ..., elementn); 参数 参数 size 是期望的数组元素个数 阅读全文
posted @ 2020-09-28 14:45 浅笑· 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 要求 : 两个数组中是否包含公共项,包含返回true,不包含返回false 方法一: 1.使用内置ES6函数some()遍历第一个数组每个元素测试2.第二个数组使用内置函数includes来检查元素是否存在第一个数组中 //第一种 function findCommonElements3(arr1, 阅读全文
posted @ 2020-09-28 14:44 浅笑· 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 最近在开发一个个人项目时,我冒出了一个尝试让浏览器说话的想法。不知道该怎么做,于是,我在网上寻找了一下答案,在MDN上,我找到了答案。让我们来看看如何通过JavaScript让浏览器说话。 1. 最简单的例子 让我们来创建一个基础函数,这个函数的参数为我们想说的话或者词,最后让我们的浏览器说出来。我 阅读全文
posted @ 2020-09-28 14:43 浅笑· 阅读(796) 评论(1) 推荐(0) 编辑
摘要: 1.何为声明提升? 在JavaScript中,当出现var声明的变量或者function声明的函数时,会将该声明提到当前作用域的前面执行,这便是声明提升。值得注意的是,只是提升了声明操作,赋值还是在原来的位置进行。声明提升包括变量声明提升和函数声明提升。 变量声明提升 先来看一看变量的声明提升。比如 阅读全文
posted @ 2020-09-28 14:41 浅笑· 阅读(191) 评论(0) 推荐(0) 编辑
摘要: jsDoc 是一个自动化生成 JavaScript 文档工具,它是利用对 JavaScript 函数的特定注释来编译成 html 文件的一个文档工具。 安装 全局安装或者局部安装: npm install jsdoc -g npm install jsdoc -save-dev 基本使用 只要在 J 阅读全文
posted @ 2020-09-28 14:40 浅笑· 阅读(675) 评论(1) 推荐(0) 编辑
摘要: 基本类型值有:undefined,NUll,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,他们的值保存在栈空间,我们通过按值来访问的。 (1)值类型:数值、布尔值、null、undefined。(2)引用类型:对象、数组、函数。 如果赋值的是引用类型的值,则必须 阅读全文
posted @ 2020-09-28 14:39 浅笑· 阅读(154) 评论(0) 推荐(0) 编辑
摘要: var numA = 0.1; var numB = 0.2; alert( numA + numB ); 0.1 + 0.2 = 0.30000000000000004。计算精度误差问题(和二进制相关)。 对于浮点数的四则运算,几乎所有的编程语言都会有类似精度误差的问题,只不过在 C++/C#/J 阅读全文
posted @ 2020-09-28 14:36 浅笑· 阅读(132) 评论(0) 推荐(0) 编辑