自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4000字详解HTTPS与HTTP的区别

HTTP简介再说HTTPS之前我们先来了解一下HTTP吧HTTP协议就是Hyper Text Transfer Protocal(超文本传输协议)的缩写,是用于万维网服务器传输超文本到本地浏览器的协议。HTTP是基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。HTTP协议工作于客户端-服务器构架上,浏览器作为HTTP客户端通过URL向HTTP服务端web端发送所有请求。Web服务器接收到请求后,就会想客户端发送响应的信息。HTTP 是一个属于应用层的面向对象协议,用于.

2020-07-20 01:06:19 333

原创 深入解析 JavaScript 中的作用域及作用域链及词法作用域

你真的了解 JavaScript 中的作用域么?大家都知道闭包是js中非常重要的知识点,很多初学者觉得这玩意太难了,很难理解…其实刚开始我也是这样的,但是,闭包却非常重要!非常重要!非常重要!《在你不知道的JavaScript》中甚至这样说“对于那些有一点 JavaScript 使用经验但从未 真正理解闭包概念的人来说,理解闭包可以看作是某种意义上的重生”,我想大家是不是非常迫切的想深入了解一下闭包呢?但是不要着急,不能一口气吃一个胖子,但是,对于想真正理解闭包有一个非常重要的知识点,那就是作用域与词法

2020-07-15 00:22:04 227

原创 1000字带你详解axios

