- 博客(29)
- 收藏
- 关注
原创 多余的字体变为省略号
//设置样式时,请注意一下你的元素是否有宽度 //一行 white-space: nowrap; text-overflow: ellipsis; overflow: hidden; word-break: break-all; //两行 text-overflow: -o-ellipsis-lastline; overflow: hidden; text-overflow: ellipsis; display: -webkit-bo
2022-02-16 11:59:34 258
原创 自定义页面滚动条样式
//如果是给指定div添加,只需在::前添加上div的class类名就可以了::-webkit-scrollbar { width: 0.15rem;}::-webkit-scrollbar-track { -webkit-box-shadow: inset006pxrgba(9, 21, 45,1); border-radius: 10px;}::-webkit-scrollbar-thumb { border-radius: 10px; backgrou
2022-02-16 11:57:07 357
原创 vue项目PC端字体大小自适应
在App.vue文件中直接放入以下代码即可<template> <div id="app"> <router-view></router-view> </div></template><script>export default { data() { return {}; }, mounted: function () { // 页面开始加载时修改font-size
2021-08-27 17:27:09 3770 4
原创 小程序复制文本和拨打电话
废话不多说,直接上代码复制文本<view bindtap='copyText' wx:if="{{qiye.email.length>0}}" data-text="{{qiye.email}}">邮箱:{{qiye.email}}</view> Page({ data: { email: "" }, //复制文本 copyText: function (e) { var text = e.currentTarget.dataset.te
2021-08-27 17:12:13 311
原创 富文本处理
有时候我们需要用到富文本处理,但又不知道该怎么办,针对这种情况,我们可以写一个函数进行处理小程序富文本处理首先,创建一个utils.js文件,在此文件下放入这个函数,记得导出function formatRichText(html) { let newContent = html.replace(/<img[^>]*>/gi, function (match, capture) { match = match.replace(/style="[^"]+"/gi, '').rep
2021-08-27 16:57:28 344
原创 http-server 基本使用
http-server 基本使用http-server 是一个简单的零配置的命令行 http服务器,它足够强大便于生产和使用,用于本地测试和开发。有时候我们在对项目进行打包以后想在本地查看我们的项目,这个时候就可以使用 http-server来进行一个配置,在本地打开我们的项目首先,我们需要全局安装npm install http-server -g安装成功以后打开我们的项目目录,在此处地址栏中输入cmd打开命令提示框最后,直接输入http-server就可以直接在浏览器打开了.
2021-08-27 16:27:48 279
原创 前端面试之ajax
1.认识AjaxAjax = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。Ajax 不是新的编程语言,而是一种使用现有标准的新方法。Ajax 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下,说的简单点就是Ajax可以实现局部刷新。2.使用Ajax的好处1.无刷新——不刷新整个页面,只刷新局部。 无刷新的好处 只更新部分页面,有效利用带宽 提供连续的用户体验 提供类似 C/S 的交互效果,操作更方
2021-03-24 21:53:47 135
原创 前端面试之事件
事件监听函数<div id="box">123</div><script type="text/javascript"> //获得此元素 var box = document.getElementById("box"); /* * 函数名:clickFn * 功能:一个普通的函数,实现打印功能 */ function clickFn(){ console.log( box.innerHTM
2021-03-22 21:16:56 151
转载 前端面试之Bom
什么是BOM?1.什么是BOM?BOM是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部。在不同的Unicode编码中,对应的bom的二进制字节如下:Bytes Encoding FE FF UTF16BE FF FE UTF16LE EF BB BF UTF8所以我们可以根据文件头部的几个字节和上面的表格对应来判断该文件是哪种编码形式。2. 如何查看你文件的BOM字符?BOM头在记事本中是看不到的以UTF8为例,新建
2021-03-21 20:24:42 501
转载 前端面试之Dom
DOM分类DOM按其内容可分为5个部分核心DOM:是用于XML与HTML的共用接口; XMLDOM:XML专用接口; HTML DOM:HTML专用接口;DOM事件模型:定义DOM能够响应的事件; CSS DOM:CSS专用接口HTML节点树HTML文档是一种树状的结构化文档、各标记之间是一种树状的层次关系说明结构树反映了各HTML元素之间的层次关系。包含和’,包含;又包含<h1>和<table>等<br/>DOM就通过这种树结构的层次关系,来定位、
2021-03-21 20:20:43 566
原创 前端面试之事件循环(event loop)、微任务和宏任务
一、JS的事件循环机制eventloop1、 Eventloop是什么?javascript中先分【同步和异步】,然后事件任务分为【宏任务和微任务】, 执行顺序是先执行微任务再执行宏任务。(异步顺序也是如此)先执行主线程同步的微任务,发现异步之后,放入到异步队列中然后执行同步的宏任务,宏任务执行完毕执行刚才的异步任务。此顺序反复执行loop宏任务:整体代码script,setTimeout, setInterval微任务:Promise.then(非new Promise)console
2021-03-21 20:13:19 1795 1
原创 前端面试之异步、单线程
一、异步和同步的区别同步:JS是单线程语言,只能同时做一件事儿。js任务需要排队顺序执行,如果一个任务时间过长,后边的任务也会等着。假如,我们在请求一个网址时,图片加载很慢,网页总不能一直卡不出来,这个时候就可以用异步来解决了。异步:异步就是由单线程这个背景而来的,解决了单线程等待的这个问题,异步的特点不会阻塞后面代码的执行。也就是请求处理过程中,你不能闲着,会产生异步的请求,回头再处理,然后继续执行下面的请求异步和单线程是相辅相成的,js是一门单线程脚本语言,所以需要异步来辅助二、前端使用异步
2021-03-18 21:39:23 381
原创 前端面试之原型、class以及数据类型判断
一,函数对象 所有引用类型(函数,数组,对象)都拥有__proto__属性(隐式原型) 所有函数拥有prototype属性(显式原型)(仅限函数) 原型对象:拥有prototype属性的对象,在定义函数时就被创建二、构造函数//创建构造函数 function Word(words){ this.words = words; } Word.prototype
2021-03-16 20:28:55 608
原创 面试之 Vue 原理(二)
一、MVVM模式1、MVVM是什么?MVVM是Model-View-ViewModel的简写 它本质上是MVC 的改进版MVVM(Model-View-ViewModel)框架的由来是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架2、MVVM优点MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点低耦合:视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不
2021-03-16 07:54:56 219
原创 面试前需要掌握的内容
1、精通HTML/CSS/JavaScript等前端相关技术;2、掌握DIV CSS流动布局HTML代码编写,了解CSS3、HTML5优先;3、掌握JavaScript语言核心技术DOM、BOM、Ajax、JSON等,熟悉对象化Javascript编程,熟悉Javascript应用框架(如prototype/jQuery/YUI/Ext至少一种);4、熟练使用各种常用JavaScript调试工具,熟悉至少一种流行的JS框架,如jQuery及VUE,有VUE实际项目经验者优先;5、了解一种后端语言(J
2021-03-14 20:36:43 96
原创 面试之 Vue 原理(一)
一、全面1、全面的知识体系2、大量的面试真题3、完整的技术面试流程二、高效1、知己面试考点和重点,无需自己扒文档2、深入浅出讲解原理,无需自己读源码注意:原理 != 源码3、解读项目设计的思路,提炼项目经验三、学习掌握的内容1、需要掌握JavaScript和ES6的基本语法、2、能够熟练运用vue、react和webpack四、前端常见的面试流程一面:基础知识- js基础知识- css基础知识- 框架的基本使用二面:高级特性+原理- 框架高级特性- 框架原理三面
2021-03-14 19:39:14 276
原创 关于性能优化的一些方法
页面优化有哪些方法?一、减少操作量1. 尽量减少 HTTP 请求合并文件,比如把多个 CSS 文件合成一个;CSS Sprites 利用 CSS background 相关元素进行背景图绝对定位;2. 不要在 HTML 中使用缩放图片缩放图片并没有减少图片的容量,只是控制了图片的大小。3. Image压缩使用工具对图片进行压缩,保证质量的同时减少了图片的大小。4. 减少对DOM的操作减少对DOM的操作,减少页面的重绘。二、提前做加载操作对域名进行预解析例如京东的做
2021-01-19 19:57:32 127
原创 Promise解决问题与async函数的使用
PromisePromise是干什么的?1、主要用于异步计算2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果3、可以在对象之间传递和操作promise,帮助我们处理队列Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值.先用代码简单实现一下:function waiting() { return new Promise((resolve, reject) => { //这里用定时器模拟我请求ajax/
2021-01-16 20:19:22 1345
转载 说说你对async的理解
今天给大家分享一篇文章,是我在微信公众号:前端进阶之旅 上看到的,感觉还不错,感兴趣的小伙伴可以文末关注一下公众号原文地址:面试官:谈谈你对async的理解接下来让我们进入正题anync是什么?async是generator和promise的语法糖,利用迭代器的状态机和promise来进行自更新!如果懒得往下看,可以看下这个极其简易版本的实现方式:// 复制粘贴即可直接运行function stateMac (arr) { let val; return {
2021-01-16 10:15:50 515
原创 ES6中 let,const和 var 三者的区别
在ES6中,新增了let命令,用于声明变量,用来取代ES5中var命令,消除var声明的变量的不合理,不严谨之处。const用于声明常量。 让我们来看看let和var的区别ES6 新增 const 和 let 命令,用来声明变量。变量提升: const 和 let 必须先声明再使用,不支持变量提升使用let声明的变量,不会像使用var那样存在“变量提升“”的现象。所以使用let声明变量,必须遵循“先声明,后使用”的原则。否则会报错console.log(a); //ReferenceErrorl
2021-01-14 21:32:41 233
原创 关于rem 针对设计稿宽度,设计rem调试比例
css3规定:1rem的大小就是根元素html的font-size的值。通过设置 根元素的font-size的大小,来控制整个html文档内的字体大小、元素宽高、内外边距等,根据移动设备的宽度大小来实现自适应,不同的设备都展示一致的页面效果。为了计算方便,一般建议 1rem = 100px(设计稿px),要换算这样的比例需要设置html对应的fontSize,计算规则如下:fontSize = 屏幕宽度 / 设计稿宽度 * 基本宽度如果基本宽度是100,那么 1rem = 100px(设计稿p
2021-01-14 20:02:11 1318 1
原创 关于JavaScript线程,事件循环,微任务宏任务
javascript单线程由于JavaScript是单线程语言,因此,在一个进程上,只能运行一个线程,而不能多个线程同时运行。也就是说JavaScript不允许多个线程共享内存空间。因此,如果有多个线程想同时运行,则需采取排队的方式,即只有当前一个任务执行完毕,后一个任务才开始执行1. JS将任务分为两种,同步任务和异步任务。2. 当主线程开始执行同步任务时,会创建一个“执行栈”,每一个同步任务排队执行,只有前一个任务执行完毕,才会执行下一个任务。3. 当主线程上的所有同步任务执行完毕之后,也就是当
2021-01-14 19:45:49 108
原创 深拷贝浅拷贝,原型,类型校验,递归深拷贝
1.深拷贝和浅拷贝深拷贝和浅拷贝的区别:1.浅拷贝:将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用2.深拷贝:创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”为什么要使用深拷贝?我们希望在改变新的数组(对象)的时候,不改变原数组(对象)内存模型JS内存空间分为栈(stack)、堆(heap)、池(一般也会归类为栈中)。 其中栈存放变量,堆存放复杂对象,池存放常量。基本数据类型与栈内存JS中的基础数据类型
2021-01-13 20:37:25 94
原创 关于github使用以及sourcetree使用
GitHub的使用初识GithubGit是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。GitHub是一个代码版本控制和协作的托管平台。它可以让你和你的伙伴在任何地方一起进行项目开发。GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。如何使用1.注册账户以及创建仓库要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a
2021-01-13 20:31:18 944
原创 Vuex 的基本使用、五大核心、辅助函数以及持久化插件(vuex-persistedstate)
Vuex 的基本使用当我们创建项目时配置脚手架可以直接选择vuex,这样后期不用我们自己配置vuex,如果没有选择,但是我们又要用到vuex怎么办呢?1.安装vuex依赖包npm install vuex --save2.导入vuex包import Vuex from 'vuex'Vue.use(Vuex)3.创建store对象import Vue from "vue";import Vuex from "vuex";Vue.use(Vuex);export defa
2021-01-12 19:25:45 238
原创 Git 常用命令
Git 说明git是一个代码托管平台,相当于一个远程仓库,用来存放代码创建仓库1、在码云上新建代码库 编辑代码库相关信息,仓库有两种模式:私有模式和开放模式(看需要选择)2、在需要上传的文件夹下,鼠标右键(或者shift+鼠标右键)打开git bash here打开git命令框初始化本地代码库 git init运行git clone “https://gitee.com/liumaimai/project_demo.git”(这个地址是我们创建的仓库地址)(如果是第一次登陆,会弹出
2021-01-12 17:37:25 74
原创 冒泡排序、递归
冒泡排序方法第一种方法:比较相邻的两个元素,如果前一个比后一个大,就会交换位置第一次比较时将最大的元素放到了最后面由于每次排序最后一个都是最大的,所以之后按照步骤1排序最后一个元素 不用比function arr(data) { var temp for(var i = 0; i<data.length-1;i++) { for(var j = 0; j<data.length - i; j++) { if(data[j]) > data[j
2021-01-11 17:21:30 766 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人