小程序学习记录

一、小程序的学习路径

  • ES6语法
  • HTML和CSS的学习
  • 微信组件和API的学习

二、小程序的加载流程

  • 小程序的宿主是微信,打开小程序,首先会下载下程序的所有文件。小程序会读取app.json(应用配置文件)中的pages的第一个目录下的页面。
  • 页面渲染的时候,先读取.json的配置文件,再读取wxml和wxss文件渲染,最后读取wxjs文件加载数据
  • 渲染层和逻辑层是分别在不同的线程,渲染层可以有多个通过webview进行显示;逻辑层是在单独的jscore里面进行处理,不会阻塞渲染层的显示。

三、ES6语法的学习

  1. 作用域的概念
  • ES6有三种作用域:全局作用域、函数作用域、快级作用域。
  • var、let、const修饰变量的区别
    • var的变量有变量提升,可以先使用后定义(解释的时候会提升);
    • let修饰的变量不能跨块操作;var修饰的变量不能跨函数操作;
    • const修饰的变量必须初始化而且不能改变
  1. 原型链的理解([[prototype]]、__proto__、prototype)
  • 原型链继承指得是__proto__的继承链,[[prototype]]是__proto的不同书写方式

  • JS中的对象实例化有new和字面量两种,每个对象的__proto__都指向构造函数的原型对象,构造函数的原型对象是在定义时候自动添加的,默认为{};字面量对象的创建实质如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var xiaowang = {
    name: "小王",
    sayHello: function(){
    console.log("hello, my name is" +" " + this.name);
    }
    }
    // 相当于如下Object为其构造函数
    var xiaowang = new Object();
    xiaowang.name = "小王";
    xiaowang.sayHello = function(){
    console.log("hello, my name is" +" " + this.name);
    };
  • 任何函数有且只有函数都有一个prototype,在其定义(具体时机尚不清除)的时候产生,默认为{},函数也是对象,它的__proto__均为Function.prototype, 因为任何函数本质都是由Function实例化的。特殊性Function[函数是自身构造的,构成了闭环;

  • Object.protype对象的__proto__比较特殊指向了null,表明原型继承链的顶点

  1. js中new对象的过程(待补充)
  2. js中继承的过程(待补充)
  3. Object的常用属性和方法(待补充)

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!