JavaScript
文章平均质量分 50
有关JavaScript技术方面的探讨
小杰90s
QQ:491583166,欢迎大家一起探讨web前端技术
展开
-
几种判断JS对象是否为空的方式
1.通过for…in循环let obj = { a: 1, b: 2}let fn = () => { for(let key in obj) { return false } return true}console.log(fn()) //true2.将对象转换成JSON字符串,判断是否为‘{}’let obj = {}let fn = () => { return JSON.stringify(obj) === '{}'}console.原创 2022-03-01 16:42:13 · 819 阅读 · 0 评论 -
JS中的宏任务与微任务
由于JS是单线程的,所以任务的执行需要按照先入后出的规则进行,同时在处理任务的时候也是需要有主次之分的任务分为同步任务和异步任务,JS会先执行同步任务,异步任务则会进行排队,按照先入先出的规则进行其中异步任务又可分为宏任务和微任务宏任务包含:a.新程序或子程序被直接执行b.事件的回调函数c.setTimeout()和setInterval()微任务包含:a.Promise .then() .catch() .finally()b.MutationObserverc.Object.obse原创 2021-12-08 10:07:50 · 1131 阅读 · 0 评论 -
一道阿里web前端面试题看出你的JS基本功
// 求出如下题目结果({} + {}).length([] + []).length(function() {}).length这道题目乍一看可能会让你有点懵,你可能会想:一个对象和一个对象相加能得到什么?还能求出其长度?其实这道题目相当考验了作为一位web前端开发工程师的基本功在看到这个题目之后,我们首先分析一下情况:1、({} + {}).length两个空对象相加,肯定不是数值运算,那么只有可能是字符串连接了,那你可能会得到 “{}{}” 这样的结果,其实不然,因为你忽视了字符串在原创 2020-11-04 16:37:52 · 7466 阅读 · 42 评论 -
web移动端适配(腾讯方案)
最近比较关注疫情,平时也比较多看腾讯新闻。我发现腾讯疫情方面的新闻是单独的一个网页做的,而且还能很好的适配移动端和PC端,做到了两者很好的兼容,于是我花了些时间来弄明白到底怎样做能达到同样的效果,经过我的一番研究,总结腾讯在移动端适配的方案就是:vw单位和transform:scale()缩放结合的产物那看我慢慢道来,不过在这之前,先要弄清楚几个问题:1.vw单位是什么?相对于视口的宽度,...原创 2020-04-04 19:04:17 · 1402 阅读 · 0 评论 -
npm常用命令
npm作为node.js的包管理器,所以安装了node.js会自动安装上npm node.js下载地址安装完成node.js之后,只要在cmd中输入npm -v,如果出现了版本号,就表示安装成功npm -v6.12.11.npm设置由于外网被墙的原因,在介绍其他npm命令之前,我们首先要解决npm安装包速度很慢的问题,有两种方式解决这个问题:1.1 将npm注册地址设置成淘宝包镜像地...原创 2020-04-03 17:50:11 · 3344 阅读 · 0 评论 -
亲测有效!新版谷歌浏览器JS跨域
此方式只需要简单地增加谷歌浏览器指令,不需要你去在代码层面做出任何调整就能实现JS的跨域测试环境:操作系统: win10 1909谷歌浏览器版本:80.0.361.69这个版本上下的一些版本应该都是可以的,但是太老或者太新的版本不一定有效,需要自己测试另外,其他带有谷歌内核的浏览器应用此方式是否有效,还需自己去测试操作:右键单击谷歌浏览器快捷方式,然后在目标最后面空一格...原创 2020-03-31 18:22:33 · 1207 阅读 · 0 评论 -
面试常考题,JS数组的去重问题
1.new Set()这种去重方式利用了Set数据格式元素不能重复的特性,我个人认为是目前最为简洁的let arr = [0, 0, 1, 10, 12, 12, 15]let uniArr = [...new Set(arr)]console.log(uniArr) //[0, 1, 10 ,12, 15]2.检测数组中是否存在某个元素的方式,例如indexOf()、lastI...原创 2020-03-30 22:46:50 · 677 阅读 · 0 评论 -
理一理JS中undefined和null与false、0、{}、[]之间的关系
首先我们知道JS的数据类型分为基本类型(包含Null、Undefined、String、Boolean、Number)和引用类型Object需要注意的是:a.类型都是大写开头,相当于其他语言的类b.typeof操作符返回的是代表类型的字符串,这里经常会有人搞混,比如typeof 10,返回的是“number”这个字符串,返回的不是数据类型,而是代表数据类型的字符串;另外,typeof一个数...原创 2020-03-25 20:01:38 · 1514 阅读 · 0 评论 -
如何避免回调地狱?快使用ES6的Promise对象
Promise的中文释义为“承诺”,ES6中的Promise是一个对象,用来按照一定的逻辑进行异步操作,并且传递相应的消息1.Promise的规范a.Promise对象有三种状态:Pending(进行中)、Resolved(已完成)、Rejected(已失败),这三种状态只能从Pending到Resolved或者从Pending到Rejected,不能逆向转换,且转换完成之后,不能再改变b....原创 2018-11-22 13:25:20 · 1699 阅读 · 1 评论 -
简化函数用法的JS箭头函数=>
ES6允许像这样定义函数如果箭头函数不需要参数或者需要多个参数,则需要使用小括号,下面是不含参数的情况,多参数参照上图如果箭头函数代码块部分多于一条语句,则需要使用大括号括起来,并可以使用return语句返回因为大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在外面加上小括号,当然也可以使用return来返回一个对象箭头函数与变量解构结合起来使用箭头函数的一个比较常...原创 2019-09-19 17:42:09 · 921 阅读 · 0 评论 -
记住这几条规律,你就能弄懂JS中的this指向问题
关于Javacript中的this指向问题,我把它们总结为如下几个规律:1.规律一:函数用圆括号直接调用,函数中的this指向window对象 function fun() { var a = 100; console.log(this.a); } var a = 200; fun(); //200 ...原创 2019-09-19 17:51:58 · 3344 阅读 · 0 评论 -
JS遍历数组有哪些方法
1.for这种方式是最传统的遍历方式,性能原则上是最好的对于for循环的改良:当数组元素个数非常多时,上例中arr.length计算消耗的时间可能会变的比较长,每循环一次都需要重新计算一次数组长度,所以可以先将数组长度保存起来,然后进行循环。因此,有如下的改良方式2.forEach()这种遍历方式看上去比较优雅方便,要元素有元素,要下标有下标,但是它作为数组的一个方法,对于某些情况(如...原创 2020-03-25 18:20:01 · 2242 阅读 · 0 评论