自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常考浏览器面试考点

1.浏览器的从接收url到渲染的过程浏览器在用户输入url之后会先对url进行dns解析,dns会按照浏览器本地 > 本地电话host >dns服务器这个顺序去查找对应的ip,找到ip后就会向服务器发出请求,服务器在收到请求之后会把对应的静态文件返回,浏览器解析html的时候会按照从上到下,遇到css加入异步的请求中,不阻碍继续解析,遇到script要看script标签是否标识要异步,如果是就先进行异步加载继续解析html,如果是script设有defer标签就是等到dom解析完再解析...

2021-03-05 11:24:12 143

原创 JS的常见知识点

JS的内置类型 js的内置类型分为两大类:一类是JS的基本类型包括六种null undefined string number boolean symbol第二类是引用类型Object面试题1.说下你知道的JS的内置类型 2.JS继承 JS继承有7种方式:原型链继承function father() { this.type = 1}function person(name) { this.name = name ...

2021-02-25 19:33:17 127

原创 我理解的闭包

一、理解闭包函数A中包含函数B,函数B可以访问函数A作用域中的变量,这种情况下就称闭包二、闭包的应用应用1:封装私有变量特点:当你想要让一个函数中的变量变成私有(这时候大家应该想到对象,但是对象是可以直接访问变量的,那么new就是一个好的中间转换过程),只能通过函数对应的方法来获得,这时你就可以利用闭包function Ninja() { var feints = 0; this.getFetint = function() {...

2021-01-17 19:07:29 221

原创 this指向问题总结

一、什么情况下会讨论this的指向访问this访问对象的某个属性二、不同情况下this的指向问题①全局普通函数中使用thisthis指向windowvar a = 1function f() { console.log(this.a)}// 1②对象中的某个属性为普通函数,函数中使用thisthis指向对象let obj = { a: 'obj', f: function() { console.log(this.a) }}

2021-01-17 15:49:40 193

原创 Promise

一、promise为何产生promise是一种异步解决方案,因为promise可以让异步回调变得更简单,其具有以下特点promise的状态有三种,pending(执行状态)、成功状态(resolved)、失败状态(rejected),只有构造函数传入的code执行结果才会改变promise的状态 只要新建就会执行 promise构造函数中传入的code会立即被执行,但是then属于微任务二、promise的基本使用let p = new Promise((resolve, reject)

2021-01-10 23:20:50 82

原创 js的深拷贝

一、通过for in实现function deepCopy1(obj) { let o = {} for(let key in obj) { o[key] = obj[key] } return o}let obj = { a:1, b: undefined, c:function() {},}console.log(deepCopy1(obj))// { a: 1, b: undefined, c: [Function: c] }二、通过JSON.

2021-01-08 17:19:34 111

原创 谈一谈自己对BFC的理解

一、BFC概念BFC全名为块级格式化上下文,它是一个独立的渲染区域,其内部的盒子如何布局只遵循块级格式化上下文的规则,不受外部元素的干扰二、如何定义BFC当前元素的float属性不为none 当前元素的position属性不为static和relative 当前元素的overflow属性不为visible 当前元素的display属性是inline-block、table-cell、flex、table-caption和inline-flex三、BFC的布局规则每个盒子都占一行,在垂

2021-01-08 16:51:29 270

原创 事件

一、事件冒泡观察dom结构,我们会发现每个元素都被其它元素包裹着,像同心圆一样,当圆心有事件发生的时候,似乎会向外扩散,这里我们可以把这种扩散理解为事件冒泡事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点 举例理解:<!DOCTYPE html><html><head> <title>理解冒泡实例</title></head><body> <div id=

2020-12-22 23:38:22 101

原创 JS垃圾回收机制

一、什么是垃圾一般来说,没有被引用的对象就是垃圾,为了减少内存被无用的变量占用造成内存的浪费,所以需要对垃圾进行回收二、回收的方法 1.标记清除清除维度:其作用域是否在执行环境 不同执行环境清除原则:全局作用域是在当前窗口在执行态的时候就不会被清除,但是局部环境是在其执行环境被销毁的时候就会被标记清除 举例解释let obj1 = { prop: 'obj1'}function f1() { let obj2 = { prop: 'obj2' } ret.

2020-12-21 18:56:25 129

原创 理解js中声明的作用域

一、首先我们了解一下作用域的分类全局作用域:全局作用域是未定义在某个函数内的 函数作用域:局部作用域是定义在某个函数内的二、通过实例理解作用域中的声明例子一:代码中a、b、c和f1均为全局作用域中声明,我们可以将全局理解为一级作用域,全局作用域中声明的函数为二级作用域,函数中的函数称为三级作用域,以此类推,级数大的可以访问级数小的<script>var a = 1let b = 2const c = 3function f1() { let d = 4 r

2020-12-21 00:39:03 176

原创 手写简单的apply、call和bind

一、手写call先来看下call的使用let obj = { name: 'obj'}var name = 'window'function f(lastname) { console.log(this.name + ' ' + lastname)}f.call(obj, 'sun')// 输出obj sun思考:能直接通过函数.调用,通过我们学到的原型链的知识,我们可以将callFun写到prototype上Function.prototype.callFun =

2020-12-10 21:00:29 171

原创 函数被调用的方式

一、理解函数调用函数调用其实就是发挥函数作用的时候,我们常见的方式有如下几种方式二、函数调用的方式方式一:直接使用函数名调用,作为一个普通函数被调用特点:函数内或者函数外均可调用var a = 0function f1() { a++}function f2() { f1() a++ return a}f2() // 2方式二:作为方法被某个实例对象调用特点:方法被定义在某个对象的属性中var obj = { name: '

2020-12-06 12:19:10 1048

原创 函数传参的方式

一、理解函数的实参和形参形参:函数定义时写明的参数叫形参 实参:函数调用时传入的参数叫实参function f(a, b) { // a b为形参 return a + b}f(1, 2) // 1 2为实参二、函数形参的定义方式方式一:预先定义好所有需要的形参特点:需要预知参数的个数function f(a, b, c, d) { return a + b + c + d}f(1, 2, 3, 4)方式二:只定义部分可预知的参数,剩余的用剩余参数定义

2020-12-06 10:55:59 255

原创 解析函数创建的六种方式

一、理解函数工作中我们经常接触各种各样的函数,比如通过字面量定义的函数,箭头函数、立即函数等等,函数也经常被使用于各种各样的场景中,比如回调函数、被实例调用、普通执行等,那么我们接下来先总结一下函数创建的方式。二、函数创建的四种方式方式一:函数声明特点:通过函数声明的方式如下,函数声明存在提升,会将变量的声明提升到作用域顶部,也就是可以在声明之前调用;且其this的指向是window对象function A() { return this;}观察函数的执行结果我们可以发现全

2020-12-05 17:30:36 648

原创 js的继承

一、理解继承对象的继承是二、继承方式总结方式一:原型继承方式二:构造函数继承方式三:原型和构造函数组合式继承方式四:Class继承

2020-12-03 12:50:32 52

原创 从对象创建来理解原型链

一、理解__proto__ 和prototype在理解原型链之前我们先来看两个属性,__proto__ 和prototype,在我的理解中,__proto__和prototype是对象和函数与其关联对象的一种标识__proto__:对象的一个属性,指向它的来源 prototype:函数的一个属性,指向它的来源二、对象创建总结方式一:对象字面量特点:创建一个自定义属性的对象,属性在创建的时候定义,不能复用let obj = { name: 'a', age: 'b'}观

2020-12-02 22:15:39 101

原创 从页面输入url到页面渲染的过程

1.用户输入用户输入一个url之后,浏览器会解析用户的输入,目的是找到该地址对应服务器的index.html文件,解析的步骤如下先找浏览器缓存(chrome://dns/)看是否有改url对应的服务器地址,如果有则向服务器发出请求,没有则进行第二步 浏览器缓存没有该url,那么就像系统的缓存文件中找,如果有则向服务器发出请求,没有则进行第三步 本地缓存没有就会像dns服务器请求去解析,dns会将对应的地方返回,浏览器向返回的地址发出请求2.浏览器发出请求浏览器会向服务器发出tcp链接 服

2020-11-30 18:00:36 143

原创 JS的同步和异步、微任务和宏任务

1.为什么JS是单线程的js是运行于浏览器的脚本语言,因其经常涉及操作dom,如果是多线程的,如果一个线程修改dom,另一个线程删除dom,那么浏览器就不知道该先执行哪个操作,所以js执行的时候会按照一个任务一个任务来执行,那么任务是怎么排列的呢2.为什么JS的任务要分类为同步任务和异步任务试想一下,如果js的任务都是同步的,那么遇到定时器、网络请求等这类型需要延时执行回调函数的任务会发生什么?页面会像瘫痪一下暂停下来等待这些需要需要时间的代码执行完毕,基于此,又引入了异步任务,每个异步任务都必

2020-11-26 20:41:40 2203 1

原创 JaveScript数据类型相关知识点及面试题总结

第一部分介绍JS的基础数据类型1. Stringlet str = 'sun';console.log(typeof str) // String2. Number JS 的 number 类型是浮点类型的,0.1 + 0.2 !== 0.3,所以不要计算某个特定的浮点数值,这是使用IEEE754的数值的浮点计算的通病 string 类型是不可变的,无论你在 string 类型上调用何种方法,都不会对值有改变 let n = 123;console.log(t...

2020-08-27 16:57:35 141

原创 JSON的parse与stringify

第一部分介绍JSON对象的定义1. JSON的定义JSON是一种语法,用来序列化对象、数组、数值、字符串、布尔值和null第二部分介绍JSON的方法1. JSON.stringify(value)用于将js对象转化为字符串value 需要转换的对象 2 . JSON.parse(text)用于将text转化为js的字符串text 需要解析的js值的字...

2019-11-13 03:16:55 143

原创 常用的RegExp总结

第一部分介绍正则的定义1. 正则的介绍 let reg = /pattern/flagspattern 像上面let后面定义的则为正则的定义,pattern是其中的正则表达式(可以包含字符、限定符、分组、向前查找、反向引用) flags 校验的标志 常用的有(g:全局匹配 i : 不区分大小写匹配)2.正则的定义字面变量法// 定义全局条件let reg = /a/g;...

2019-10-26 21:25:36 867 1

原创 常用的Object总结(包含ES5/6/7/8/9/10)

第一部分介绍对象的定义和访问1. 对象定义使用new操作符来定义 new Object()let object = new Object();使用 { } 定义对象字面量法let object = {};2. 对象赋值使用对象字面量法赋值 (常用)let o = {a: 'foo', b: 42, c: {}};使用解构赋值 [ES6新增]let...

2019-10-25 10:59:06 197

原创 常用的String总结 ES5/6/7/8/9/10

第一部分介绍字符串的定义和访问1. 字符串定义使用new操作符来定义 new Stringlet str = new String();使用 ‘ ’ 定义数组字面量法let str = '';2. 字符串赋值使用字符串字面量法赋值 (常用)let str = 'a';3. 值的访问通过字符串下标的索引访问let str = 'a';l...

2019-10-24 18:31:15 394

原创 常用的Array总结(包含ES5/6/7/8/9/10)

第一部分介绍数组的定义和访问1. 数组定义使用new操作符来定义 new Arraylet arr = new Array();使用 [ ] 定义数组字面量法let arr = [];2. 数组赋值使用数组字面量法赋值 (常用)let arr = ['a', 'b', 'c'];3. 值的访问通过数组下标的索引访问let arr = [...

2019-10-11 01:57:04 236

原创 很详细的服务器部署node和nginx详解

分享主目录服务器安装node环境(前端必备,提供俩种详细的安装方式) 服务器安装nginx启动web服务(包括配置自己所需路径) 服务器nginx配置反向代理服务器登录软件FinalShell 下载链接http://www.hostbuf.com/downloads/finalshell_install.exe 方便:可以快捷的进入服务器的文件进行编辑,如下截图中,...

2019-08-16 14:48:17 3467

原创 ES6学习——解构使数据访问更方便

如果之前没有接触过解构赋值,第一次听解构这个词语还比较陌生,那你可以将它理解为分解某个对象然后把这些分解后的单个对象进行重新购置对象解构接下来问一个问题,当你想要将如下的key_1,key_2属性的值赋给name_1和name_2,你将会怎么办?let object = { key_1: "w", key_2: "r"}let name_1, name_2;/...

2019-07-24 20:49:56 110

原创 ES6学习——扩展的对象功能

ES6 第四章 扩展的对象功能对象类别普通对象:拥有js对象所有默认的内部行为 奇异对象:其内部行为在某些方面有别于默认行为 标准对象:在ES6中被定义的对象,例如Array,Date,等等,标准对象可以是普通的,也可以是奇异的 内置对象:在脚本开始运行时由js运行环境提供的对象,所有的标注对象都是内置对象 2. 使用方法属性初始化简写//ES6之前functi...

2019-07-24 19:47:42 95

原创 dependencies与devDependencies的区别

情景:每一次从git上拉取vue项目之后,会执行npm install命令,大家都知道这个操作执行成功之后会新增node_modules文件夹存放了刚被下载的依赖,但是大家有没有想过根据什么来安装npm install会根据什么来安装依赖npm install会根据packjson这个文件夹中的dependencies和devDependencies来安装对应的依赖,dependencies...

2019-01-07 10:31:40 922

原创 pycharm上安装tensorflow

因为毕设,不得以去研究一下python+tensorflow,无论是开发还是做算法,搭环境都是必经之路,tensorflow是python很常见的开源库,网上也有很多的博客教程,但是自己感觉还是走了一些弯路,所以想要写一个博客希望能帮到有需要的童鞋们安装pythonhttps://www.python.org/ 请选择3.5版本安装 tensorflow暂时支持3.5 安装其他版本的pyth...

2018-12-28 15:58:49 1238

原创 webpack中的host

当你本地起了vue的项目服务后,如果对方和你在同一局域网内,对方可通过访问你的ip+端口即可访问你起的服务,但是vue脚手架自动生成的host是127.0.0.1,按照计算机的原则,127.0.0.1对应的就是你的ip,应该是可以访问到的,但是最终会发现并不能 vue生成的脚手架     如果想要对方访问自己的服务,那么将host改为0.0.0.0 127.0.0.1与0.0.0.0的区...

2018-12-17 10:14:26 2953

原创 饿了么input框的使用

input是开发中常用的标签,但是不同的场景所需要input对应的方法也不相同,饿了么这趟框架其实还是蛮好用的,基本满足了大家的需求,这里想要稍作总结一下input框需要有提示&lt;el-input placeholder="请输入内容" v-model="input1"&gt;&lt;/el-input&gt;&lt;script&gt;export default {...

2018-12-13 21:01:12 2623

原创 前端程序员必备概念

你是否知道自己的电脑为什么可以访问百度?为什么你本地起的服务只可以让和你在同一局域网的电脑访问到?先解释一下这俩个问题你可以访问百度是因为百度的地址是公网ip,任何连网的电脑都可以通过http协议进行解析访问你本地起的服务只有和你是在同一个局域网内的电脑才可以解析你的地址进行访问    2. 解释一下公网ip公网你可以理解为全世界约定了一个规则,只要可以上网的电脑都可以按照这...

2018-12-09 22:24:53 195

原创 饿了么框架表单验证学习心得

情景我想利用饿了么框架实现表单验证 http://element-cn.eleme.io/#/zh-CN/component/form#form-biao-dan 但是我的form里面的model和例子所给的model格式不一样 //这是例子所给的数据结构ruleForm: { name: '', region: '', date1: '', dat...

2018-12-04 18:13:29 1754 1

原创 vue中v-if与v-show的区别

情景:有时候你可能会需要一个效果按条件时有时无 vue提供v-if与v-else来实现这样的效果,以下是使用其的一部分代码&lt;template&gt; &lt;div @click="showT"&gt; &lt;transition name="el-zoom-in-center"&gt; &lt;div class="transitio...

2018-11-27 12:02:02 197

原创 B2C 解释B端C端

作为程序员你可能经常会听到"B端还是C端产品",所以这些名次应该是你所熟悉的B指business,商家 功能具有复杂性,比如XXX管理系统C指customer,用户 功能具有单一性,比如keep健身、王者荣耀游戏B2C 商家对用户,京东、天猫就是典型C2C 个人对个人,这里的个人可以理解为做小生意的个体,淘宝就是典型B2B 商家对商家 ...

2018-11-27 11:22:17 1991

原创 “设置display:block-inline的li或div中添加文字后,导致li或div排版掉落、错位”的原因及解决方法

 情景   在了解可以通过设置display:inline-block会将块级元素拥有inline元素一行排列的特性,那么我们可能想要通过将li的display属性设置为inline-block来实现块级元素的行排列,这时候你可能说通过设置浮动float就可以解决,不着急,float的原理和实现作为补充内容会接着聊,那么接下来先通过效果图来看一下问题所在代码展示(通过设置display将li...

2018-11-25 03:15:13 3776 4

原创 vuex案例讲解

情景:如果你的页面较多,且共享的数据较多,那么你可以使用cuex来管理你的数据 官方文档地址 https://vuex.vuejs.org/guide/state.html 对vuex中元素进行解释state:用来存储数据,可读 mutation:用来定义改变state中数据的方法 getters:用来对共享数据进行过滤操作 action:解决异步改变共享数据     3.  ...

2018-11-20 00:35:40 367

原创 Sass混合器的使用

情景:如果你的样式里有很多都是重复的代码,那么你可以这样做,引入sass,然后定义一个mixin.scss文件,其中你可以定义一些方法,将宽高作为参数传入这个函数 事例使用//在style文件夹下定义一个mixin.scss文件//定义宽高@mixin wh($width, $height) { width: $width; height: $height;}...

2018-11-19 21:19:40 1569

原创 Sass在项目中使用方法一

情景       我需要构建很多单页面,很多样式是重复的,所以利用sass写了很多方法,这样我的代码就会变得整洁起来案例展示             定义了mixin.scss文件用来定义方法,如右侧的全屏局中      mixin.scss文件的展示$blue: #3190e8; $bc: #e4e4e4;$fc:#fff;// 背景图片地址和大小@mixin...

2018-11-15 11:52:37 296

原创 怎么理解脚手架vue-cli

接触过一段时间前端的同学必然会接触到vue,然后就会接触到vue-cli,因为大多数人是通过npm install -g vue-cli,意思是安装全局的vue-cli,实际上vue-cli就是一个简单的demo,它会为你配置好一些最基本的东西,每次不用从零开始,从而使你的开发变得方便快捷起来...

2018-11-14 17:39:25 358 1

空空如也

空空如也

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

TA关注的人

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