自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 web面试可能会遇到的问题

文章目录一、 css垂直居中的方法1. 给父元素设置`vertical-align: middle;`2. flex布局3. transform属性* 说一说flex布局二、http头部1. 通用头2. 请求头3. 响应头4. 实体头三、GET和POST的区别四、HTTP缓存五、浏览器渲染过程及优化六、图片很多的时候如何优化七、闭包(执行上下文)八、箭头函数和普通函数的区别九、`document.ready`和`window.onload`的区别十、实现`(5).add(3).minus(2)`十一、进程和

2020-12-09 15:59:48 252

原创 前端面试手撕代码

文章目录前言一、快速排序二、深拷贝三、call apply bind四、new 干了什么?五、instanceof前言本篇文章将会列出一些前端面试可能现场手撕的代码,如果你遇到这方面的题目,欢迎评论,我们可以让它更加健全一、快速排序function quickSort(arr) { if (arr.length <= 1) return arr; // 只有一个自然是有序的 let index = Math.floor(arr.length / 2); // 获取参考值索引,我们.

2020-12-08 10:36:04 325

原创 基于node.js的快速,开放,极简Web开发框架Express

express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架安装首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录。$ mkdir myapp$ cd myapp通过 npm init 命令为你的应用创建一个 package.json 文件。 欲了解 package.json 是如何起作用的,请参考 Specifics of npm’s package.json handling.$ npm init此命令将要.

2020-11-17 13:20:11 375

原创 Promise

PromiseJS 是单线程,当执行到异步操作的时候就将他们存放在异步操作队列,等同步操作全部完成继续轮番遍历异步操作队列在Promise之前的异步操作(套娃操作)可以看不懂,因为~~~自己看了都头大function notice(msg, then) { then(msg);}function meal() { notice("开始做饭", msg => { console.log(msg); notice("做好了",msg =&gt

2020-10-26 19:40:18 122

原创 JavaScript的类以及类的继承都经理了什么

使用类可以大大简化我们的代码,本篇将会说一说从ES 6之前的继承到ES 6规定的类ES 6之前1. 类的定义我们可以使用三种方法来创建一个数组或对象let arr1 = [1,2,3];let arr2 = new Array(1,2,3);let arr3 = Array(1,2,3);let obj1 = { color: 'red' };let obj2 = new Object({ color: 'red' });let obj3 = Object({ color: 'yello

2020-10-24 19:34:00 102

原创 JavaScript这些基础可以不知道??(持续更新~~)

1. JS加载阻塞一般地,一个包含外部样式表和外部脚本问价的HTML载入和渲染过程是这样的:浏览器下载HTML文件并开始解析DOM;遇到样式表文件时,将其加入资源文件下载列表,继续解析DOM;遇到脚本文件时,暂停DOM解析并立即下载脚本文件脚本文件下载好后立即执行,此时脚本只能访问当前已加载的DOM元素;脚本执行结束,继续解析DOM;DOM解析完成,出发DOMContentLoaded事件。所以阻塞就是DOM还没有解析渲染完毕,由于JS文件的优先下载解析导致页面不能正常显示一段时间,也

2020-10-21 22:12:28 835 1

原创 一篇完整说完Windows安装双系统Ubuntu-图文教程

准备工作前言:阅读过程中可能文字会稍微多点,一方面是因为想说的更清楚点,另一方面这是小编安装完成后在新的系统上写的,安装系统时的截图没办法给大家展示出来,希望大家能耐心,一次就好,不周之处,还请谅解一台Windows电脑一个U盘1. 下载Ubuntu镜像(.iso)文件,和rufus(做U盘启动)Ubuntu:官方下载地址,点击download,开始下载就OK了。rufus: 官方下载地址 绿色无污染,放心下载,点击Rufus,开始下载。2. 制作U盘双击打开刚才下载的Rufus

2020-10-20 00:51:46 1303

原创 JavaScrip原型、原型链

1. 认识一下原型 let Son = { name: son } console.dir(son); // 输出为 object{ name: "son" __proto__: Object }很明显,Son这个对象不光有自己的属性,还有__proto__的属性,那么__proto__就可以理解为Son的原型,当我们点开__proto__之后发现它不再有__proto__,此时我们就说Son只有一个父亲,没有爷爷. let Son = func

2020-10-14 22:17:41 223

原创 JS数组去重方法知多少

1. 双层循环 let arr = [1,1,2,3,3]; function unique(arr) { // res保存去重之后的数组 let res = []; res[0] = arr[0]; // 放心的把第一个元素放进去 for(let i=0;i<arr.length;i++) { // 第一层循环遍历arr的每一个元素 for(let j=0;j<res.length;j++) { //第二层循环用arr的每一个

2020-10-13 18:48:54 119

原创 JavaScript解决多次触发之防抖

JavaScript防抖前端开发中会有很多频繁触发的事件,比如 resize,scoll,mousedown,mousemove,keyup,keydown…举例说明(假设在页面中我们有一个宽高为200px,id为test的div) let count = 0; let test = document.getElementById('test'); function userAction() { test.innerHTML = count++; } test.onmou

2020-10-12 19:50:37 688

原创 JavaScript本地存储sessionStorage,localStorage,cookie

sessionStorage当前会话有效,页面关闭浏览器清除,大小最大为5MB <script> window.sessionStorage.setItem("name","zzz"); // setItme(key,value)添加数据 window.sessionStorage.getItem("name"); // getItem(key)获取数据 window.sessionStorage.removeItem("name"); // removeIte.

2020-10-12 17:34:14 121

原创 说清楚JavaScript的数据类型

一、 JS数据类型ECMAScript标准规定了7中数据类型,其又可以分为原始数据类型和对象类型。原始数据类型数据类型值NullnullUndefinedundefinedBooleantrue,falseNumber数字及-Infinity,+Infinity,NaNString字符Symbol一种实例,唯一不可变数据类型BigIntes10新增对象类型Object: Object, Array,Function 等。

2020-10-09 15:51:43 73

原创 前端小白起点之HTML

HTMLcssJavaScript结构表现行为HTML篇1. HTML是什么HTML:(Hypertext Markup Language):超文本标记语言HTML不是一种编程语言,它是用标签构成的页面架构HTML文件的后缀名为.html标签<></>HTMl中的标签都应该是封闭的2. 如何编写HTML建议使用目前好用的一些工具,比如VScode, notepad++, HBuild等,个人爱好是VScode,当然你也可以使用记事本...

2020-07-17 18:21:39 112

原创 希尔排序

思路:选择合适的步长,让相距为一定步长的两个数字比较,然后逐渐缩小步长,直到步长为1,则排序完成。重点难点就在于如何选择步长:我们一半会认为第一次取数组长度一半,然后每次除以 2 ,然而并不,我们采用克努特序列,我们不需要知道它具体指的是什么。kunth = kunth * 3 +1,这就是我们取步长的依据。具体请看注释。给出JS代码// 1. 根据克努特公式选出第一次步长let kunth = 1while (kunth<=Math.floor(arr.length/3)) { //

2020-06-14 10:48:43 151

原创 react快速上手

JSX(JavaScript XML)如何添加注释{/* 在这里添加注释*/}react 的插值表达式let name = 'xxx'let id = 'id'let className = 'h1tag'let style = {color: 'red', backgroundColor: 'pink'}let vDom = <h1 className={classNmae} style={style} id={id}>{name}</h1>有三点需

2020-06-10 12:40:51 290

原创 快速排序

思路:自我定位明确,意思就是说我这个元素应该站在什么位置,需要确定。怎么确定?当我左边的元素都比我小,我右边的元素都比我大时,不说其他元素,总之排序完成后我就是站在这个位置,当所有元素都完成自我定位,那排序也就完成了,所以我们只需要找到自我定位的索引即可。画图软件真的用起来好累借用人家的动图: 快速排序的重点是找出每个元素应该的索引给出JS代码function findIndex(arr, star, end) { // 定义找索引的函数 let i = star let j = end

2020-06-10 10:02:26 121

原创 插入排序

思路:理解起来其实不难,就假设原数组只留第一个元素,其他的都放在外面,然后一个一个插入,插入的方法就是与假设的数组比较,如果比数组里面的数字小,就往前移。给出JS代码for(let i=1;i<arr.length;i++){ // 给出当前插入的元素索引 for(let j=i;j>0;j--){ // 用j记录下插入元素索引 if(arr[j]<arr[j-1]){ // 用当前插入元素和前一位比,小就互换位置,要插入值就移动到了j-1 let temp =a

2020-06-10 09:08:56 131

原创 选择排序

思路:从数组的第一个数开始依次与在它之后的数字比较,如果比后面的数大就交换位置,这样在每次完整遍历后就会将最小值放到该位置这样第一个位置为整个数组的最小值就完成了,然后以第二个数字为目标,找往后内容中的最小值,依次类推,显然当前面所有位置都排好后最后一位不用排序,只需遍历到arr.length-1即可给出JS代码for(let i=0;i<arr.length-1;i++) { for(let j=i+1;j<arr.length;j++) { if(arr[i]>arr

2020-06-09 09:58:13 95

原创 冒泡排序

思路:所谓冒泡就是挨个排序,如果按照当前位置和下一次位置比较,这样在一次完整的遍历之后,就会有一个最大或最小值移动到某一个极端位置。每次遍历,会有一个最大值冒泡到最右端,外层循环arr.length-1次,就可以完成排序,为什么要减一,最后一个数也就是数组的第一个数不需要排,当其他位置都排好后,它也就自动排好了.给出JS代码for (let i=0;i<arr.length-1;i++) { // 外层遍历次数 for (let j=0;j<arr.length-1-i;j++

2020-06-09 09:36:59 172

原创 JavaScript一些基本的方法

javascript方法数字方法x.toString(),将x转为字符串类型;x.toExponential(),将x转为指数计数法数字;x.toFixed(),将数字转为()位小数的数字;x.toPrecision(),转为指定长度的数字;x.valueOf(),转为x的原有类型;将变量转为数值:Number()parseInt()parseFloat()数组方法array.pop(),从array中弹出最后一个,有返回值;array.push(),往array末尾中添加一个

2020-06-07 11:14:25 150

空空如也

空空如也

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

TA关注的人

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