- 博客(17)
- 资源 (2)
- 收藏
- 关注
原创 vue插槽
1.默认插槽默认插槽://子组件<div> <slot>默认内容</slot></div>//父组件<div> <Children> <p>123</p> </Children></div>//父组件的p标签会替换子组件slot标签中的内容2.具名插槽具名插槽://子组件<div> <slot
2021-11-26 16:42:15
551
原创 前端安全之攻击
1.xss攻击在网页中插入第三方脚本,例如<script>alert(document.cookie)>/script>获取cookie,用户查看网页时,获取到当前用户的cookie,并通过脚本发送到攻击者的服务器,此时攻击者就可以获取用户的cookie,cookie中包含很多用户敏感信息。预防:替换特殊字符,如<变成*< ;* >变成*>;*,网站维护者通过对特殊字符进行转义,使脚本无法执行,从而不能获取到用户的cookie。前端在脚
2021-11-25 15:04:30
107
原创 cookie、localstorage、sessionstorage
cookie前端通过document.cookie = “username=‘zhangsan’”,设置cookie信息,并且再次通过document.cookie =” psw=123 “设置,不是去覆盖cookie的值,是在后面追加,最终获取到的cookie值为username='zhangsan‘;psw=123,以分号分割。如果设置的key已存在,此时为覆盖值。cookie如果不手动设置过期时间,则会随着浏览器的关闭而清除,设置了过期时间,则会保存在内存中,直到过期时间结束才消失。cooki
2021-11-25 14:58:19
482
原创 js原型和原型链
1、构造函数的原型对象,一般存放实例所需要的公共属性或方法2、构造函数Handphone的prototype是该构造函数的原型对象。Handphone.prototype(是一个对象)中有constructor属性,Handphone.prototype.constructor指向该构造函数Handphone本身。3、(car.proto : Car.prototype;)原型prototype是属于实例对象的。__proto__可以理解为一个容器,用来存放原型对象prototype。Car.p
2021-11-12 14:18:24
364
原创 typeof判断null为object的问题
js 在底层存储变量的时候,会在变量的机器码的低位1-3位存储其类型信息000:对象010:浮点数100:字符串110:布尔1:整数但是,对于 undefined 和 null 来说,这两个值的信息存储是有点特殊的。null:所有机器码均为0undefined:用 −2^30 整数来表示所以,typeof 在判断 null 的时候就出现问题了,由于 null 的所有机器码均为0,因此直接被当做了对象来看待。...
2021-11-12 14:07:51
223
原创 let、const、var区别
varvar声明存在变量提升,var声明的变量的作用域有函数上下文和全局上下文两种情况。letlet的作用域是块级的,块级作用域是一个新概念,由大括号{}界定,如if(){},while(){},function(){}等有大括号的都有独立的作用域.let不允许重复声明, 不允许在相同的作用域下,重复声明同一变量const声明的常量,声明时必须初始化一个值,而且后期不能更改。如果声明的变量为引用类型的值,这个值不能被重新赋值为其他引用值,但是可以对引用值的键进行修改赋值。const的值是否能修改
2021-11-12 14:05:41
79
原创 js 原型链、作用域经典面试题(附解析)
function Foo(){ getName = function(){ console.log(1) } return this;}Foo.getName = function(){ console.log(2)}Foo.prototype.getName = function(){ console.log(3)}var getName = function(){ console.log(4)} function getN.
2021-10-03 22:51:54
511
原创 2021-07-05 ajax发送请求
ajax发送get请求前台:let xhr=new XMLHttpRequest();xhr.open("get",`/check?username=${this.username}`,true);xhr.onload=function(){ //后台返回的数据(ctx.body) console.log(xhr.responseText)}xhr.send()后台:router.get("/check",(ctx,next)=>{ //接收querystring形式的参数
2021-07-05 11:01:04
98
原创 promise.then和settimeout、宏任务微任务问题
宏任务:[task1,task2,task3…]颗粒度大 实时性不强,要排队微任务:缩小颗粒度[task1[m1…],task2[m1…],task3[m1…]],直接插队,实时性强微任务:在上一个宏任务之后,下一个宏任务之前执行。第一个 script 标签的代码是第一个宏任务promise里面是同步,promise.then()是微任务,setTimeout是宏任务。异步任务大致分为:微任务(micro task,如:promise.then、MutaionObserver等)和宏任务(macr
2021-05-31 11:04:39
2702
原创 git 命令大全及使用流程
git init 初始化仓库,生成一个.git文件夹工作目录(或touch 文件名)创建一个新文件,通过git add 文件名(所有文件:git add .)追踪新建的文件或已修改的文件,将修改的文件添加到暂存区git commit -m "描述文字"提交 到本地仓库。此处如果提交失败说明文件未被追踪,可通过git status查看文件的状态,并返回上一步操作。git log 查看提交成功的信息如果有乱码问题。文件名乱码: git config --global core.quotepath f.
2021-04-28 19:58:35
125
原创 提交本地代码到Git仓库并推送到码云
1. 新建子分支在处于master分支的情况下git checkout -b goods_cate创建子分支git push -u origin goods_cate将新建的子分支推送到码云中2. 写完代码将代码保存并提交到码云中在终端通过git命令将修改过的代码提交到码云中git branch 查看当前所处分支git add .将所有的修改添加到仓库git commit -m "完成了…"将当前所有代码提交到当前分支git push 将代码提交到云端仓库的分支(已存在的分支)中然后将
2021-02-25 19:23:24
152
原创 Express中间件 bodyparser和formidable
常见Content-Type类型有四种:application/x-www-form-urlencoded 常见的form提交multipart/form-data 文件提交application/json 提交 json 格式的数据text/xml 提交xml格式的数据bodyparser处理类型是 application/x-www-form-urlencoded 和 application/json 格式的表单bodyParser.json() 将body解析为jsonbod
2020-10-22 15:26:37
581
原创 ajax笔记(二)在IE低版本中的缓存问题
在低版本的IE浏览器里,ajax请求有严重的缓存问题。在请求地址不改变的情况下,只有第一次请求才会真正发送到服务器端,后续的请求都会从浏览器的缓存中获取结果,即使服务器端数据更新了,客户端拿到的还是旧的数据。解决方案:在请求地址后面加请求参数,保证每一次的请求参数的值的欧不相同。xhr.open('get','http://localhost:3000/example.com?t='+Math.random());...
2020-10-17 15:40:58
116
原创 ajax笔记(一) 传递get、post、json格式的请求参数
服务端代码://引入express框架const express = require('express');//路径处理模块const path = require('path');const bodyParser = require('body-parser');//创建web服务器const app = express();// app.use(bodyParser.urlencoded());app.use(bodyParser.json());//静态资源访问服务功能app
2020-10-15 21:52:30
2200
原创 let和const的区别
let与const都是只在声明所在的块级作用域内有效。let声明的变量可以改变,值和类型都可以改变,没有限制。const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。...
2020-10-13 12:57:12
221
原创 JS基础 笔记(一)
document.addEventListener(‘click’,function(){ },false)此处为false或者省略,则为冒泡方式clientWidth不含边框,而offsetWidth包含边框mouseover子盒子可以冒泡,mouseenter不会冒泡
2020-10-10 16:42:16
90
原创 前端2D、3D
一、百度浏览器小熊案例:1、动画使用:定义动画@keyframes name{0%{开始状态}100%{结束状态}},然后通过animation:name调用动画linear是匀速,infinite是循环播放,backwords是播放完再倒回去,forwards是播放完直接回到开头2、子绝父相:父盒子position:relative;子盒子position:absolute;3、transform-origin:可以定义旋转的中心点transform: translate(50px,50p
2020-10-10 16:19:29
200
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人