js
假装是个web狗
伪web,不定期更新
展开
-
web前端跨域处理
跨域处理什么是跨域什么是同源策略如何解决跨域1. 通过jsonp2. cors(跨域资源共享)3. nginx代理跨域4. nodejs中间件代理跨域什么是跨域由于浏览器同源策略限制的一类请求场景,当在不同域名、端口、协议就会构成跨域。什么是同源策略所谓的同源是指“协议、域名、端口”三者都相同;它是浏览器最核心的也最基本的安全功能,如果没有同源策略,很容易遭受xss、csfr攻击。如何解决跨域目前常用的有以下4中:1. 通过jsonp最早的解决方案,利用script标签可以跨域的原理实现原创 2020-08-25 20:23:51 · 244 阅读 · 0 评论 -
js深拷贝和浅拷贝以及实现深拷贝的方法
前言为啥写这个?因为项目中遇到了,就记录一下。如何区分深拷贝与浅拷贝简单来说就是:假设B复制了A,当修改A/B时,看A/B是否会发生变化,如果A/B也跟着变了,说明是浅拷贝,如果A/B没变,那是深拷贝。深拷贝与浅拷贝出现的根源就在于引用数据类型、内存地址。(这里需要了解一下堆栈、数据类型)深拷贝: 是在A/B计算机中分别开辟了一块内存地址 用于存放复制的对象。浅拷贝: 是一个引用传递而不是值传递,A和B指向的是同一个 内存地址 。如何把浅拷贝变为深拷贝1、最简单方式:先转换成字符串,然后在转.原创 2020-06-12 19:07:10 · 552 阅读 · 0 评论 -
vue实现五子棋
思路1.vue实现五子棋空棋盘开局。 画网格:网格有 15 行 15 列,共有 225 个交叉点黑先、白后,交替下子,每次只能下一子胜负判定 按照简单的规则,从当前下子点位的方向判断()。如果有一个方向满足连续5个黑子或白子,游戏结束。2.支持dom和canvas切换判断浏览器是否支持canvas: false: 不支持 切换dom方式 true: 支持 使用canvas3.实现悔棋功能4.实现撤销悔棋例子:为了简便,我就把所有写在一起了,按理来说是要分文件原创 2020-05-27 17:53:08 · 1971 阅读 · 0 评论 -
JavaScript 数组去重和其他操作方法集合
es6 使用 Set 和 Map 数据结构去重利用Set方法可以去重,用Array.from返回数组var array = [1,2,1,1,’1’] function unique(array){ return Array.from(new Set(array))}console.log(unique(array)) //[1,2,’1...原创 2020-04-14 15:44:39 · 199 阅读 · 0 评论 -
javascript 递归
/* departTree 里面添加 isCollaps */ getDataModel(data) { function readEveryData(val) { val.forEach((e, i) => { val[i].isCollaps = false if (val[i].childList !== u...原创 2020-04-13 20:28:25 · 87 阅读 · 0 评论 -
前端性能之减少重排和重绘
怎么减少重排和重绘??首先减少获取操作1 在for循环中,尽量不要进行样式的获取操作(因为一获取就会flush(清空)浏览器维护的队列 )2 尽量少用sytle修改样式,通过添加class进行一次性修改样式3 使用 translate 代替 left/top等,(translate只会触发重绘,不会引起重排,可以减少一次重排的时间)4 使用opacity代替visibi...原创 2020-04-13 20:25:56 · 615 阅读 · 0 评论 -
Javascript 原型以及原型链
.原型每个函数对象都会有个prototype属性,它指向了该构建函数实例化的原型。使用该构建函数实例化对象时,会继承该原型中的属性及方法。所有的对象都有__proto__属性,它指向了创建它的构建函数的原型。prototype是一个类的属性,所有类对象在实例化的时候将会拥有prototype中的属性和方法, 一个对象的__proto__属性,指向这个对象所在的类的prototype属性...原创 2020-04-13 20:14:03 · 152 阅读 · 0 评论 -
JavaScript 多种错误对象
一、SyntaxError 对象SyntaxError对象是解析代码时发生的语法错误。// 变量名错误var 1a;// Uncaught SyntaxError: Invalid or unexpected token// 缺少括号console.log 'hello');// Uncaught SyntaxError: Unexpected string上面代码的错误,都是在...原创 2019-05-29 11:32:57 · 192 阅读 · 0 评论 -
一直搞混的 三元运算符 ?: 我要记下来
对于这个 “三元运算符 ?:” 又是天使又是恶魔;都是自己的问题;JavaScript 三元运算符(即该运算符需要三个运算子)?:,也可以用于逻辑判断。(条件) ? 表达式1 : 表达式2上面代码中,如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值。var even = (n % 2 === 0) ? true : false;上面代码中,如果n可以被2整除,...原创 2019-05-29 09:37:40 · 259 阅读 · 0 评论 -
JS 封装和整理----日期格式转换和日期计算
/*1、日期格式转换 *用法说明: * 直接调用:输入时间(毫秒数)和 格式 * formatDate(new Date().getTime()); * formatDate(new Date().getTime(),'YY年MM月DD日'); * formatDate(new Date().getTime(),'今天是YY/MM/DD hh:mm:ss');...原创 2019-04-13 16:02:36 · 302 阅读 · 0 评论