![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
张小桌
这个作者很懒,什么都没留下…
展开
-
深入解析 JavaScript 中的作用域及作用域链及词法作用域
你真的了解 JavaScript 中的作用域么?大家都知道闭包是js中非常重要的知识点,很多初学者觉得这玩意太难了,很难理解…其实刚开始我也是这样的,但是,闭包却非常重要!非常重要!非常重要!《在你不知道的JavaScript》中甚至这样说“对于那些有一点 JavaScript 使用经验但从未 真正理解闭包概念的人来说,理解闭包可以看作是某种意义上的重生”,我想大家是不是非常迫切的想深入了解一下闭包呢?但是不要着急,不能一口气吃一个胖子,但是,对于想真正理解闭包有一个非常重要的知识点,那就是作用域与词法原创 2020-07-15 00:22:04 · 174 阅读 · 0 评论 -
深度剖析手写 vue 响应式源码 Vue 响应式原理
深度剖析手写 vue 响应式源码 Vue 响应式原理简单的来说 vue 响应式就是当数据改变时,页面就被重新渲染在剖析 vue 源码之前 我们需要先了解到 Object.definePropertydefineProperty 是 object 原型上的一个方法Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。Object.defineProperty()(obj, prop, descriptor)参数:obj原创 2020-05-30 02:21:35 · 290 阅读 · 0 评论 -
vue之v-mode
v-model指令可以在表单元素上创建双向数据绑定。即数据更新元素更新、元素更新数据也会更新。本质上v-model为语法糖元素类型属性事件input[type=text]、textareavalueinputinput[checkbox]、input[radio]checkedchangeselectvaluechangeinputt...原创 2020-04-21 17:30:28 · 1347 阅读 · 0 评论 -
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 · 500 阅读 · 0 评论 -
CSS预编译器-less
css预编译器基本原理编写css时,由于css语言本身,常常难以处理一些问题重复的样式值:例如常用颜色、常用尺寸重复的代码段:例如绝对定位居中、清除浮动重复的嵌套书写由于官方迟迟不对css语言本身做出改进,一些第三方机构开始想办法来解决这些问题其中一种方案,便是预编译器预编译器的原理很简单,即使用一种更优雅的方式来书写样式代码,通过一个编译器将其转换为可被浏览器识别的传统css...原创 2020-04-16 19:39:54 · 702 阅读 · 0 评论 -
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 · 1987 阅读 · 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 · 363 阅读 · 0 评论 -
事件循环
事件循环JS运行的环境称之为宿主环境。执行栈:call stack,一个数据结构,用于存放各种函数的执行环境,每一个函数执行之前,创建执行环境,然后加入到执行栈,函数调用之后,销毁执行环境。JS引擎永远执行的是执行栈的最顶部。例如:执行以下代码function a(){console.log("a")b();}function b(){console.log("b")c...原创 2020-03-27 21:46:32 · 77 阅读 · 0 评论 -
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 · 111 阅读 · 0 评论 -
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 · 293 阅读 · 0 评论 -
基于构造函数创建的自定义类
基于构造函数创建自定义类(constructor)1.在普通函数执行的基础上“new xxx()”,这样就不是普通函数执行了,而是构造函数执行,当前的函数名称之为“类名”,接收的返回结果是当前类的一个实例2.自己创建的类名,最好第一个单词首字母大写3.这种构造函数设计模式执行,主要用于组件、类库、插件、框架等的封装,平时编写业务逻辑一般不这样处理 Fn();//=>普通函数执行va...原创 2020-02-29 11:47:46 · 298 阅读 · 0 评论 -
js中的工厂模式
工厂模式(Factory Pattern)1.把实现相同功能的代码进行“封装”,以此来实现“批量生产”(后期想要实现这个功能,我们只需要执行函数即可)2.“低耦合高内聚”:减少页面中的冗余代码,提高代码的重复使用率function createPerson(name, age) { var obj = {}; obj.name = name; obj.age = a...原创 2020-02-25 22:09:30 · 279 阅读 · 0 评论 -
js单例设计模式,命名空间,和模块化开发
单例设计模式(singleton pattern)1.表现形式var obj = {xxx:xxx,…};在单例设计模型中,OBJ不仅仅是对象名,它被称为“命名空间[NameSpace]”,把描述事务的属性存放到命名空间中,多个命名空间是独立分开的,互不冲突2.作用把描述同一件事务的属性和特征进行“分组、归类”(存储在同一个堆内存空间中),因此避免了全局变量之间的冲突和污染var...原创 2020-02-25 22:06:13 · 166 阅读 · 0 评论 -
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 · 241 阅读 · 0 评论 -
js中的变量提升/预编译
预编译/变量提升当栈内存(作用域)形成,JS代码自上而下执行之前,浏览器首先会把所有带 “VAR”/“FUNCTION” 关键词的进行提前 “声明” 或者 “定义” ,这种预先处理机制称之为 “变量提升”或预编译声明(declare):var a (默认值undefined)定义(defined):a=12 (定义其实就是赋值操作)[变量提升阶段]带“VAR”的只声明未定义带“F...原创 2020-02-18 21:06:24 · 141 阅读 · 0 评论