ink0101's Notes

  • 首页

  • 标签

  • 分类

  • 归档

  • 公益 404

JavaScript理解之原型、原型链

发表于 2018-08-02 | 分类于 前端

原型

原型本质上就是一个对象。

我们创建的每个函数都有一个 prototype 属性,这个属性是一个指针,指向一个对象。
我们创建的每个对象都有一个 __proto__ 属性,这个属性也是一个指针,指向一个对象。

举一个栗子来说明一下原型的概念:

首先,随意创建一个普通函数,这个函数有一个prototype属性,输出:

1
2
3
4
5
function foo () {
console.log('foo 的原型对象', foo.prototype);
}

foo();
阅读全文 »

This的几种常见使用场景

发表于 2018-07-17 | 更新于 2018-08-02 | 分类于 前端

在此之前,先了解一下执行上下文:

理解执行上下文

JavaScript中代码是分段执行的,控制器转到每段可执行代码时,就会进入一个执行上下文,执行上下文可以理解为当前代码的执行环境,执行环境有三种情况:

  • 全局环境: JavaScript代码执行会首先进入该环境。
  • 函数环境:当函数被调用执行时,会进入该函数的执行环境。
  • eval()(不建议使用,可以忽略)

我们只需要考虑全局执行环境和函数执行环境,JavaScript引擎会通过栈的方式来处理执行环境,栈底永远都是全局执行环境,栈顶是当前正在执行的函数执行环境。

注意:在函数中,遇到return就会直接结束可执行代码的执行,将当前上下文弹出栈。

阅读全文 »

自问自答系列

发表于 2018-06-27 | 更新于 2018-08-02 | 分类于 前端

JavaScript部分

JavaScript中箭头函数和普通函数的区别?

箭头函数和普通函数的区别

MVC 模式是什么?为什么现在前端框架不再使用?

MVC: Model、View、Controller

维基百科上的解释:

  • Model: 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)
  • View: 界面设计人员进行图形界面设计
  • Controller:负责转发请求,对请求进行处理
阅读全文 »

微信小程序(一) —— 简介

发表于 2018-06-26 | 更新于 2018-08-02 | 分类于 前端

开发前的准备工作

  • 一个AppID
  • 开发者工具(然鹅,并不好用)
  • 项目配置

需要了解的基础知识

  • HTML,CSS,JavaScript
  • 最好使用过框架,如React、Vue

    • 小程序的语法更像是React和Vue语法的结合
    • 小程序中的生命周期和React中的生命周期有些类似(Vue不太清楚,我没有使用过)
阅读全文 »

《JavaScript 高级程序设计》-- BOM对象

发表于 2018-06-15 | 更新于 2018-07-17 | 分类于 前端

ES 标准是 JavaScript 核心,但是在 Web 中使用 JavaScript,BOM(浏览器对象模型)才是真正的核心。

W3C为了将浏览器中的 JavaScript 最基本的部分标准化,已经将 BOM 的主要方面纳入了 HTML5 规范。

阅读全文 »

《JavaScript 高级程序设计》-- 函数表达式

发表于 2018-06-14 | 更新于 2018-07-17 | 分类于 前端

函数表达式特征

函数表达式和函数声明的区别

定义函数的两种方式:函数表达式、函数声明。
  • 函数声明: 使用function关键字 + 函数名字

    1
    function name(arg1, arg2, arg3)
    • 重要特征: 函数声明提升,这意味着可以把函数声明放在调用它的语句后面。
    • 可以有条件声明: 但是浏览器会认为是无条件声明,因此不要使用。
  • 函数表达式:创建一个匿名函数赋值给一个变量。

    • 匿名函数: 没有名字的函数
    • 函数表达式和其他表达式一样,使用前必须赋值
    • 可以为变量赋值,也可以作为函数返回值
  • ✨ 理解区别的关键是理解函数提升

阅读全文 »

创建数组的正确姿势

发表于 2018-06-07 | 更新于 2018-06-16 | 分类于 前端

JavaScript 中数组的特殊性

  • 每一项都可以保存任意类型的数据,数组大小可以动态调整,即可以随着数据的添加自动增长以容纳新数据。
  • 数组中可能会存在空位

    • 稀疏数组

      具有不连续索引的数组,其length属性值大于元素的个数。

    • 密集数组

      具有连续索引的数组,其length属性值等于元素的个数。

在 JavaScript 中,数组本质上也是对象,是对象的一种特殊形式。数组索引实际上和碰巧是整数名的对象属性没有什么差别,不过数组的实现是经过了优化的,通过数组索引访问数组元素比访问一般对象的属性要快的多。规定数组索引的范围是 0 ~ 4294967294 (2 ^ 32 - 2), 所有的索引都是属性名, 但是只有在这个范围内的整数才是数组索引,数组索引会触发数组的特殊行为。

阅读全文 »
ink0101

ink0101

前端学习,包括JavaScript,Html, Css, React, Webpack, 思维导图等。

7 日志
1 分类
5 标签
GitHub
© 2018 ink0101
本站访客数:
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Muse v6.3.0
博客全站共7.0k字