自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 605

原创 前端安全之攻击

1.xss攻击 在网页中插入第三方脚本,例如 <script>alert(document.cookie)>/script> 获取cookie,用户查看网页时,获取到当前用户的cookie,并通过脚本发送到攻击者的服务器,此时攻击者就可以获取用户的cookie,cookie中包含很多用户敏感信息。 预防:替换特殊字符,如<变成*&lt ;* >变成*&gt;*,网站维护者通过对特殊字符进行转义,使脚本无法执行,从而不能获取到用户的cookie。前端在脚

2021-11-25 15:04:30 155

原创 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 524

原创 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 404

原创 typeof判断null为object的问题

js 在底层存储变量的时候,会在变量的机器码的低位1-3位存储其类型信息 000:对象 010:浮点数 100:字符串 110:布尔 1:整数 但是,对于 undefined 和 null 来说,这两个值的信息存储是有点特殊的。 null:所有机器码均为0 undefined:用 −2^30 整数来表示 所以,typeof 在判断 null 的时候就出现问题了,由于 null 的所有机器码均为0,因此直接被当做了对象来看待。 ...

2021-11-12 14:07:51 288

原创 let、const、var区别

var var声明存在变量提升,var声明的变量的作用域有函数上下文和全局上下文两种情况。 let let的作用域是块级的,块级作用域是一个新概念,由大括号{}界定,如if(){},while(){},function(){}等有大括号的都有独立的作用域.let不允许重复声明, 不允许在相同的作用域下,重复声明同一变量 const 声明的常量,声明时必须初始化一个值,而且后期不能更改。如果声明的变量为引用类型的值,这个值不能被重新赋值为其他引用值,但是可以对引用值的键进行修改赋值。 const的值是否能修改

2021-11-12 14:05:41 118

原创 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 566

原创 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 122

原创 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 2792

原创 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 167

原创 提交本地代码到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 196

原创 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解析为json bod

2020-10-22 15:26:37 649

原创 ajax笔记(二)在IE低版本中的缓存问题

在低版本的IE浏览器里,ajax请求有严重的缓存问题。 在请求地址不改变的情况下,只有第一次请求才会真正发送到服务器端,后续的请求都会从浏览器的缓存中获取结果,即使服务器端数据更新了,客户端拿到的还是旧的数据。 解决方案:在请求地址后面加请求参数,保证每一次的请求参数的值的欧不相同。 xhr.open('get','http://localhost:3000/example.com?t='+Math.random()); ...

2020-10-17 15:40:58 139

原创 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 2287

原创 let和const的区别

let与const都是只在声明所在的块级作用域内有效。 let声明的变量可以改变,值和类型都可以改变,没有限制。 const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。 ...

2020-10-13 12:57:12 263

原创 JS基础 笔记(一)

document.addEventListener(‘click’,function(){ },false)此处为false或者省略,则为冒泡方式 clientWidth不含边框,而offsetWidth包含边框 mouseover子盒子可以冒泡,mouseenter不会冒泡

2020-10-10 16:42:16 122

原创 前端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 251

javaweb在线题库系统

使用javaweb开发的一款高校在线题库系统

2020-12-24

vue后台管理系统.zip

使用vue框架结合elementUI开发的一款电商后台管理系统

2021-04-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除