Vue源码分析之构建

Vue.js 源码是基于 Rollup 构建的,它的构建相关配置都在 scripts 目录下。

通常一个基于 NPM 的项目都会有一个 package.json 文件,它是对项目的描述文件,它的内容实际上是一个标准的 JSON 对象。此类项目通常会配置 script 字段作为 NPM 的执行脚本。

Read More

Vue源码分析之 Virtual DOM

首先我们需要知道 Virtual DOM 这个概念。

Virtual DOM 这个概念,它产生的前提是浏览器中的 DOM 是很“昂贵”的,为了更直观的感受,我们可以简单的把一个简单的 div 元素的属性都打印出来,如图所示:

Read More

Vue源码分析之Flow篇

认识 Flow

Flow 是 facebook 出品的 JavaScript 静态类型检查工具。Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码。

Read More

Javascript非构造函数的继承

这个系列的第一部分介绍了”封装”,第二部分介绍了使用构造函数实现”继承”。

今天是最后一个部分,介绍不使用构造函数实现”继承”。

一、什么是”非构造函数”的继承?

比如,现在有一个对象,叫做”中国人”。

1
2
3
4

  var Chinese = {
    nation:'中国'
  };

Read More

Javascript构造函数继承

这个系列的第一部分,主要介绍了如何”封装”数据和方法,以及如何从原型对象生成实例。

今天要介绍的是,对象之间的”继承”的五种方法。

比如,现在有一个”动物”对象的构造函数。

1
2
3
4
5
6

  function Animal(){

    this.species = "动物";

  }

Read More

Javascript封装

Javascript是一种基于对象的语言,所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。

那么,如果我们要把”属性”(property)和”方法”(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?

Read More

Javascript-this

this是 JavaScript 语言的一个关键字,是函数生成时,在函数内部自动生成的指向函数作用域的指针。

1
2
3
function test() {
 this.a = 1;
}

Read More

Javascript闭包

一、作用域

要理解闭包,首先必须理解Javascript特殊的变量作用域,变量的作用域有两种:全局变量和局部变量。

Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。

1
2
3
4
5
6
7
  var a=111;

  function a1(){
    alert(a);
  }

a1(); // 111

另一方面,在函数外部无法读取函数内的局部变量。
1
2
3
4
5
6
function a1(){
    var a=999;
  }

  alert(a); // a is not defined


这里有一个地方需要注意,函数内部声明变量的时候,一定要使用let命令。如果不用的话,实际上声明了一个全局变量!
1
2
3
4
5
6
7
function a1(){
    a=111;
  }

  a1();

  alert(a); // 111

Read More

JavaScript基础

JavaScript规定了几种语言类型

Number,String,Boolean,Null,Undefined,Object,Symbol

Read More

Node.js + MySQL 实现曾删改查,上传图片, sms服务~

源码戳这里

假设您已经安装了 Node.js,创建目录以保存应用程序,并将其设置为工作目录。

Read More