随笔分类 -  前端技术栈 / JavaScript

摘要:手写foreach /** * forEach(cb,thisArg) * cb : (value: any, index: number, array: any[]) => void, thisArg?: any): void * 接受第二个参数thisArg,只是定制forEach中this的指 阅读全文
posted @ 2022-01-25 12:30 IslandZzzz 阅读(197) 评论(0) 推荐(0) 编辑
摘要:正则匹配指定规则字符串的中间内容 假设前缀为prefix,后缀为suffix /prefix(.*)suffix/ 阅读全文
posted @ 2022-01-21 17:41 IslandZzzz 阅读(13) 评论(0) 推荐(0) 编辑
摘要:js开发中可用的位运算 按位与判断数值是否相等 &:按位与,位数都为1才返回1 可用来对2的次幂数做比较 1、2、4、8、16、32、64 0b0001 0b0010 0b0100 0b1000 0b10000 0b100000 0b1000000 左右移 >> 带符号右移 >>> 无符号右移 2 阅读全文
posted @ 2021-12-28 15:06 IslandZzzz 阅读(42) 评论(0) 推荐(0) 编辑
摘要:/* let arr = [ { id: 1, name: '部门1', pid: 0 }, { id: 2, name: '部门2', pid: 1 }, { id: 3, name: '部门3', pid: 1 }, { id: 4, name: '部门4', pid: 3 }, { id: 5 阅读全文
posted @ 2021-12-22 17:17 IslandZzzz 阅读(60) 评论(0) 推荐(0) 编辑
摘要:![](https://img2020.cnblogs.com/blog/1471668/202112/1471668-20211212233848997-1768630309.png) 阅读全文
posted @ 2021-12-12 23:39 IslandZzzz 阅读(13) 评论(0) 推荐(0) 编辑
摘要:const obj = { a: { b: 1, c: 2, d: { e: 5 }, }, b: [1, 3, { a: 2, b: 3 }], c: 3 } /* { 'a.b': 1, 'a.c': 2, 'a.d.e': 5, 'b[0]': 1, 'b[1]': 3, 'b[2].a': 阅读全文
posted @ 2021-12-03 15:25 IslandZzzz 阅读(1714) 评论(0) 推荐(0) 编辑
摘要:js逗号运算符 按照从左到右的顺序运算,返回右边的值 babel编译的时候常看见这种case (0,a.fn)(arg) 其实就是让fn中的this指向window var temp; temp = a.fn() // this window temp() reduce 当数组长度为1,调用redu 阅读全文
posted @ 2021-10-24 17:35 IslandZzzz 阅读(369) 评论(0) 推荐(0) 编辑
摘要:跨域 什么是跨域? 违反了浏览器同源策略的都是跨域 同源策略 何谓之同源? 同源即同协议、同域名、同端口,否则为跨域 同源策略会阻止一个域的JavaScript脚本和另外一个域的内容进行交互 跨域的表现 跨域例: http://www.test.cn:3000 https://www.test.cn 阅读全文
posted @ 2020-08-09 13:42 IslandZzzz 阅读(206) 评论(0) 推荐(1) 编辑
摘要:iconfont使用 1 单个icon使用 直接下载png、svg、ai等放在html中使用 svg 可以通过fill控制颜色 通过width和height控制大小和形状 应用场景 这种情况适合用在图标引用少、以后也不需要特别维护的场景 比如设计师用来坐demo原型,前端临时做个活动页面 <svg 阅读全文
posted @ 2020-07-19 00:10 IslandZzzz 编辑
摘要:箭头函数 箭头函数是ES6的新特性,简化了函数的写法 普通函数 this指向调用者 具有prototype this指向可以被call/apply/bind改变 普通函数的this在运行时创建,箭头函数的this是声明时确定 匿名函数 表现为function后面不带名字的函数,但是可以用一个变量接收 阅读全文
posted @ 2020-07-12 21:14 IslandZzzz 阅读(965) 评论(0) 推荐(1) 编辑
摘要:JS函数参数传递的问题 思考以下代码打印结果 function test(o) { o.age = 50; o = { name: 'li si', age: 100 } return o; } const boy = { name: 'zhang san', age: 16 } const boy 阅读全文
posted @ 2020-06-10 22:54 IslandZzzz 阅读(290) 评论(0) 推荐(0) 编辑
摘要:EventLoop 宏任务和微任务 js中用来存储执行回调函数的队列包括2个不同的特定的队列,即宏队列和微队列 宏任务包括定时器、ajax异步回调、事件回调 微任务包括promise,mutation 需要明确的是,所有函数,不论宏任务队列微任务队列或者是同步执行的函数,最终都是要放到在栈里面调用执 阅读全文
posted @ 2020-06-07 22:14 IslandZzzz 阅读(685) 评论(0) 推荐(0) 编辑
摘要:async/await ES7语法糖,基于Promise,处理异步任务更加方便 async 函数的返回值为promise对象,promise对象的结果由async函数执行的返回值决定 /* async: async不一定需要await,但是await一定需要async 加了async之后,函数的执行 阅读全文
posted @ 2020-06-07 21:25 IslandZzzz 阅读(7021) 评论(0) 推荐(0) 编辑
摘要:初探Promise 中断与异常传送 Promise是JavaScript ES6对于异步任务的解决方案 从语法上来说,Promise是一个构造函数,通过new关键字来新建对象 从功能上来说,Promise用来封装一个异步操作,无论异步操作是成功或失败,Promise都将承诺给你返回一个确切的答案,一 阅读全文
posted @ 2020-06-05 23:55 IslandZzzz 阅读(539) 评论(0) 推荐(0) 编辑
摘要:Map map的主要特点在于,除了字符串之外,它还可以使用其他类型来作为键值对的键。 Map的实例化 所有实现了iterable接口的双元素数组结构都可以作为Map构造的参数。 如数组,map,set //数组作为实例化参数 let params = ['key1', 'value1'] let m 阅读全文
posted @ 2020-06-05 22:54 IslandZzzz 阅读(16901) 评论(0) 推荐(0) 编辑
摘要:Set 之前学习了Set,好久没用又忘了,现在复习一遍,做个记录,方便以后查阅 先打印一下Set实例,看看里面都有些什么 Set类 Set类的构造函数是Set()本身,可以传入参数对Set实例进行初始化,但是这个参数必须实现了Iterable接口,Array、Map、Set都实现了iterable接 阅读全文
posted @ 2020-06-02 15:44 IslandZzzz 阅读(1271) 评论(0) 推荐(0) 编辑
摘要:JavaScript 浅复制与深复制 1 赋值 在JavaScript中,基本数据类型存在栈中,对象作为引用数据类型存在堆中。 JavaScript赋值,对于栈中基本数据类型的赋值,操作的是栈,传递的是值;对于堆中对象的赋值,操作的是栈,传递的是引用。 以下主要讨论堆中的赋值。 如 obj = ob 阅读全文
posted @ 2020-04-01 23:29 IslandZzzz 阅读(394) 评论(0) 推荐(1) 编辑
摘要:websocket 简介 "webSoket" 是HTML5提供的一种在单个TCP连接上进行全双工通讯的协议。 特点: 主要优点在于服务端主动向客户端推送数据以及实时通讯。 允许服务端主动向客户端推送数据。一次握手动作就创建持久连接,进行双向数据传输。 在没有websocket之前采用Ajax轮询( 阅读全文
posted @ 2020-03-19 22:33 IslandZzzz 阅读(299) 评论(0) 推荐(0) 编辑
摘要:delete 语法:Boolean delete obj.property 主要用于删除对象的属性,删除成功或失败会返回相应布尔值 可以删除非关键字定义的全局变量(var a = 1不能被删除,a= 1可以) 删除对象中不存在的属性会返回true 删除数组元素不会改变数组的长度(索引不变),被删除的 阅读全文
posted @ 2020-03-19 13:00 IslandZzzz 阅读(354) 评论(0) 推荐(0) 编辑
摘要:前端路由 前端路由的本质是监听url变化,然后匹配路由规则,去做一些dom的增删或替换,无需刷新就可以显示相应的页面,目前单页面路由主要有两种方式 hash 模式 history 模式 hash模式实现路由 为什么要使用hash模式:页面使用Ajax发送异步请求可以实现无缝刷新,但这种方式也存在使得 阅读全文
posted @ 2020-03-16 09:40 IslandZzzz 阅读(1873) 评论(0) 推荐(0) 编辑

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