<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shaliwang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shaliwang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shaliwang]]></copyright><item><title><![CDATA[Canvas的transform函数]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/102978141</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/102978141</guid><author>shaliwang</author><pubDate>Sun, 10 Nov 2019 15:03:33 +0800</pubDate><description><![CDATA[文章目录变换矩阵什么是线性映射什么是线性变换什么是变换矩阵
变换矩阵

度娘定义：如果T是一个把Rn映射到Rm的线性变换，且x是一个具有n个元素的列向量，那么我们把mxn的矩阵A，称为T的变换矩阵。

什么是线性映射

度娘定义：线性映射是从一个向量空间V到另外一个向量空间W的映射，且保持加法运算和数量乘法运算。

此处线性映射的映射是动词，但是在其定义中的映射是一个名词。
这里的向量空间和线性空...]]></description><category></category></item><item><title><![CDATA[Canvas获取视频第一帧缩略图]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/102916205</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/102916205</guid><author>shaliwang</author><pubDate>Tue, 05 Nov 2019 16:15:44 +0800</pubDate><description><![CDATA[2019年11月5日Chrome能显示方法Firefox下可以运行的方法一方法二
记录下一个疑问，最近在重新看canvas做点Demo这样，时间是写在2019年11月5日，以后要是没有这个问题了，以W3C更新的为标准，这个只是参考
尝试着在canvas中显示视频第一帧的时候碰上的问题：在Chrome中，用video.addEventLisener("loadeddata",func)、video....]]></description><category></category></item><item><title><![CDATA[整理学习——ES6 modules]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/100904849</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/100904849</guid><author>shaliwang</author><pubDate>Tue, 24 Sep 2019 14:27:17 +0800</pubDate><description><![CDATA[文章目录背景
背景
在ES6之前，

]]></description><category></category></item><item><title><![CDATA[整理学习——ES6 class、super、extends、mixins]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/100745722</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/100745722</guid><author>shaliwang</author><pubDate>Mon, 16 Sep 2019 21:12:12 +0800</pubDate><description><![CDATA[文章目录简单说明async function name()
简单说明
async function name()

]]></description><category></category></item><item><title><![CDATA[整理学习——ES6 Promise对象]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/100625432</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/100625432</guid><author>shaliwang</author><pubDate>Wed, 11 Sep 2019 16:28:32 +0800</pubDate><description><![CDATA[文章目录简要说明new Promise(executor)
简要说明
Promise对象用于表示一个异步操作的最终完成/失败，及其结果值。
new Promise(executor)
executor = function(resolve, reject){…}
executor是一个参数为resolve和reject的函数。

...]]></description><category></category></item><item><title><![CDATA[整理学习——fetch]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/100379183</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/100379183</guid><author>shaliwang</author><pubDate>Sun, 08 Sep 2019 12:47:54 +0800</pubDate><description><![CDATA[文章目录简单说明fetch(input[,option])
简单说明
fetch()函数和promise对象都是用于异步编程的。异步编程最主要的目的就是解决有可能阻塞运行的代码。将阻塞的代码在子线程进行计算运行，而不阻塞主要运行的主线程，并在运行完毕了再运行处理结果的函数。
fetch(input[,option])
fetch(input[, option])属于WindowOrWorkerGl...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6的异步]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/100113179</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/100113179</guid><author>shaliwang</author><pubDate>Mon, 02 Sep 2019 13:55:14 +0800</pubDate><description><![CDATA[文章目录同步JavaScript异步JavaScript异步编程风格异步callbackspromise
同步JavaScript
通常情况下，程序代码在运行的时候，同一时刻只会执行一个事件。而在程序代码中，如果一个函数依赖于另一个函数的运行结果，那么这个函数需要等待另一个函数执行完毕并返回了结果才可以继续运行并结束。
这种情况在计算机系统上并没有充分利用电脑的计算能力及多核CPU的优势。应该是电...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6之迭代器和生成器]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/100015714</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/100015714</guid><author>shaliwang</author><pubDate>Tue, 27 Aug 2019 23:04:13 +0800</pubDate><description><![CDATA[文章目录概述迭代器
概述
JavaScript目前有四种数据集合，分别为数组Array、对象Object、Set对象和Map对象。如果说这四种数据集合有着各自的获取接口，那么必定会造成开发成本和维护成本的增加。于是提出了一个新的接口机制，Iterator，来为这几种不同的数据集合，甚至于不同的数据结构提供统一的访问机制。任何数据结构只要部署了Iterator接口，就可以完成遍历操作。
PS1：是大...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6的Reflect]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/99975067</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/99975067</guid><author>shaliwang</author><pubDate>Thu, 22 Aug 2019 14:25:26 +0800</pubDate><description><![CDATA[文章目录简单说明Reflect对象的方法Reflect.apply(target, thisArgument, argumentsList)异常Reflect.construct(target, argumentsList[, newTarget])异常Reflect.defineProperty(target, propertyKey, attributes)异常Reflect.deletePr...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6的Proxy]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/99688848</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/99688848</guid><author>shaliwang</author><pubDate>Wed, 21 Aug 2019 16:35:24 +0800</pubDate><description><![CDATA[文章目录概述
概述
Proxy对象用于定义基本操作的自定义行为（如属性查找、赋值、枚举、函数调用等）。是一个用来代理基本操作的对象。可以利用它来过滤和改写用户的某些操作。


...]]></description><category></category></item><item><title><![CDATA[整理学习——Map和WeakMap]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/99564084</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/99564084</guid><author>shaliwang</author><pubDate>Wed, 14 Aug 2019 18:48:15 +0800</pubDate><description><![CDATA[文章目录Map对比Object相同点不同点属性Map.lengthget Map[@@species]Map.prototypeMap实例属性Map.prototype.constructorMap.prototype.size方法Map.prototype.clear()Map.prototype.delete(key)Map.prototype.entries()Map.prototype.f...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6的Set和WeakSet]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/99089633</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/99089633</guid><author>shaliwang</author><pubDate>Wed, 14 Aug 2019 14:02:12 +0800</pubDate><description><![CDATA[文章目录Set([iterable])属性Set.lengthget Set[@@species]Set.prototype实例属性Set.prototype.constructorSet.prototype.size方法Set.prototype.add(value)Set.prototype.clear()Set.prototype.delete(value)Set.prototype.ent...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6的Symbol]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/98964776</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/98964776</guid><author>shaliwang</author><pubDate>Sat, 10 Aug 2019 17:09:32 +0800</pubDate><description><![CDATA[文章目录新的原始数据类型var s = Symbol([key])参数key转换StringBooleanObject作为对象属性名属性Symbol.lengthSymbol.prototype方法Symbol.for([key])与Symbol()的区别Symbol.keyFor(sym)内置Symbols迭代Symbol.iteratorSymbol.asyncIterator正则表达式Sym...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6对象的扩展]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/98725648</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/98725648</guid><author>shaliwang</author><pubDate>Fri, 09 Aug 2019 16:02:05 +0800</pubDate><description><![CDATA[文章目录简洁表示法注意事项属性名表达式定义对象的属性的方法方法的name属性
简洁表示法

属性简写。在对象之中，直接写变量，属性名为变量名, 属性值为变量的值。var foo = "bar";
var baz = {foo};
console.log(baz);
//Output: {foo: "bar"}

//相当于
var baz = {foo: foo};


方法简写var o = {...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6函数的扩展]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/98312942</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/98312942</guid><author>shaliwang</author><pubDate>Tue, 06 Aug 2019 22:04:58 +0800</pubDate><description><![CDATA[文章目录参数默认值使用解构赋值的方式设置默认值两种方法使用时的区别默认参数的位置length属性name属性Function构造函数bind返回的函数作用域应用rest参数扩展运算符代替数组的apply方法扩展运算符的运用严格模式箭头函数使用注意嵌套
参数默认值
参数变量默认声明，不能使用let或const二次声明。
function setDefault(x, y="defaultVal"){}...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6数组的扩展]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/98103743</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/98103743</guid><author>shaliwang</author><pubDate>Fri, 02 Aug 2019 15:38:28 +0800</pubDate><description><![CDATA[文章目录Array.from()与扩展运算符的区别第二参数第三参数Array.of()数组实例相关方法copyWithin()includes()对比indexOf()对比Map结构的has对比Set结构的has数组的空位
Array.from()
将两类对象转为真正的数组：

类似数组的对象（具有length属性）

DOM操作返回的NodeList集合
函数内部的arguments对象


可...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6数值的扩展]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/97958093</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/97958093</guid><author>shaliwang</author><pubDate>Thu, 01 Aug 2019 19:50:32 +0800</pubDate><description><![CDATA[文章目录二进制、八进制表示二进制八进制转为10进制Number.isFinite()、Number.isNaN()Number.isFinite()Number.isNaN()与传统方法的区别Number.parseInt()、Number.Float()Number.isInteger()
二进制、八进制表示
二进制
0b前缀
八进制
0o前缀
转为10进制
使用Number()即可
Numbe...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6正则的扩展]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/97794350</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/97794350</guid><author>shaliwang</author><pubDate>Wed, 31 Jul 2019 19:44:08 +0800</pubDate><description><![CDATA[转载整理自：http://caibaojian.com/es6/regex.html
文章目录RegExp(regExp[,modifier])字符串正则方法
RegExp(regExp[,modifier])
第一个参数为正则，可以使用第二个参数指定修饰符。返回的正则会忽略原有正则的修饰符，仅使用指定的修饰符。
new RegExp(/abc/ig, 'i').flags
// "i"

字符串...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6字符串的扩展]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/97393593</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/97393593</guid><author>shaliwang</author><pubDate>Tue, 30 Jul 2019 16:23:46 +0800</pubDate><description><![CDATA[文章目录字符串Unicode表示codePointAt()fromCodePoint()字符串的iteratornormalize()查找字符串includes()startsWith()endsWith()repeat()补全长度padStart()padEnd()补全规则模板字符串
字符串
Unicode表示
'\z' === 'z'  // true
'\172' === 'z' // tr...]]></description><category></category></item><item><title><![CDATA[整理学习——ES6变量的解构赋值]]></title><link>https://blog.youkuaiyun.com/shaliwang/article/details/97124937</link><guid>https://blog.youkuaiyun.com/shaliwang/article/details/97124937</guid><author>shaliwang</author><pubDate>Fri, 26 Jul 2019 15:04:10 +0800</pubDate><description><![CDATA[文章目录什么是JavaScript的解构？模式匹配的解构解构不成功不完全解构非对象解构默认值各类型数据的解构赋值对象
什么是JavaScript的解构？
哲学家们还没给出确切的定义，所以我就用我自己理解的来了。以下都是个！人！理！解！
解构是将一个大的复杂的东西分解并重构成多个易于理解的小的东西。这个东西可以是一个概念也可以是一个实体。
JavaScript的解构其实是分解解构，但是没有重构的过程...]]></description><category></category></item></channel></rss>