JavaScript解密
文章平均质量分 64
踏上js的不归路
秋水不寒
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。
展开
-
双问号操作符和可选链操作符
双问号操作符(??),也被称作空值合并运算符,当左侧的操作数为null或者undefined时,返回其右侧操作数,否则返回左侧操作数constfoo=null??'defaultstring';console.log(foo);//"defaultstring"可能有人会问??和||有什么区别呢???的左侧只判断两种情况:null和undefined,而||的左侧只要是假值(包括''和0)都会返回右侧的值constnumber=0;...原创 2021-10-14 15:09:24 · 261 阅读 · 0 评论 -
前端编码规范
以下为小组代码提交时git批注规范,请各位在提交代码时严格遵守,方便大家对工作代码追踪 提交git代码批注规范一、本人直接提交1、一般,提交代码要求功能任务完成便提交,除有依赖情况可提前提交2、提交批注格式:Dev/Fix/BugFix/Mod-任务序号(wbs中序号)-任务名(wbs中任务名)-状态(百分比,无需百分号,同wbs汇报工作状态)-特殊说明3、特殊说明情况:(1)直接开发完成的,无需添加特殊说明(2)功能开发完成后,内部review或内部联调问题修正,使用Fix...原创 2021-07-23 00:00:56 · 221 阅读 · 2 评论 -
对象数组去重
let objArr = [ { 'msg':'ABC' }, { 'msg':'ABC' }, { 'msg' : 'DFG', }, { 'msg' : 'TGB', }];//对象数组的去重 function uniqObjInArray(objarray){ let len =.原创 2020-09-24 16:43:33 · 578 阅读 · 0 评论 -
浅谈深拷贝和浅拷贝
浅谈深拷贝和浅拷贝深拷贝和浅拷贝的区别为什么要使用深拷贝?深拷贝的要求程度怎么检验深拷贝成功只对第一层级做拷贝拷贝所有层级存在大量深拷贝需求的代码——immutable提供的解决方案正文前言:最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时我当然不会主动犯这个错误,但很多时候,一不小心可能就会修改了原来的对象,例如:var newObj = obj; .原创 2020-06-29 19:03:36 · 242 阅读 · 0 评论 -
JS数组奇巧淫技
前段时间接手一个项目,逻辑晦涩难懂,代码庞大冗余,上手极其困难。很大的原因就是数组方法使用不熟练,导致写出了很多垃圾代码,其实很多地方稍加改动就可以变得简单高效又优雅。因此我在这里总结下数组的常用方法和奇巧淫技(奇巧淫技主要是reduce~)。数组操作首先要注意且牢记splice、sort、reverse这3个常用方法是对数组自身的操作,会改变数组自身。其他会改变自身的方法是增删push/pop/unshift/shift、填充fill和复制填充copyWithin。先说数组常用方法,后说使用误.转载 2020-06-23 16:00:25 · 562 阅读 · 0 评论 -
总结 JavaScript 中所有的运算符优先级和结合性
优先级由高到低:1 ()2 ./[] 左2 new MemberExpression Arguments3 new MemberExpression 右4 () 函数调用 左5 ++/--6 +/-/~/!/delete/typeof/void/await 右7 ** 右8 *///% 左9 +/- 左10 << >> >>> 左11 < > <= >= instance of in 左12 == === != !=原创 2020-06-16 20:31:01 · 207 阅读 · 0 评论 -
数组有哪些方法支持响应式更新,如不支持如何处理,底层原理如何实现的?
支持:push()、pop()、shilt()、unshiift()、splice()、sort()、reverse()不支持:filter()、concat()、splice()原理同样是使用Object.defineProperty对数组方法进行改写原创 2020-05-05 19:38:17 · 288 阅读 · 0 评论 -
整理一下微任务和宏任务
整理一下微任务和宏任务js同步异步同步任务:指的是在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务 异步任务: 指的是不进入主线程,某个异步任务可以执行了,该任务才会进入主线程执行。js异步运行机制异步执行的运行机制如下(同步任务也如此,因为它可以被视为没有异步任务的异步执行):所有同步任务都在主线程上执行,形成一个执行栈(execution context...原创 2019-12-14 20:23:29 · 400 阅读 · 0 评论 -
js中this的指向问题归纳总结
最近发现在对JS的学习中有很多朋友对this的指向问题还是有很大的误区或者说只是大致了解,但是一旦遇到复杂的情况就会因为this指向问题而引发各种bug。所以这篇文章主要给大家介绍了关于js中this的指向问题的相关资料,需要的朋友可以参考下前言js中this指向问题是个老生常谈的问题了,下面这篇文章再来给大家介绍下,大家可以看看,更深入的了解了解,下面话不多说了,来一起看看详细的介绍吧...原创 2019-12-03 09:57:02 · 388 阅读 · 0 评论 -
深入理解JavaScript事件冒泡
一、什么是事件冒泡在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。打个比方说:你在原创 2016-05-27 14:29:20 · 3412 阅读 · 0 评论 -
十分钟知道JavaScript 闭包
前言:JavaScript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包对于那些使用传统静态语言C/C++的程序员来说是一个新的语言特性。本文将以例子入手来介绍JavaScript闭包的语言特性,并结合一点ECMAScript语言规范来使读者可以更深入的理解闭包。本文是入门文章,例子素材整理于网络,如果你是高手,欢迎针对文章提出技术性建议和意见。本文讨论的是Javascrip转载 2016-05-06 17:41:27 · 412 阅读 · 0 评论 -
JavaScript 禁止复制与粘贴
oncopy事件:定义和用法oncopy 事件在用户拷贝元素上的内容时触发。提示: oncopy 事件在用户拷贝元素时也会触发,例如, 拷贝 元素。提示: oncopy 事件通常用于 type="text" 的 元素。提示: 有三种方式可以拷贝元素和内容:按下 CTRL + C在你的浏览器的 Edit(编辑) 菜单中选择 "Copy(复制)"邮件原创 2016-05-16 00:05:58 · 5570 阅读 · 0 评论 -
学习JavaScript应该尽早知道的几个技巧
Shortcut Notations 简洁写法One of the things I love most about JavaScript now is shortcut notations to generate objects and arrays. So, in the past when we wanted to create an object, we wrote:在过去翻译 2016-05-17 14:40:06 · 9020 阅读 · 0 评论 -
defer、async属性以及JS异步加载并执行解决方案
优化脚本文件的加载提高页面的加载速度,一直是前端工程师提高页面加载速度很重要的一条。因为涉及到各个浏览器对解析脚本文件的不同机制,以及加载脚本会阻塞其他资源和文件的加载。当浏览器解析器遇到时,会立即加载(加载:下载,解析和执行),浏览器对其他资源和文档的加载会停止。为了提高页面的加载速度,得让JS不阻塞其他资源的加载。Webkit 和 Firefox 对JS的执行过程进行了优化,增加了“预原创 2016-05-17 15:16:41 · 7949 阅读 · 0 评论 -
JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
函数 :split() 功能 :使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 函数 :Join() 功能 :使用您选择的分隔符将一个数组合并为一个字符串 例原创 2016-05-17 17:20:49 · 783 阅读 · 0 评论 -
面试问到 Promise,这样回答最完美了
promise是什么?Promise是异步编程的一种解决方案,比传统的回调函数和事件更合理和强大。所谓Promise,简单来说就是一个容器,里面保存着某个未来才会结束的事情(通常是一个异步操作)。从语法上说,Promise是一个对象,从他可以获取异步操作的消息。特点: 对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulf...转载 2019-08-28 22:04:54 · 7965 阅读 · 0 评论