- 博客(37)
- 收藏
- 关注
原创 关于表格没有滚动条,但设有左侧固定列,导致悬浮+原有表头重复的问题
首先判断表格是否有滚动条,没滚动条就隐藏悬浮左侧固定列,使用visibility:hidden。
2024-08-19 16:52:06
121
原创 用hBuilder X运行到微信小程序,微信开发者工具显示Fail to open IDE,如何解决
解决方法在manifest.json中将AppID设置为空‘’,弊端是微信支付等模块会不可用。
2021-06-04 14:18:13
7501
1
转载 命名含义
ClassName含义about关于account账户arrow箭头图标article文章aside边栏audio音频avatar头像bg,background背景bar栏(工具类)branding品牌化crumb,breadcrumbs面包屑btn,button按钮caption标题,说明category分类chart图表clearfix清除浮动close关...
2021-04-09 17:29:55
125
原创 前端跨域解决方案
什么是跨域?跨域指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的。同源策略:指协议、域名、端口号都要相同,其中有一个不同都会产生跨域。解决跨域:JSONP跨域JSONP的原理就是利用 script 标签不受同源策略限制,通过src属性,发送带有callback参数的GET请求,服务端将接口返回数据拼凑到callback中,返回给浏览器,浏览器解析执行,从而前端拿到callback返回的数据。缺点:只能发送GET一种请求。跨域资源共享(CORS)CORS是一个W3C标准,
2021-04-08 10:15:03
120
原创 ajax通信原理
Ajax通信实质上是js创建了一个XMLHttpRequest对象,这个对象有个open()方法,其参数包含url,methods,callback等,通过这个方法设置其属性,而后通过send()方法向后台发送请求。XMLHttpRequest对象用于在后台与服务器交换数据。XMLHttpRequest作用: 在不重新加载页面的情况下更新网页。 在页面已加载后从服务器请求数据。 在页面已加载后从服务器接收数据。 在后台向服务器发送数据。XmlHttpRequest方法:Open(url.
2021-04-07 21:50:40
468
原创 数组扁平化
数组扁平化处理数组扁平化处理是将一个多维数组变为一维数组。const arr = [1,[2,[3,4,5,6]],7]方法一:使用flat()let arr1 = arr.flat(Infinity)//[1, 2, 3, 4, 5, 6, 7]方法二:利用正则//利用JSON.stringify()先将数组转换成字符串,然后使用正则替换掉[],然后用split分割成字符串,但是最后的数组项变成了字符串let arr2 =JSON.stringify(arr).replace(
2021-03-29 11:20:19
176
3
原创 开发环境
抓包移动端h5页,查看网络请求,需要用工具抓包windows一般用fiddlermac os 一般用charles手机和电脑必须连同一个局域网将手机代理到电脑上手机浏览网页,即可抓包查看网络请求网址代理https...
2021-03-29 10:37:55
97
原创 作用域
作用域全局作用域全局作用域在页面打开时被创建,页面关闭时被销毁。编写在script标签中的变量和函数,作用域为全局,在页面的任意位置都可以访问到。在全局作用域中有全局对象window,代表一个浏览器窗口,由浏览器创建,可以直接调用全局作用域中声明的变量和函数会作为window对象的属性和方法保存。函数作用域调用函数时,函数作用域被创建,函数执行完毕,函数作用域被销毁。每调用一次函数就回创建一个新的函数作用域,它们之间是互相独立的。在函数作用域中可以访问到全局作用域的变量,在函数外无法
2021-03-28 19:57:10
146
原创 节流
节流当持续触发事件的时候,保证一段时间内,只调用一次事件处理函数。实际应用鼠标不断点击触发,规定n秒内多次点击只生效一次。<script> var btn = document.getElementById('btn') //节流函数 function throttle(fn, wait) { let timer return function () { //如果没有计时器的话就执行
2021-03-28 19:15:44
138
原创 防抖
<script> var input = document.getElementById('input') //防抖函数 function debounce(delay){ let timer return function(value){ clearTimeout(timer) timer = setTimeout(()=>{
2021-03-28 18:12:54
182
1
转载 http
http状态码http状态码:是用以表示网页服务器超文本传输协议响应状态的3位数字代码。当浏览者访问一个网页时,浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。http状态码分类1** 服务器收到请求2** 请求成功,例:2003** 重定向,例:3024** 客户端错误,例:4045** 服务端错误,例:500...
2021-03-24 21:55:46
182
原创 web存储
cookie、localStorage、sessionStorage的区别cookic本来用于浏览器和server通讯,被借用到本地存储来,可用document.cokie来修改。cookie赋值不同key是追加,赋同一个key会覆盖,中间用;分割cookie的缺点存储大小,最大4kbhttp请求时需要发送到服务端,增加请求数据量只能用document.cookie = ’ '来修改,太过简陋localStorage和sessionStorageh5专门为存储而设计的,最大可存5MA
2021-03-24 20:41:16
95
原创 Ajax
手写写Ajas请求//get请求const xhr = new XMLHttpRequest() //实例xhr.open('GET','/api',false) //请求方式,发送参数,是否同步xhr.onreadystatechange = function(){ //状态变化 if(xhr.readyState ===4){ //状态码 if(xhr.status===200){ console.log(xhr.responseText) //返回响应数据 } }}xh
2021-03-23 21:58:10
86
原创 事件绑定-冒泡-代理
事件绑定var btn = document.getElementById('submit')btn.addEventListener('click',event=>{ console.log('点击按钮')})事件代理const box= document.getElementById('box')bindEvent(box,'click',event=>{ event.preventDefault() const target = event.target if(tar
2021-03-22 21:54:22
100
原创 关于BOM
BOM对象document -文档对象navigator -浏览器的信息screen -屏幕有关信息location -地址信息history -历史记录信息如何识别浏览器的类型navigator.userAgent分析拆解url各个部分location.href -获取网址地址信息location.protocol -获取协议location.host -获取域名location.search -查询参数location.hash -取哈希值locatio
2021-03-22 07:59:26
101
原创 面试经验@
变量类型和计算typeof能判断哪些类型typeof 对于原始类型来说,除了 null 都可以显示正确的类型 typeof 1 // 'number' typeof '1' // 'string' typeof undefined // 'undefined' typeof true // 'boolean' typeof Symbol() // 'symbol'typeof 对于对象来说,除了函数都会显示 object,所以说 typeof 并不能准确判断变量到底是什么类型 typeo
2021-03-15 21:26:24
257
转载 小程序生命周期
下面从三个方面来介绍小程序的生命周期:(1)应用生命周期(2)页面生命周期(3)应用及页面生命周期的触发顺序1.应用生命周期App() 必须在 app.js 中调用,必须调用且只能调用一次,app.js中定义了一些应用的生命周期函数(1)onLaunch: 初始化小程序时触发,全局只触发一次(2)onShow: 小程序初始化完成或用户从后台切换到前台显示时触发(3)onHide: 用户从前台切换到后台隐藏时触发(4)onError: 小程序发生脚本错误,或者 api 调用失败时,会触发 o
2021-03-04 08:56:05
187
1
原创 前端性能优化
页面性能优化为了使页面加载的更快,让客户有更好的体验。减少页面请求,减少请求所占宽带,节省流量。减少http请求减少http的主要手段是合并CSS、合并javascript、合并图片数据量不大的页面,就减少http请求,一次性返回过来,对于数据量大的页面,可以分段请求,让用户先看到一部分,再继续加载另一部分。合并css、合并js代码,合并图片、注释、精灵图将浏览器一次访问需要的jsvaScript和css合并成一个文件,这样浏览器就只需要一次请求。尽量减少页面中的空格和注释,
2021-01-19 21:49:52
146
转载 vue-cli脚手架利用插件生成二维码
安装插件npm install vue-qriously --save-devmain.js文件引入插件import Vue from 'vue'import VueQriously from 'vue-qriously'Vue.use(VueQriously)vue文件中生成二维码<template> <qriously :value="initQCode" :size="70"> <!-- initQCode: 是vue实例中定义好的变量 si
2021-01-19 09:52:00
206
原创 promise与async
promisepromise主要用于异步计算,将异步操作队列化,按照期望的顺序执行。promise有三个状态:pending 初始状态fulfilled 成功rejected 失败promise对象的状态改变只有两种:要么成功要么失败,状态一旦发生改变,就不会再变了。promise内部有一个回调函数,这个函数里有两个参数,分别是resolve和reject,用resolve将成功的结果返回,用reject将失败的结果返回。通常使用promise解决异步操作和地狱回
2021-01-17 17:37:35
174
转载 解决路由跳转同一路由报错问题
vue重写路由push方法const routerPush = Router.prototype.pushRouter.prototype.push = function push(location) { if(typeof(location)=="string"){ var Separator = "&"; if(location.indexOf('?')==-1) { Separator='?'; } location = location + Separator
2021-01-16 11:18:36
408
原创 设计rem
设计rem,完成布局的等比缩放在视口发生改变时动态设置根元素的font-size(function(doc, win) { var docEl = doc.documentElement, resizeEvt = "orientationchange" in window ? "orientationchange" : "resize", recalc = function() { if (docEl.clientWidth > 75
2021-01-15 07:56:51
92
原创 单线程、事件循环、微任务与宏任务
单线程 所有任务需要排队,前一个任务结束,才会执行后一个任务,如果前一个任务耗时过长,后一个任务就得一直排队等着。这样的话运行很慢。所以我们可以把等待中的任务跳过,先运行后面的任务,等到返回结果后再继续执行。一句话就是遇到同步直接执行,遇到异步加入异步队列,同步执行完才执行异步。同步与异步任务分为两种,同步任务与异步任务。同步任务:在主线程上排队执行的任务,只有前一个任务完成才会执行后一个任务,依次执行。异步任务:不进入主线程,而是进入任务队列,等异步任务可以执行了,再加入到主线程执行
2021-01-15 07:50:02
195
原创 github的使用
配置密匙创建SSH KEY在windows下打开Git Bash$ ssh-keygen -t rsa -C “***********@.com” //自己的邮箱
2021-01-13 22:00:40
139
原创 深拷贝浅拷贝、原型及原型链、类型校验
深拷贝与浅拷贝的区别于实现深拷贝和浅拷贝是针对复杂数据类型说的,浅拷贝只拷贝一层,深拷贝是层层拷贝。浅拷贝浅拷贝将原对象的引用直接赋值给新对象,指向一致,所以彼此之间的操作会互相影响。let a = b //指向一致,更改a的值会影响b深拷贝深拷贝复制变量值,对于非基本类型的变量,递归至基本类型后再复制。深拷贝后的对象与原来的对象完全隔离,互不影响。使用JSON、递归函数进行深拷贝使用扩展运算符深拷贝(适合用于内层结构都是基本类型的数组或对象)let newArr = [...
2021-01-13 21:27:57
404
原创 vuex核心以及使用
state:状态,存放公共数据mutations:更改state的唯一方法就是提交mutation,对state进行操作,改变state中的数据actions:异步操作,异步提交mutationgetters:计算属性,结果会缓存modules:模块,把状态管理模块化,各自的组件构成各自的模块plugins:插件,比如引入固化插件进行固化操作辅助函数{mapState,mapMutations,mapGetters,mapActions}在vue页面中引入辅助函数..
2021-01-12 20:42:29
169
原创 git常用基本命令总汇
git常用基本命令git config --配置git相关参数git clone --从远程仓库克隆到本地git init --初始化git仓库管理,会自带.git隐藏文件git status --查看本地仓库的状态git add . --全部添加到暂存区git commit -m '描述' --将暂存区中的文件提交到本地仓库中git log
2021-01-12 19:33:34
219
原创 关于递归平铺
递归平铺通过递归函数判断条件进行函数自调用 const json = [ { id: 1, title: "课程1", children: [ { id: 4, title: "课程1-1" }, { id: 5,
2021-01-12 11:04:46
345
原创 关于冒泡排序与递归
检查数组中两个数值相加是否跟数组中某个数值相等使用for循环嵌套来完成 function fn(){ var arr = [1,2,4,5] for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr.includes(arr[i]+arr[j])){
2021-01-11 15:58:28
118
原创 小型移动端购物车
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-12-04 20:32:18
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人