- 博客(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关注的人