随笔分类 -  javascript高级编程

摘要:首先我们先看看同步与异步的定义,及浏览器的执行机制,方便我们更好地理解同步异步编程。 浏览器是多线程的,JS是单线程的(浏览器只分配一个线程来执行JS) 进程大线程小:一个进程中包含多个线程,例如在浏览器中打开一个HTML页面就占用了一个进程,加载页面的时候,浏览器分配一个线程去计算DOM树,分配其 阅读全文
posted @ 2021-08-31 10:56 ____chen 阅读(660) 评论(0) 推荐(0) 编辑
摘要:require.context是什么 一个webpack的api,通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用i 阅读全文
posted @ 2021-04-02 10:14 ____chen 阅读(547) 评论(0) 推荐(0) 编辑
摘要:在前端开发的过程中,我们经常会需要绑定一些持续触发的事件,如 resize、scroll、mousemove 等等,但有些时候我们并不希望在事件持续触发的过程中那么频繁地去执行函数。 通常这种情况下我们怎么去解决的呢?一般来讲,防抖和节流是比较好的解决方案。 让我们先来看看在事件持续触发的过程中频繁 阅读全文
posted @ 2021-03-16 21:55 ____chen 阅读(212) 评论(0) 推荐(0) 编辑
摘要:目录 String.prototype.matchAll - 由 Jordan Harband 提出 import() - 由 Domenic Denicola 提出 BigInt – 任意精度整数,由 Daniel Ehrenberg 提出 Promise.allSettled - 由 Jason 阅读全文
posted @ 2021-01-28 09:20 ____chen 阅读(236) 评论(0) 推荐(0) 编辑
摘要:数组扁平化概念 数组扁平化是指将一个多维数组变为一维数组 [1, [2, 3, [4, 5]]] > [1, 2, 3, 4, 5] 实现 1. reduce 遍历数组每一项,若值为数组则递归遍历,否则concat。 function flatten(arr) { return arr.reduce 阅读全文
posted @ 2020-08-26 13:54 ____chen 阅读(15128) 评论(1) 推荐(1) 编辑
摘要:js面向对象的几种设计模式 1.构造函数模式:返回一个新对象 constructor 通过new来实现 function Person(name,age){ this.name = name; this.age = age; } Person.prototype.sayName = function 阅读全文
posted @ 2020-08-19 17:37 ____chen 阅读(545) 评论(0) 推荐(0) 编辑
摘要:1.利用Cookie,来设置接口携带的‘token’ 执行命令npm install js-cookie,在js工具类中引入, /** @format */ import Cookie from 'js-cookie'; function getToken() { return Cookie.get 阅读全文
posted @ 2019-10-30 11:29 ____chen 阅读(7871) 评论(0) 推荐(0) 编辑
摘要:一、 同源策略 所有支持Javascript的浏览器都会使用同源策略这个安全策略。看看百度的解释: 同源策略,它是由Netscape提出的一个著名的安全策略。 现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。 当一个浏览器的两个tab页中分别打开百度和 阅读全文
posted @ 2019-01-18 15:28 ____chen 阅读(1136) 评论(0) 推荐(0) 编辑
摘要:我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,越来越看不懂,那么如何更优雅的写判断逻辑,本文带你试一下。 举个例子 先看一段代码 /** * 阅读全文
posted @ 2019-01-17 09:25 ____chen 阅读(4643) 评论(3) 推荐(4) 编辑
摘要:彻底弄懂js中this指向! this是什么?定义:this是包含它的函数作为方法被调用时所属的对象。 首先,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(虽然在很多情况下那样去理解不会出什么问题,但是实际上会 阅读全文
posted @ 2018-07-22 22:26 ____chen 阅读(1012) 评论(2) 推荐(4) 编辑
摘要:最近在研究cmd和amd,在网上看到一篇不错的文章,整理下看看。 在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层 阅读全文
posted @ 2018-07-03 17:10 ____chen 阅读(1062) 评论(0) 推荐(0) 编辑
摘要:说好的讲解JavaScript继承,可是迟迟到现在讲解。废话不多说,直接进入正题。 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考《面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式》,接下来讲一般通过那些方法完成Jav 阅读全文
posted @ 2018-06-11 11:26 ____chen 阅读(242) 评论(0) 推荐(0) 编辑
摘要:什么是面向对象?面向对象是一种思想!(废话)。 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法。这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作。接下来将为大家讲解在JS中面向对象的实现。 工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,而由 阅读全文
posted @ 2018-06-11 11:10 ____chen 阅读(205) 评论(0) 推荐(0) 编辑
摘要:这篇文章给大家总结下JS实现数组去重方法(六种方法),面试中也经常会遇到这个问题。文中给大家引申的还有合并数组并去重的方法。 这篇文章给大家总结下JS实现数组去重方法(六种方法),面试中也经常会遇到这个问题。文中给大家引申的还有合并数组并去重的方法。 方法一: 双层循环,外层循环元素,内层循环时比较 阅读全文
posted @ 2018-06-01 14:13 ____chen 阅读(9187) 评论(2) 推荐(0) 编辑
摘要:基本概念 cookie:是网景公司的前雇员在1993年发明。它的主要用于保存登陆信息,比如登陆某个网站市场可以看到'记住密码’,这就是通过在cookie中存入一段辨别用户身份的数据来实现的。 sessionStorage:会话,是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但是页面关 阅读全文
posted @ 2018-06-01 14:10 ____chen 阅读(828) 评论(0) 推荐(0) 编辑
摘要:【JS】深拷贝与浅拷贝的区别,实现深拷贝的几种方法 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这些概念能更好的 阅读全文
posted @ 2018-06-01 14:06 ____chen 阅读(1398) 评论(0) 推荐(0) 编辑
摘要:基于html5的多图片上传 本文是建立在张鑫旭大神的多文图片传的基础之上. 首先先放出来大神多图片上传的博客地址:http://www.zhangxinxu.com/wordpress/2011/09/%E5%9F%BA%E4%BA%8Ehtml5%E7%9A%84%E5%8F%AF%E9%A2%8 阅读全文
posted @ 2018-05-28 17:18 ____chen 阅读(412) 评论(0) 推荐(0) 编辑
摘要:js 数组常用方法,数组的拷贝(不影响原数组),数组相等 置顶2017年07月17日 17:39:26 阅读数:4640 置顶2017年07月17日 17:39:26 阅读数:4640 阅读数:4640 改变原数组的方法: pop();删除尾部的第一个元素并且返回这个元素; var a = [1,2 阅读全文
posted @ 2018-05-28 11:47 ____chen 阅读(1698) 评论(0) 推荐(0) 编辑
摘要:js对象浅拷贝和深拷贝详解 本文为大家分享了JavaScript对象的浅拷贝和深拷贝代码,供大家参考,具体内容如下 1.浅拷贝 拷贝就是把父对像的属性,全部拷贝给子对象。 下面这个函数,就是在做拷贝: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var Chinese = { 阅读全文
posted @ 2018-05-28 11:42 ____chen 阅读(500) 评论(0) 推荐(0) 编辑
摘要:js 基本类型与引用类型的区别 ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型。也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可变类型,其实这些叫法都是依据这两种的类型特点来命名的,大家爱叫啥就叫啥吧 。1.基本类型基本的数据类 阅读全文
posted @ 2018-04-02 11:00 ____chen 阅读(5789) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示