将日期展示为农历的方法
简介将日期展示为农历:辛丑(牛)年 五月十三
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941 ...
浏览器5-浏览器安全简单了解
简介
一、同源策略同源策略:url协议、域名、端口相同,就是同源。默认两个不同的源之间不能操作dom和访问资源
1.dom层面,不能互相访问,postmessage跨文档消息机制
2.数据层面,cookie,localstorage不能互相读取,
3.网络层面,不能跨域请求,跨域资源共享策略
二、安全问题1. xss攻击,恶意脚本攻击类型1.存储型,在提交表单时把脚本提交,服务端保存在数据库,当返回给前端再使用时就会执行脚本
2.反射型,提交表单,服务端不保存,处理后即返回。提交脚本也就会返回脚本
3.页面劫持,本地抓包等方式,不经过服务端直接控制页面
方案1.服务端对脚本过滤
2.csp策略:资源黑白名单,禁止加载哪些脚本,禁止向第三方域提交数据
3.设置cookie时加上httponly,则cookie无法通过脚本document.cookie读取
2. csrf攻击,跨站请求伪造类型1.img标签的src是一个请求,而不是图片资源。
2.点一个链接,自动发起请求
解决1.设置cookie的samesite属性值是strict,在第三方域下请求本域时就不会带上有这个属性值的coo ...
export2Excel的使用
简介js导出excel,(数据不分页的情况下,即前端能拿到全部数据才能导出全部数据),原文链接https://blog.csdn.net/weixin_46705618/article/details/107377103
1.安装依赖包
123npm  install  -S file-savernpm  install  -S  xlsxnpm  install  -D script-loader
2.把两个js文件放到项目里 Blob.js、Export2Excel.js
地址(私有库):https://gitee.com/lishichang/common/tree/master/Export2Excel
3.main.js中引入
12import Blob from './Excel/Blob.js'import Export2Excel from './Excel/Export2Excel.js'
4.vue组件(element-ui的按钮)
1234567891011121314151617181920212223242526 ...
css-margin
简介父子级同时用margin-top时,不会叠加,按较大的值
早就知道有这么个事,但没记的很清楚,遇到必需要查一下,很耽误时间,现在记录一下。
行内标签的上下的内外边距无效,左右有效
两个同级块标签,上方的块标签的margin-bottom,和下方的块标签的marign-top会重叠
两个同级行块标签,上方的块标签的margin-bottom,和下方的块标签的marign-top不会重叠
element-ui的table的current-change和row-click的顺序
简介父子级同时用margin-top时,不会叠加,按较大的值
先执行current-change的回调,再执行row-click的回调
js-深拷贝
简介
一.为什么需要深拷贝js中数据类型分基本数据类型和引用数据类型,基本数据类型存放在栈内存,引用数据类型存放在堆内存,在栈内存中只存放一个指针,指向堆内存中的引用。浅拷贝只是拷贝了指针,修改数据会影响源数据。如果不想改变源数据就需要深拷贝。
二.深拷贝方法1.JSON.parse, JSON.stringify这种方法无法拷贝值为undefined、function、regexp类型的属性
1let obj2 = JSON.parse(JSON.stringify(obj1))
2.Object.assign()这种方法只能对只有一个层级的对象(所有属性的值都是基础数据类型)深拷贝
1Object.assign({}, obj1, obj2, obj3)
3.递归123456789101112function deepClone(obj) {  	if(obj === null) return obj    if(typeof obj != 'object') return obj    let result = obj in ...
js-防抖节流
简介
1.防抖操作停止后间隔一定时间执行
1234567891011121314function debounce(method,delay) {    let timer = null    return function () {      	// 事件默认参数可通过arguments使用      	console.error(arguments)        if(timer) {            clearTimeout(timer)            timer = null        }        timer = setTimeout(() => {            method.call(this, arguments)        }, delay);    }}
12345678910111213141516171819202122// 带immediate的,immediate为true相当于封装了一个隐藏的loadingfunction d(fn ...
git-配置
Git,https://developer.aliyun.com/article/716483
配置用户名12345git config --global user.name ""// 配置用户名和邮箱其实是在全局的gitconfig目录下添加了以下内容(~/.gitconfig)[user]        name = abc        email = abc@abc.com
配置邮箱1git config --global user.email ""
每次进行git操作都会让输入账号密码,可以用下面的命令长期存储一下账号密码12345// 输入一次密码后,git会记住账号密码。git config --global credential.helper store// 这个命令其实是在主目录的gitconfig目录下添加了以下内容(~/.git/config)[credential]			helper = store
git怎么知道是哪个平台的配置呢,拉取哪个平台的代码就会判断是否有邮箱和密码,是否是这个平台的,再判断是否有权限? ...
日常简单问题记录(持续更新)
开始一种经验记录,以提升效率,可能不会深入了解(如果深入了解了就会在此文档中删掉对应内容,而去新写一篇详细文档),长期更新,经常看看
1.此处的tagName是大写的标签名,如LI, DIV。
1234function clickFunc(e) {    e = e || event // 这里不主动传参数的话其实并没有参数,event是在事件函数中就存在的    console.error(event.target.tagName)}
2.一个拼音字典,js获取汉字拼音https://blog.csdn.net/m0_51479322/article/details/113073493
1234567891011// npm地址https://www.npmjs.com/package/pinyin-pro// githubhttps://github.com/zh-lx/pinyin-pro// 安装yarn add pinyin-pro// 使用import { pinyin } from 'pinyin-pro' ...
git-提交报错husky > pre-commit
git 提交报错用 vscode 的 gitlens 扩展,进行可视化的提交代码时,暂存了代码,然后点击 push 时,报错 husky > pre-commit (node v12.13.0)
husky是一个githooks工具, 可以防止使用 Git hooks 的一些不好的 commit 或者 push,不深入研究。
问题这是本地项目中的.git 下的一个文件导致的提交失败,这个文件是 pre-commit 文件。找到项目中的.git 文件夹(需要显示隐藏文件才会出现),进入就能看到关于 git 的一些文件。
.git - hooks - pre-commit(客户端钩子),它会在 git 键入提交信息前运行做代码风格检查,如果代码不符合相应规则,则报错。
解决1.将此文件删除
2.卸载 husky。第一种方法 npm uninstall husky –save;第二种方法:把 package.json 中的 devDependencies 节点下的 husky 库删掉,然后重新 npm i 就行
3.将 git commit -m “xxx” 改为 git comm ...
