自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

转载 error: props.dangerouslySetInnerHTML` must be in the form

在react开发的过程中有时我们需要展示一段富文本,react不能够直接解析富文本,需要他的一个属性dangerouslySetInnerHTML<div dangerouslySetInnerHTML = {{_html:"<div>这里放的是html字符串</div>"}} />原因是我们使用的格式不对。这里比较坑的是_html是两个下划线。<div dangerouslySetInnerHTML = {{ __html:"<div>这里

2021-02-02 16:20:09 829 1

原创 前端招商银行一面面经

扫码登录跨域上下固定高,中间可滚动文件上传跨域promise异步,能被try catch捕获到吗编程 200到500的双胞胎质数

2021-01-07 21:20:21 1511

原创 前端cvte面经

// 根据实例输入输出矩阵规律完成以下 matrix 函数:// 示例 1// 输入: 3 or 4// 输出:// [ 0, 2, 0 ]// [ 2, 1, 2 ]// [ 0, 2, 0 ]// 示例 2// 输入: 5 or 6// 输出:// [ 0, 0, 3, 0, 0 ]// [ 0, 3, 2, 3, 0 ]// [ 3, 2, 1, 2, 3 ]// [ 0, 3, 2, 3, 0 ]// [ 0, 0, 3, 0, 0 ]刚开始可能为了不让我紧张,还问我吃

2021-01-07 21:03:33 528

原创 前端顺丰一面面经

自我介绍标准的html结构浏览器性能优化你自己做过哪些浏览器性能优化,看优化前和优化后的区别了吗?说一下cookie、localStorage、seessionStorage的区别箭头函数场景题:关于cms权限问题:超级管理员、管理员、普通用户、某些页面普通用户访问不到或者里面的按钮点击不了(类似实习项目中的外包权限)项目中使用了mock说一下mock开放性问题:现在你的主管让你去出差,你怎么安排你还有什么问题...

2021-01-07 21:02:27 324

原创 http缓存

前端缓存前端缓存主要分为http缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端js上进行设置。什么是http缓存?http缓存是客户端向浏览器发送请求时,先抵达浏览器缓存,如果浏览器缓存中有要请求的资源,直接从浏览器缓存中提取,否则就从服务器端提取。常见的http缓存只能缓存get请求的响应资源。http缓...

2020-03-12 13:08:54 182

原创 数组map和forEach循环的异同

相同点:只能遍历数组;都不会改变原数组;都是循环遍历数组中的每一项;forEach和map方法里每次执行匿名函数都支持三个参数,参数分别是当前值,当前索引,原数组;区别:map方法会返回一个新数组,数组中的元素为原始数组调用函数处理后的值。map方法不会对空数组进行检测,如果遍历的是空数组会返回一个空数组。forEach方法没有返回值;对于空数组时不会调用回调函数的;arr...

2020-03-05 11:49:12 587

转载 为什么使用v-for的时候必须要添加唯一的key?

v-for中的key使用v-for更新已渲染的元素列表时,默认用就地复用策略;列表数据修改的时候,他会根据key值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素;我们在使用的使用经常会使用index(即数组的下标)来作为key,但其实这是不推荐的一种使用方法;举个例子:const list = [ { id: 1, name: ...

2020-02-29 13:36:54 207

原创 浅谈CSRF及防御

什么是CSRFCSRF(跨站请求伪造)通过伪造来自受信任的用户的请求来利用受信任的网页。CSRF原理用户进入浏览器,访问受信任的银行网站,输入用户名和密码进行登录。服务器验证成功,用户登录成功可以正常发送请求。此时,用户在同一个浏览器上,打开一个TAB页访问页面B。页面B被黑客注入了诱导信息,假如是一张图片,指向src=”http://bank.example/withdraw?a...

2020-02-25 16:45:25 224

原创 react diff算法

diff算法作为Virtual DOM的加速器,其算法的改进优化是React整个界面渲染的基础和性能的保障,同时也是React源码中最神秘的,最不可思议的部分1.传统diff算法计算一棵树形结构转换为另一棵树形结构需要最少步骤,如果使用传统的diff算法通过循环递归遍历节点进行对比,其复杂度要达到O(n^3),其中n是节点总数,效率十分低下,假设我们要展示1000个节点,那么我们就要依次执行上...

2020-02-23 14:18:54 211

原创 自定义事件dispatchEvent,initEvent,createEvent方法说明及使用

对于标准浏览器,其提供了可供元素触发自定义事件的方法:element.dispatchEvent().。不过,在使用该方法之前,我们还需要做其他两件事,即创建和初始化。1、createEvent()createEvent()方法返回新创建的Event对象,支持一个参数,表示事件类型,具体见下表:参数事件接口初始化方法HTMLEventsHTMLEventinitE...

2020-02-17 13:57:10 1934

原创 BFC

BFC是什么?BFC(块级格式化上下文)是一个独立的布局环境,其中的元素布局不会受外界影响。在一个BFC中,黄鸡元素与行内元素会在垂直方向烟其父元素的边框排列。怎样创建BFC区域position不是relative和static。overflow的值不是visible设置float的值不是nonedisplay的值是inline-block、table-cell、flex、table...

2020-02-12 13:52:52 109

原创 computed计算属性和watch的区别

computed计算属性用于描述一个值依赖了其他值。当你在把模板里的数据绑定到计算属性上时,vue会在其依赖的值发生变化而导致计算属性改变更新dom。watch监听器 用来监听一个你定义的变量,当该变量发生变化时,会调用对应的方法。<div>{{name}}</div>data(){ return{ number:0, firstname:"", lastna...

2020-02-05 12:33:22 573

原创 学习websocket

为什么要引入websocket?http协议只能由客户端向服务器端发送请求!服务器端无法向客户端主动发送信息。每个http响应对应一个http请求。这种单向请求的特点,对于会发生连续变化的状态,客户端想要得知就非常麻烦,只能依靠http长轮询或者http短轮询来不断地向服务器发送请求去获取状态。这样做很浪费带宽和时间。websocket的出现就解决了这个问题。websocket是提供全双工通...

2020-02-03 12:45:23 255

原创 Ajax轮询,Ajax长轮询和websockte

http协议介绍:http协议是请求响应式的,每个http相应都对应一个http请求,http协议是没有状态的,多个http协议之间是没有关系的。http协议的被动性:在标准的http语义中,浏览器发送请求,服务器响应请求,在浏览器再次发送请求之前,服务器不能发送新的消息给浏览器。http短轮询介绍:浏览器发送http请求给服务器,无论请求的数据有没有到达服务器,服务器都要立即做出响应,当...

2020-01-15 13:37:34 221

原创 js如何移除script标签

var scr=document.getElementsByTagName("script")[0]; scr.parentNode.removeChild(scr);

2019-12-18 17:13:33 7567

原创 前端如何获取from表单的数据

方法一:serialize()方法通过序列化表单值,创建URL编码文本字符串。使用方法:$(selector).serialize()你可以选择一个或者多个表单元素(比如:input及文本框textarea(多行文本框))或者from元素本身。方法二:serializeArray()方法序列化表单元素,(类似seaialize()方法),返回JSON数据结构数据注意:对于上述两种方法,文件...

2019-12-17 17:19:59 4177

原创 flex的三个属性值

flex:flex-grow flex-shrink flex-basis;flex-grow 属性用于设置或检索弹性盒子的扩展比率。属性值number 一个数字,规定项目将相对于其他灵活的项目进行扩展的量。默认值是 0。flex-shrink 属性指定了 flex 元素的收缩规则。flex 元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值。f...

2019-12-17 16:56:32 10739 2

原创 Object.defineProperty()

Object.defineProperty方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象,vue.js就是通过它实现双向绑定的Object.defineProperty(obj,prop,descriptor)参数说明:obj:必需,目标对象prop:必需,需定义或修改的属性的名字descriptor:必需,目标属性所拥有的特性属性描述符所谓属性描述符...

2019-10-15 18:11:11 114

原创 setTimeout,setinterval和requestAnimationFrame

计时器按照时间反复执行;setTimeout一次性计时器 延迟多长时间去执行 ,相对应关闭计时器的方法是:clearTimeout()setinterval循环计时器 ,相对应关闭计时器的方法是: clearInterval()以上两个计时器时间可以设置,缺点:在网页缩小或者切换选项卡之后计时器继续执行如何将setTimeout改造为循环计时器showtime(); f...

2019-10-14 21:05:54 156

原创 js中的this指向问题

this:上下文会根据执行环境变化而发生指向的改变1.单独的this,指向的是window这个对象alert(this);//this->window2.全局函数中的thisfunction demo(){ alert(this);//this->window}在严格模式下,this指向undefinedfunction demo(){ 'use strict'...

2019-10-13 19:45:59 183

原创 ES6解构赋值

变量解构1.什么是解构?es6允许按照一定的模式从数组和对象中提取值,这被称为解构。2.数组解构赋值语法:let [a,b,c]=[1,2,3];console.log(a,b,c);//1 2 3从数组中取值,按照对应的位置赋值,这种写法属于“匹配赋值”,只要等号两边模式相同,左边的变量就会被赋予相对应的值如果解构失败,变量的值就等于undefined不安全解构:等号左边的...

2019-10-10 17:48:10 206

原创 css权重

css权重就是css样式优先级,有两条或多条样式作用于一个元素时,权重高的那条样式对元素起作用,权重相同的,后面的样式会覆盖前面的样式。权重的等级!important加在样式属性后权重为10000内联样式,如style="",权重值为1000ID选择器,如"#block"权重值为100类,伪类,属性选择器,如:"block、:hover"权值为10标签选择器,伪元素选择器,如:"p、...

2019-10-09 18:20:01 157

原创 图片轮播(现在手机app上常见的)

效果:占全屏的 每个图片中间有间距 触摸滑动时 边滑边动 滑动规定的范围才让图片改变 没达到那个范围就依然是当前的图片这个是js代码$(function () { var count = 0; var time = null; var is = false; time = setInterval(t, 1000); function t()...

2019-08-19 23:40:33 2706

原创 node的get post传值和node模拟expess框架路由的装以及node模拟express框架路由的封装 get+post请求和get+post传值

路由的基本配置var http = require("http");/* 路由的基本配置基本路由配置完成之后 根据路由导出页面渲染安装ejs cnpm install ejs自动生成 package.json 文件 以及依赖包使用去导入*/var ejs = require("ejs");var url = require("url");http.createServ...

2019-08-12 16:49:09 166

原创 node(创建node服务器,fs文件系统,第三方模块,Stream,EventEmitter (事件的发布和订阅))

在使用node之前先打开cmd,输入node-v和cnpm-v查看有没有安装node和cnpm以及安装的版本。1.创建node服务器(使用http模块)2.引入http模块3.开始创建服务器req 指代url信息res 浏览器返回的响应信息listen() port 端口号4.启动服务器 node 服务器js文件的名称(例如:node Server.js)http://l...

2019-08-12 16:11:56 241

原创 jQuery

jQuery是什么?jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。怎么使用jQuery和外部js文件引入一致为顶级变量jQuery混写jsjquery加载事件:为顶级变量 jQuery 混写 js jquery ...

2019-07-22 19:18:10 113

原创 HTML5(video属性方法以及事件&canvas&缓存)

video属性值描述autoplayautoplay如果出现该属性,则视频在就绪后马上播放controlscontrols如果出现该属性,则用户显示控件,比如播放按钮heightpixels设置视频播放器的高度looploop如果出现该属性,则当媒介文件完成播放后再次开始播放mutedmuted如果出现该属性,视频的音频输出为静音...

2019-07-04 20:11:46 4631

原创 设计模式

工厂模式最终返回一个对象 function work(name, sex) { //函数里面封装对象 返回对象 var obj = new Object(); //设置相关属性 obj.name = name; obj.sex = sex; obj.sleep = function () { ...

2019-06-27 22:01:09 64

原创 js继承

js里面的继承概念 :继承 子类继承父类做面向对象的开发以及框架库的封装 面向对象 有三大特征: 封装 继承 多态子类继承父类 **第一种方式** **原型链继承**其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。核心: 将父类的实例作为子类的原型其代码大致如下:// 定义一个动物类function Animal() {// 属性 ...

2019-06-27 21:40:31 98

原创 AJAX如何请求数据以及AJAX实现跨域的三种方法

传统方法的缺点:传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用的响应...

2019-06-20 22:59:50 3172

原创 别踩白块(js)

<!DOCTYPE html><html><head lang="en"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=2.0,minimum-scale=1.0,user-scalable=no">...

2019-06-14 11:54:18 320

原创 用for循环会报错 用for in不会报错?

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <script src="./js/库.js" type="text/javascript"></script> <title></title> ...

2019-06-13 12:30:06 741

原创 正则表达式

正则表达式作用: 验证数据的格式正则如何验证match() 验证成功返回的是值 ; 验证失败 返回的是null —字符串用法test() 验证成功返回的是 true 验证失败返回的是 false —正则对象的用法正则表达式修饰符修饰符 可以在全局搜索中不区分大小写:修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在...

2019-06-13 11:39:14 94

原创 querySelectorAll和getElementsByClassName获取元素的区别

querySelectorAll和getElementsByClassName获取元素的区别querySelectorAll()方法是HTML5新增的方法,通过传入一个css选择符,返回所有匹配的元素而不仅仅是一个元素。这个方法返回的是一个NodeList的实例,getElementsByClassName() 方法返回文档中所有指定类名的元素集合,作为HTMLCollection对象。HT...

2019-06-13 10:37:22 1148 1

原创 js里面数据格式json和json的转化方式

js数据格式json: object和 Array,具体操作看下面代码:<script> var list=[{ name:"张三", age:18, sex:"man", love:"唱歌", addres:"陕西咸阳" }, { name...

2019-05-29 20:59:45 3244

原创 break return和continue的区别

break此语句导致程序终止包含它的循环,并进行成需的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环;如果break语句包含在嵌套循环里,它只跳出最里面的循环。如下代码:for(var i=0;i<10;i++){ if(i==5){ break; } console.log(i);}可以看到程序输出了01234到...

2019-05-29 20:11:34 128

原创 js里面的内置对象

内置对象对象是属性和方法的集合。js里面的内置对象有Array,Math,Date,String,setinterval,sertimeout。下面会一一介绍Math对象随机从0-1:random;Math.random();随机数范围在0-1之间。向下取整:floor;例如:Math.floor(0.2);输出是0;向上取整:ceil;例如:Math.ceil(0.2);...

2019-05-29 19:37:43 155

原创 事件绑定里面的执行参数&dom元素的事件及如何给dom元素添加事件

事件绑定里面的执行参数toLowerCase()将大写字母转化成小写字母;toUpperCase() 将小写字母转化为大写字母。js里面的this this–可以指代当前事件的执行对象 this—函数里面的this对象指代当前的window对象<!DOCTYPE html><html><head lang="en"> <meta c...

2019-05-22 15:59:20 336

原创 笔记(数组的操作&数值的转换&js如何让获取元素并对元素进行操作&link标签的加载解析&border边框)

数组的操作join 数组转化为string(字符串)类型 ,join("")参数是什么就表示按照什么符号连接字符串。reverse 数组的翻转。slice 截断数组,参数 start(开始的索引) end(结束的索引,取消不取大),截取完成之后对数组没有影响。splice 参数 start(开始的索引) count(要截取的个数),截取完成之后对原数组有影响。push 数组的追加:...

2019-05-22 14:51:06 190

原创 css弹性布局和手机自适应

css手机自适应viewport 视口width=device-width 宽度等于屏幕的宽initial-scale=1.0 伸缩比例为1.0maximum-scale=3.0 最大伸缩比例minimum-scale=1.0 最小伸缩比例user-scalable=no 禁止用户缩放例如:< meta name=“viewport” content=“width=d...

2019-05-16 00:19:49 1178

空空如也

空空如也

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

TA关注的人

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