ES6学习笔记-Class

ES6Class很多大部分的功能,ES5都是可以实现的, 但是为什么还有出Class呢? 这是因为ES5中生成实例对象的方法是通过构造函数生成的。 这与我们所接触的很多语言(C++)差异很大。于是ES6就提供了跟传统语言的写法。可以说Class是一个语法糖。

阅读更多
Flex布局教程

Flex 布局的概念

Flex 是 Flexible Box 的缩写,意思就是“弹性布局”。它的作用就是为盒状模型提供最大的灵活性。

任何容器都可以指定为Flex 布局.

阅读更多
一步一步实现Promise
上篇文章学习了 关于 Promise ES6学习笔记-Promise ; 那么这篇文章就来看看如何自己实现 一个Promise 和它的原型方法和类方法的 本文手写Promise的主要分为下面这三部分: 实现Promise大体框架 添加异步处理和多次调用then方法 添加Promise的链式调用 实 ...
阅读更多
浏览器的渲染流程

导航流程

浏览器从输入URL到页面展示间到底发生了什么?这整个流程涉及到网络请求渲染流程两大块内容。我们可以先看一下总体的导航流程。

阅读更多
ES6学习笔记-Promise

我们知道在Javascript中,所有的代码都是单线程的。也就是说是同步执行的。而Promise就为异步编程提供了一种解决方案

阅读更多
ES6学习笔记- Proxy

之前深入了解了**Object.defineProperty**。 发现ES6有一个新的对象(Proxy)也能实现属性拦截器的作用,但是功能更加强大。所以这里也学习学习,总结总结。

学习都是来自阮一峰老师

阅读更多
深入了解Object.defineProperty

了解到vue的实现原理是使用了Object.defineProperty()方法。 之前对这个方法没深入了解。知道的就只有这个方法可以设置对象的的属性。现在了解了之后,感觉还是有很多点很值得记录一下。

阅读更多
js中的数据结构之链表

JavaScript中, 我们最常用的是数据结构应该是数组。但是对其他很多的编程语言来说,数组不是最佳的数据结构, 因为在其他的很多编程语言中,数组的长度是固定,如果数组的数据已经填满,再要加入新的数据就很困难。对于数组的删除和添加操作,通常需要将数组中的其他元素向后移或者向前移动,这些操作就很繁琐。

JavaScript中,数组是不存在上述的问题的,是因为在JavaScript实现的时候被实现成了对象,但是这样设计之后JavaScript中的数组就会比其他语言的效率低很多。

这时,就可以使用链表来代替它,它对数据是可以随机访问,并且链表可以在任何可以使用一维数组的情况中。

链表分成了很多种类:单向链表,双向链表,单向循环链表,双向循环链表。下面我们来实现一个单向链表,因为单向链表的使用最为广泛。

阅读更多
Vue 组件 data 为什么必须是函数

在使用vue开发的时候,有一点觉得非常奇怪;使用new Vue()的时候,data是可以传入一个对象的;但是在组件中data就必须为一个函数;vue的官方文档是这么写的:

通过Vue构造器传入的各种选项大多数是可以在组件里使用。data是一个例外,它必须是一个函数。如果定义成了一个对象,那么Vue就会停止。并且会在控制台发出警告,告诉你在组件中data必须是一个函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// new Vue() ---- 实例
const app = new Vue({
el: "#app",
data: {
name: shuliqi,
age: 12
}
})

// 组件
Vue.compoment("people", {
data: function () {
return {
name: shuliqi,
age: 12
}
}
})

这是为什么?为什么在组件中data就必须为一个函数。而new Vue()data可为函数,可为对象

阅读更多