vue-axiosAxios是一个基于promise的HTTP库并对响应回来的内容自动转换成 JSON类型的数据浏览器支持情况:Chrome、Firefox、Safari、Opera、Edge、IE8+引入APIaxios(config)axios(url, [config])config 配置对象常用配置对象axios({method:"get",// post、get、put.... url:"/".//请求的路径 baseurl:"/",//请求的域名 基本路

2020-06-11 01:51:46 282

原创 深度剖析手写 vue 响应式源码 Vue 响应式原理

深度剖析手写 vue 响应式源码 Vue 响应式原理简单的来说 vue 响应式就是当数据改变时,页面就被重新渲染在剖析 vue 源码之前 我们需要先了解到 Object.definePropertydefineProperty 是 object 原型上的一个方法Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。Object.defineProperty()(obj, prop, descriptor)参数:obj

2020-05-30 02:21:35 342

原创 Vuex_state

Vuex_StateVuex是vue的状态管理工具,为了更方便的实现多个组件共享状态。安装npm install vuex --save使用import vue form 'vue';import Vuex from 'vuex;Vue.use(Vuex);const store= new Vuex.State({ state{ count:0 }})...

2020-05-05 23:01:14 105

原创 vue之v-mode

v-model指令可以在表单元素上创建双向数据绑定。即数据更新元素更新、元素更新数据也会更新。本质上v-model为语法糖元素类型属性事件input[type=text]、textareavalueinputinput[checkbox]、input[radio]checkedchangeselectvaluechangeinputt...

2020-04-21 17:30:28 1418

原创 Vue-初识vue

开始使用Vue引入vue.js官网:vuejs.org开发版本:包含完整的警告和调试模式生产版本:删除了警告,体积更小引入vue.js后,给我们提供了一个构造函数 Vue在js中,new Vue()new Vue() 后会返回一个vue实例对象,我们用变量接着它const vm = new Vue()传递一个配置对象{} – > cons...

2020-04-17 17:02:35 555

原创 CSS预编译器-less

css预编译器基本原理编写css时,由于css语言本身,常常难以处理一些问题重复的样式值:例如常用颜色、常用尺寸重复的代码段:例如绝对定位居中、清除浮动重复的嵌套书写由于官方迟迟不对css语言本身做出改进,一些第三方机构开始想办法来解决这些问题其中一种方案,便是预编译器预编译器的原理很简单,即使用一种更优雅的方式来书写样式代码,通过一个编译器将其转换为可被浏览器识别的传统css...

2020-04-16 19:39:54 750

原创 webpack css工程化之css module

css module {ignore}通过命名规范来限制类名太过死板,而css in js虽然足够灵活,但是书写不便。css module 开辟一种全新的思路来解决类名冲突的问题思路css module 遵循以下思路解决类名的冲突问题:1.css的类名冲突往往发生在大型项目中2.大型项目往往会使用构建工具(webpack等)搭建工程3.构建工具允许将css样式切分为更精细的模块...

2020-04-15 21:40:23 2090 1

原创 css in js

css in jscss in js 的核心思想是 :用一个js对象来描述样式,而不是css样式表例如下面的对象就是一个用于描述样式的对象:const styles = { backgroundColor: "#f40", color: "#fff", width: "400px", height: "500px", margin: "0 auto"...

2020-04-15 20:31:42 416

原创 BEM命名规范

BEMBEM是一套针对css类样式的命名方法。其他命名方法还有:OOCSS、AMCSS、SMACSS等等BEM全称是:Block Element Modifier一个完整的BEM类名:block__element_modifier,例如:banner__dot_selected,可以表示:轮播图中,处于选中状态的小圆点三个部分的具体含义为:Block:页面中的大区域,表示最顶级的...

2020-04-15 16:17:16 926

原创 利用webpack拆分css

利用webpack拆分css要拆分css,就必须把css当成象js那样的模块, 就必须有一个构建工具(webpack),它具备合并代码的能力而webpack本身只能读取css文件的内容, 将其当做js代码进行分析,因此,会导致错误于是,就必须有一个loader,能够将css代码转换为js代码css-loadercss-loader的作用,就是将css代码转换为js代码,他的处理原理及其简...

2020-04-15 15:56:13 845

原创 事件循环

事件循环JS运行的环境称之为宿主环境。执行栈:call stack,一个数据结构,用于存放各种函数的执行环境,每一个函数执行之前,创建执行环境,然后加入到执行栈,函数调用之后,销毁执行环境。JS引擎永远执行的是执行栈的最顶部。例如:执行以下代码function a(){console.log("a")b();}function b(){console.log("b")c...

2020-03-27 21:46:32 130

原创 js中的严格模式

1.在严格模式下不支持使用 “arguments.callee / arguments.callee.caller” (Uncaught TypeError: ‘caller’, ‘callee’, and ‘arguments’ properties may not be accessed on strict mode functions or the arguments objects fo...

2020-02-29 12:35:27 148

原创 instanceof 和in 和hasOwnProperty

instanceof /in /hasOwnPropertyinstanceof:检测某一个实例是否隶属于这个类function Fn() { var n = 10; this.m = n; var f = new Fn()// console.log(f instanceof Fn);//=>TRUE// console.log(f instanceof Ar...

2020-02-29 11:53:32 343

原创 基于构造函数创建的自定义类

基于构造函数创建自定义类(constructor)1.在普通函数执行的基础上“new xxx()”,这样就不是普通函数执行了,而是构造函数执行,当前的函数名称之为“类名”,接收的返回结果是当前类的一个实例2.自己创建的类名,最好第一个单词首字母大写3.这种构造函数设计模式执行,主要用于组件、类库、插件、框架等的封装,平时编写业务逻辑一般不这样处理 Fn();//=>普通函数执行va...

2020-02-29 11:47:46 346

原创 js中的工厂模式

工厂模式(Factory Pattern)1.把实现相同功能的代码进行“封装”,以此来实现“批量生产”(后期想要实现这个功能,我们只需要执行函数即可)2.“低耦合高内聚”:减少页面中的冗余代码,提高代码的重复使用率function createPerson(name, age) { var obj = {}; obj.name = name; obj.age = a...

2020-02-25 22:09:30 321

原创 js单例设计模式,命名空间,和模块化开发

单例设计模式(singleton pattern)1.表现形式var obj = {xxx:xxx,…};在单例设计模型中,OBJ不仅仅是对象名,它被称为“命名空间[NameSpace]”,把描述事务的属性存放到命名空间中,多个命名空间是独立分开的,互不冲突2.作用把描述同一件事务的属性和特征进行“分组、归类”(存储在同一个堆内存空间中),因此避免了全局变量之间的冲突和污染var...

2020-02-25 22:06:13 212

原创 js中全局变量和私有变量

/* * 变量提升: * var a; var b; var c; * fn = xxx... */var a = 12, b = 13, c = 14;function fn(a) { /* * 形参赋值 * a = 12 * * 变量提升 * var b; * *...

2020-02-18 21:37:43 283

原创 js中的变量提升/预编译

预编译/变量提升当栈内存(作用域)形成,JS代码自上而下执行之前,浏览器首先会把所有带 “VAR”/“FUNCTION” 关键词的进行提前 “声明” 或者 “定义” ,这种预先处理机制称之为 “变量提升”或预编译声明(declare):var a (默认值undefined)定义(defined):a=12 (定义其实就是赋值操作)[变量提升阶段]带“VAR”的只声明未定义带“F...

2020-02-18 21:06:24 202

原创 javascript函数

函数定义函数的定义方式1)命名函数表达式var test = function abc (){ docunment.write('a'); }//打印的函数名是ab2)匿名函数表达式—函数表达式var demo = function () { docunment.write('b'); }//打印的名是demo2.匿名表达式var text = function(){ // doc...

2020-01-14 10:48:03 138

原创 数据类型及其转换

一, 数据类型1)六种数据类型number string boolean undefined object function1,类型转换Number(mix)parseInt(sting,radix)parseFloat(string)toString(radix):undefined 和null不能用String(mix):写什么都变成字符串形式Boolean()(1) va...

2020-01-13 12:03:01 95

原创 JavaScript学习之运算符

JavaScript学习之运算符1.比较运算符“>”,"<","==",">=","<=","!="例:var a = "a" > "b";document.write(a);//false 字符串比较ASCII码 var a = undefined == undefined // true infinty == infinty...

2020-01-04 21:39:45 119

空空如也

空空如也

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

TA关注的人

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