Canvas绘制图形 Canvas绘图回顾前一章讲了如何创建绘图的几个基本要素,它们分别是: 画布 画笔 颜色 橡皮擦(这个现在还用不着) 光有这些还不够,一幅画主要由线条,形状(圆形或者矩形),弧线组成,所以要学会用代码画图,那么得先知道如何在电脑上画出这些线条。我们直接拿之前的HTML 5页面来使用: 12345678910111213141516171819202122<!DOCTYPE html> 2022-02-18 前端 HTML
Canvas基础入门 Canvas快速上手准备工作你只需要准备: Web Kit内核浏览器:Safari(Apple MacOS)、Google Chrome或者Mozilla Firefox;(由于Canvas的标准是Chrome和Mozilla联合制定的,所以推荐使用Chrome或者Firefox) 你最拿手的编辑器:Sublime Text、Atom或者是Visual Studio Code;(这里我选择了VS 2022-02-18 前端 HTML
ES6 异步操作 异步操作和Async函数基本概念前面提到,JavaScript本身是不支持异步编程的,但是不支持异步处理,那么处理速度会特别慢。因此引入异步编程的特性便迫在眉睫。 按照前面章节提到的,JS在异步编程中实现的方式有下面几个: 回调函数 Promise Generator函数 + 协程 Thunk函数简单来说:所谓的“船名调用”实现:就是将参数方法放到一个临时函数中,再将这个临时函数传入函数体,这 2022-02-17 JavaScript ES6基础
ES6 编码风格 编程风格块级作用域(1)使用let来替代var原因之前讲过,let是ES6新增的关键字,和var一样可以用来声明变量,主要推荐用let的原因是: let和var完全等价,主要是let必须先声明再使用; let不存在变量提升;因此不会给程序带来副作用; (2)全局常量和线程安全let和const主要先使用const,理由如下: const可以提醒阅读代码的人,这个变量不应该被改变; const 2022-02-17 JavaScript ES6基础
ES6 类 ES6 Class基本概念ES6为了使JavaScript更接近C++、Java等面向对象的高级语言,引入了Class的概念。语法角度来说Class仅仅是一个语法糖,其绝大部分功能都是ES5的实现。所以是对编程人员友好而设计的。有个例子能充分说明这个问题。 123456789101112131415161718192021222324// ES5function Point(x, y) { 2022-02-17 JavaScript ES6基础
ES6 Promise对象 Promise对象含义Promise是异步编程的一种解决方案,最早由社区提出和实现,ES6在次基础上统一了用法并且提供了Promise对象。 所谓的Promise简单来说就是一个容器:里面保存着某个未来才会结束的事件的结果。从语法上说:Promise是一个对象,从它可以获取异步操作的消息。 Promise对象由两个特点: 对象的状态不受外界影响,只有异步操作的结果可以决定当前是哪一种状态,任何其 2022-02-17 JavaScript ES6基础
ES6 Generator函数 Generator函数基本概念Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。 Generator函数有多种理解角度:从语法上:可以将其理解成状态机,封装了多个内部状态;其次:执行Generator函数会返回一个遍历器对象。 形式上,Generator函数是个普通函数,但是有两个特征。一是function关键字和函数名之间多了一个星号;二是函数体内部使用了yi 2022-02-17 JavaScript ES6基础
ES6 迭代 Iterator和for…of循环Iterator基本概念遍历器是是一种机制:它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署了Iterator接口,就可以完成遍历操作。 数据结构的默认Iterator接口目的在于为所有数据结构,提供一种统一的访问机制,即for...of循环。因此一种数据结构只要部署了Iterator接口,我们就可以成为该数据结构是可遍历的。 ES6规定 2022-02-17 JavaScript ES6基础
ES6 Proxy和Reflect Proxy和ReflectProxy概述Proxy用于修改某些操作的默认行为,等同于在语言层面做修改,所以属于一种“元编程”。Proxy可以理解为在目标对象之前架设一层拦截,外界对该对象的访问必须先通过这层拦截,因此提供了一种机制:可以对外界的访问进行过滤和改写。例子如下: 12345678910var obj = new Proxy({}, { get: fu 2022-02-17 JavaScript ES6基础
ES6 Set和Map Set和MapSet基本用法类似与数组结构,但是数组中的成员值时唯一不重复的。跟Java中的Set是同样的意思。 12345678var s = new Set();[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x));for (let i of s) { console.log(i);}// 2 3 5 4 也可以结合扩展运算符写成下面这样 2022-02-17 JavaScript ES6基础