自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mvvm实现原理

浅谈MVVM实现数据双向绑定的原理

  • 博客(18)
  • 收藏
  • 关注

原创 快速排序、函数柯里化、call封装bind,编程大杂烩

去除数组中的item元素,返回一个新数组。function remove(array,item) { var arr = []; for(var i = 0; i < array.length; i++) { if(array[i] !== item) { arr.push(array[i]); } } return arr;}remove([1,1,2,3,4]...

2020-02-28 21:42:04 297

原创 学习笔记

学习笔记instanceof关于检测数据类型的方式之一instanceof我们知道typeof和instanceof都可以检测一个变量是什么类型的,但是typeof操作符对于基础数据的检测较为方便,不能检测一个对象具体是什么类型。instansof可以用来检测对象是什么类型的。语法:变量 instanceof constructor(构造函数?)var obj = {};obj in...

2020-02-21 23:18:50 121

原创 CSS--浮动元素

虽然css浮动是每个fe都认为烂熟于心的知识点,但实际上本文出现的4个demo,我问了身边的几个同事,都会出现错误的判断,可见css知识看似容易理解,但很多小细节都容易忽略。本文将复习css的浮动元素,主要讲解浮动元素的概念,特点,以及如何消除浮动。以4个demo来理解浮动元素的特点。浮动float浮动元素是指元素脱离了常规流,向左/右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。...

2020-01-20 21:09:40 932

原创 CSS--Margin折叠的两种情况

本文简单总结一下css布局中常见的两种margin折叠情况,以及解决方法。兄弟元素之间发生折叠:.box1, .box2{ width: 200px; hieght: 200px; margin: 20px;}<div class="box1">hello</div><div class="box2">world</div>大家...

2020-01-19 21:24:45 391

原创 CSS之animation和transition

CSS3已经火了很久了,它可以代替js实现一些复杂的动画,代码简单,性能好,面试css3经常是重点考点,本章内容主要归纳总结animation和transition的使用和区别。TransitionAnimation区别Transition的使用Transition过渡是元素从一种样式逐渐改变为另一种的效果。强调过渡,需要触发一个事件达到动画目的。Transition的属性介绍:...

2020-01-07 16:14:06 131

原创 HTML之DOM事件流

HTMLQ1:简述DOM事件流的三个阶段?首先简述下在前端中流的概念在现今的JavaScript中随处可见。比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流。都是流的一种生动体现。至于流的具体概念,我们采用下文的解释:用术语说流是对输入输出设备的抽象。以程序的角度说,流是具有方向的数据。通通连起来——无处不在的流 淘宝FED–愈之DOM事件流之事件...

2020-01-06 17:15:48 188

原创 HTML之defer和async的区别

Q1:script标签的defer,async的区别这两个元素在红包书的第二章中就有介绍,先看下来自书中的定义:async:可选,表示应该立即下载脚本,不妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本有效。defer:可选,表示脚本可以延迟到文档完全被解析和显示之后再执行,只对外文脚本有效。了解了定义后。解释一下就是defer和async都会让脚本异步加载,但...

2020-01-06 17:15:06 561

原创 JS基础知识复习---原型链

最近在复习js的基础知识,今天准备学习的是js原型链,那在介绍js原型链之前先看一段代码。function Person() {} // 一个构造函数let person1 = new Person();let person2 = new person();Person.prototype.name = 'koala';console.log(person1.name) // k...

2019-12-18 19:35:31 126

原创 JS--对象的深拷贝与浅拷贝

本篇文章将整理一下深浅拷贝的相关知识。文章包括以下内容:基本类型和引用类型对象的深拷贝和浅拷贝基本类型和引用类型JS中包含两种数据类型,既基本类型和引用类型,基本类型是简单的数据段,它是按值访问的,因为基本类型可以操作保存在变量中的值。而引用类型指的是那些可能由多个值构成的对象。引用类型的值是保存在内存中的对象,在JS中,规定不能直接访问内存中的位置,既不能直接访问内存中的变量。所以...

2019-08-14 23:41:58 94

原创 常见HTTP状态码

HTTP状态码3XX表示重定向,表明浏览器需要执行某些特殊的处理以正确处理请求。301 Moved Permanently永久性定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。302 Found临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。和301相似,但302表示的资源不是永久移动,只是临时性的。换句话说...

2019-08-12 14:56:38 91

原创 浅谈arguments对象

今天想简单说一下不常用但是经常会被问到的一个特殊变量arguments。这篇文章将解释关于arguments的以下几个问题。arguments是什么它的特点伪数组如何转化成真数组延伸:es6的扩展运算符概念JS中每个函数内都能访问一个特别变量 arguments。这个变量维护着所有传递到这个函数中的参数列表。注意: 由于 arguments 已经被定义为函数内的一个变量。 因此...

2019-08-11 22:17:27 198

原创 浅谈ES6--Promise

最近准备系统深入的学习一下promise这个东西,它的概念,使用,优势将做一个系统的总结。毕竟每次面试都会问到啊,还记得要看下es6其他的几个重要概念。1、weakmap2、generator3、async await4、es6模块化...

2019-08-09 01:04:08 133

原创 练手写函数

了解原型链前,首先思考下,什么是原型呢?可以这样理解:每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性。 function Person() {} var person1 = new Person();每个函数都有一个prototype的属性,Person.prototype指向的就是一个原型对象...

2019-08-06 00:28:04 477

原创 浅谈WebAssembly

生动形象地介绍 WebAssembly你可能已经听说过,WebAssembly 执行的更快。但是 WebAssembly 为什么执行的更快呢?在这个系列文章中,我会为你解释这一点。等等,什么是 WebAssembly?WebAssembly 是除了 JavaScript 以外,另一种可以在浏览器中执行的编程语言。所以当人们说 WebAssembly 更快的时候,一般来讲是与 JavaScr...

2019-08-04 19:53:25 195

原创 如何获取文件名的扩展名?

var extname = (filename) =&gt; { /* TODO */ var extname; if (!filename || filename.toString() === 'string') { return false; } var extnameIndex = filename.lastIndexOf('.'); if (extnameI...

2018-12-23 20:53:34 197

原创 表单提交 ajax提交 一些提交数据的方法总结

工作中经常会遇到一些需求,比如删除掉数组中指定的元素,比如取出数组中符合要求的元素,去掉重复的元素,这些需求都可以用filter来处理。之前想要做点击这条消息,将这条消息删除的功能,思路是采用array的splice(start,num); 踩了一个大坑,就是我将splice后的数组赋值给了一个变量,我以为变量就是我想要的去重后的数组,实际上变量是筛选去除的值,array经过splice后arr...

2018-12-02 18:47:32 142

原创 踩坑之旅

每次换项目组都得经历搭环境的坎坷之路,我以为有过之前的经验这次会得心应手很多,然而没有深层次的思考,两次经验也有些无能为力,所以我决定记录一下今天的环境搭建。首先pull代码,根据icode下面的提示把代码跑起来,然而发现项目打开一堆接口报错,这是因为这个项目不是直接使用后端接口,而是通过node层的koa服务转接过来的。所以需要去cn库(基于koa实现的转发服务器)下载一份代码,在本地运行,注...

2018-11-22 21:22:06 162

原创 浅谈MVVM是如何实现数据双向绑定的?

// ... 省略function defineReactive(data, key, val) { var dep = new Dep(); observe(val); // 监听子属性 Object.defineProperty(data, key, { // ... 省略 set: function(newVal) { if (val === newVal) return; c

2018-09-18 15:15:50 6357

空空如也

空空如也

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

TA关注的人

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