<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_44753552的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44753552</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44753552]]></copyright><item><title><![CDATA[学习AJAX(二）HTTP]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/109031400</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/109031400</guid><author>qq_44753552</author><pubDate>Mon, 12 Oct 2020 17:05:07 +0800</pubDate><description><![CDATA[HTTP简介
HTTP(hypertext transport protocol)协议（超文本传输协议），协议详细规定了浏览器和万维网服务器之间相互通信的规则。

请求报文
行:		GET/POST   URL	hTTP/1.1
头:		Host: atguigu.com
		Cookie:name=guigu
		Content-type: applicaton/x-www-form-urlendcoded
		User-Agent: chrome 83
空行
体 		username=admin&amp]]></description><category></category></item><item><title><![CDATA[学习AJAX(一）简介]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/109031040</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/109031040</guid><author>qq_44753552</author><pubDate>Mon, 12 Oct 2020 16:52:17 +0800</pubDate><description><![CDATA[简介
AJAX = Asynchronous JavaScript and XML（异步的 JavaScript 和 XML）。
AJAX 不是新的编程语言，而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下，可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件，但需要用户允许JavaScript在浏览器上执行。

优缺点
优点：
	1.可以无需刷新页面而与服务端进行同行
	2.允许你根据用户事件来更新部分页面内容
缺点：
	1.没有浏览历史，不能回退
	]]></description><category></category></item><item><title><![CDATA[H5学习笔记（九）--其他新增标签]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108630074</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108630074</guid><author>qq_44753552</author><pubDate>Wed, 16 Sep 2020 20:49:26 +0800</pubDate><description><![CDATA[目录1、状态标签2、列表标签3、注释标签4、标记标签5、疯狂的表单6、新增表单控件7、新增表单属性8、表单验证反馈9、关闭验证
1、状态标签
meter:用来显示已知范围的标量值或者分数值。
	value:当前的数值。
	min:值域的最小边界值。如果设置了，它必须比最大值要小。如果没设置，默认为0
	max:值域的上限边界值。如果设置了，它必须比最小值要大。如果没设置，默认为1
	low:定义了低值区间的上限值,如果设置了，它必须比最小值属性大，并且不能超过high值和最大值。未设置或者比最小值还要小时，]]></description><category></category></item><item><title><![CDATA[H5学习笔记（八）--音视频]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108629899</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108629899</guid><author>qq_44753552</author><pubDate>Wed, 16 Sep 2020 20:37:55 +0800</pubDate><description><![CDATA[目录1、html5音视频标签2、video标签的属性3、audio标签的属性4、音视频js相关属性5、音视频js相关函数6、js相关事件（addEventListener)
1、html5音视频标签
&lt;video&gt;:Html5提供的播放视频的标签
	src:资源地址
	controls:该属性定义是显示还是隐藏用户控制界面
	
&lt;audio&gt;:Html5提供的播放音频的标签
	src:资源地址
	controls:该属性定义是显示还是隐藏用户控制界面
	
&lt;source&gt;]]></description><category></category></item><item><title><![CDATA[H5学习笔记（七）--canvas总结]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108587634</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108587634</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 20:45:25 +0800</pubDate><description><![CDATA[1.注意点
	---canvas图像的渲染有别于html图像的渲染，
			canvas的渲染极快，不会出现代码覆盖后延迟渲染的问题
			写canvas代码一定要具有同步思想
	---在获取上下文时，一定要先判断
	---画布高宽的问题
		画布默认高宽300*150
		切记一定要使用html的attribute的形式来定义画布的宽高
		通过css形式定义会缩放画布内的图像
	---绘制矩形的问题
		a.边框宽度的问题，边框宽度是在偏移量上下分别渲染一半，可能会出现小数边框，
			一旦出现小数边框]]></description><category></category></item><item><title><![CDATA[H5学习笔记（六）--canvas像素、合成和事件]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108587160</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108587160</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 20:35:13 +0800</pubDate><description><![CDATA[目录像素操作在canvas中的像素操作操作单个像素（行与列）马赛克合成全局透明度的设置覆盖合成挂挂卡事件将画布导出为图像事件操作
像素操作
在canvas中的像素操作
	到目前为止，我们尚未深入了解Canvas画布真实像素的原理，事实上，
	你可以直接通过ImageData对象操纵像素数据，直接读取或将数据数组写入该对象中
得到场景像素数据
	getImageData():获得一个包含画布场景像素数据的ImageData对像,它代表了画布区域的对象数据
	ctx.getImageData(sx, sy, s]]></description><category></category></item><item><title><![CDATA[H5学习笔记（五）--canvas图片、背景和绘制文本]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108586677</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108586677</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 20:14:44 +0800</pubDate><description><![CDATA[目录使用图片设置背景绘制文本在canvas中绘制文本文本样式measureTextcanvas中文本水平垂直居中阴影(文本阴影&amp;盒模型阴影)
使用图片
在canvas中插入图片(需要image对象)
	1.canvas操作图片时，必须要等图片加载完才能操作
	2.drawImage(image, x, y, width, height)
		其中 image 是 image 或者 canvas 对象，x 和 y 是其在目标 canvas 里的起始坐标。
		这个方法多了2个参数：width 和 he]]></description><category></category></item><item><title><![CDATA[H5学习笔记（四）--canvas钟表实例]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108586591</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108586591</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 19:53:58 +0800</pubDate><description><![CDATA[在画布上制作一个钟表，显示当前时间。

代码：
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;meta charset="UTF-8"&gt;
	&lt;title&gt;&lt;/title&gt;
	&lt;style type="text/css"&gt;
		* {
			margin: 0;
			padding: 0;
		}
		html,
		body {
			height: 100%;
			overflow: hidden;
]]></description><category></category></item><item><title><![CDATA[H5学习笔记（三）--canvas绘制矩形、路径、曲线和变换]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108584148</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108584148</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 18:32:08 +0800</pubDate><description><![CDATA[目录1、绘制矩形笔记：实例2、绘制路径笔记：实例3、绘制曲线canvas绘制圆形canvas绘制圆弧二次贝塞尔三次贝塞尔
1、绘制矩形
笔记：
HTML中的元素canvas只支持一种原生的图形绘制：矩形。所有其他			
的图形的绘制都至少需要生成一条路径

1.绘制矩形
	canvas提供了三种方法绘制矩形：
		----&gt;绘制一个填充的矩形（填充色默认为黑色）
			fillRect(x, y, width, height)
		----&gt;绘制一个矩形的边框（默认边框为:一像素实心黑色）
		]]></description><category></category></item><item><title><![CDATA[H5学习笔记（二）--canvas基本用法]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108583931</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108583931</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 17:43:32 +0800</pubDate><description><![CDATA[1、canvas基本用法概述
1.什么是canvas(画布)
		&lt;canvas&gt; 是 HTML5 新增的元素，可用于通过使用JavaScript中的脚本来绘制图形
	例如，它可以用于绘制图形，创建动画。&lt;canvas&gt; 最早由Apple引入WebKit
	我们可以使用&lt;canvas&gt;标签来定义一个canvas元素
		-----&gt;使用&lt;canvas&gt;标签时，建议要成对出现，不要使用闭合的形式。
		-----&gt;canvas元素默认具有高宽
			]]></description><category></category></item><item><title><![CDATA[H5学习笔记（一）--基础]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108583467</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108583467</guid><author>qq_44753552</author><pubDate>Mon, 14 Sep 2020 17:35:09 +0800</pubDate><description><![CDATA[目录1、HTML5概述2、DOCTYPE3、自定义属性4、可编辑5、语义化标签
1、HTML5概述
HTML5:
	HTML5是定义HTML标准的最新版本，该术语标识两个不同的概念：
		它是一个新版本的HTML语言，具有新的元素、属性和行为；
		它有更大的技术集，允许更多样化、强大的网站和应用程序。
	HTML5 约等于 HTML + CSS + JS
HTML5的优势：
	跨平台:唯一一个通吃PC MAC Iphone Android等主流平台的跨平台语言
	快速迭代
	降低成本
	导流入口多
	分发]]></description><category></category></item><item><title><![CDATA[bootstrap学习笔记]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108540907</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108540907</guid><author>qq_44753552</author><pubDate>Fri, 11 Sep 2020 20:16:31 +0800</pubDate><description><![CDATA[目录一、容器二、栅格源码分析三、响应式工具四、栅格盒模型设计的精妙之处
一、容器
流体容器
		&lt;div class="container-fluid"&gt;
			test
		&lt;/div&gt;

固定容器
		&lt;div class="container"&gt;
			test
		&lt;/div&gt;

		阈值								width
		大于等于1200(lg 大屏pc)       	1170（1140+槽宽）
		
		大于等于992(md 中屏pc)		 	970]]></description><category></category></item><item><title><![CDATA[Less学习笔记]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108517035</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108517035</guid><author>qq_44753552</author><pubDate>Thu, 10 Sep 2020 16:20:19 +0800</pubDate><description><![CDATA[目录变量嵌套混合计算继承避免编译
变量
	@
	变量的延迟加载
	变量是块级作用域

嵌套
	&amp;:平级

混合
	什么是混合？
		将一系列的规则集引入另一个规则集中（ctrl c+ctrl v）
		混合的定义在less规则有明确的指定，使用.的形式来定义
	普通混合（编译到原生css中的）
	不带输出的混合（加双括号）
	带参数的混合
	带默认值的混合
	匹配模式
	arguments

计算
	加减乘除   计算的一方带单位就可以

继承
	#test{
		&amp;:extend(.fat]]></description><category></category></item><item><title><![CDATA[javascript学习笔记（十三） --原型和原型链（二）]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108478116</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108478116</guid><author>qq_44753552</author><pubDate>Tue, 08 Sep 2020 22:33:05 +0800</pubDate><description><![CDATA[目录一、原型二、显式原型和隐式原型三、原型链四、原型链的属性问题
一、原型
1.函数的prototype属性
	每个函数都有一个prototype,它默认指向一个Object空对象（原型对象）
	原型对象有一个属性constructor，它指向函数对象
2.给原型对象添加属性（一般都是方法）
	作用: 函数的所有实例对象自动拥有原型中的属性(方法)

&lt;script type="text/javascript"&gt;
  console.log(Date.prototype, typeof Date]]></description><category></category></item><item><title><![CDATA[ES6学习笔记（八）--生成器函数]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108434439</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108434439</guid><author>qq_44753552</author><pubDate>Sun, 06 Sep 2020 17:57:33 +0800</pubDate><description><![CDATA[generator 生成器函数
    -普通函数，一路到底
    -generator函数，中间可以停，到哪停呢，用 yield 配合，交出执行权
         yield 有 放弃、退让、退位的意思
         需要调用next()方法启动执行，需要遇到 yield 停, 踹一脚走一步
         generator函数前面加一个 * 两边可以有空格，或靠近函数或function
         背后实际生成多个小函数，实现走走停停

function show() {
    co]]></description><category></category></item><item><title><![CDATA[ES6学习笔记（七）--Promise]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108434345</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108434345</guid><author>qq_44753552</author><pubDate>Sun, 06 Sep 2020 17:50:35 +0800</pubDate><description><![CDATA[Promise 承诺
        异步和同步
            异步，操作之间没有关系，同时执行多个操作， 代码复杂
            同步，同时只能做一件事，代码简单
        Promise 对象
            用同步的方式来书写异步代码
            Promise 让异步操作写起来，像在写同步操作的流程，不必一层层地嵌套回调函数
            改善了可读性，对于多层嵌套的回调函数很方便
            充当异步操作与回调函数之间的中介，使.]]></description><category></category></item><item><title><![CDATA[ES6学习笔记（六）--面向对象__基础]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108434176</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108434176</guid><author>qq_44753552</author><pubDate>Sun, 06 Sep 2020 17:39:39 +0800</pubDate><description><![CDATA[有了class关键字、构造器和类分开了
class里面直接加方法
继承： super 超类 == 父类

老版本
function User(name, pass) {
    this.name = name
    this.pass = pass
}

User.prototype.showName = function () {
    console.log(this.name)
}
User.prototype.showPass = function () {
    console.log(t]]></description><category></category></item><item><title><![CDATA[ES6学习笔记（五）--数组扩展]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108433888</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108433888</guid><author>qq_44753552</author><pubDate>Sun, 06 Sep 2020 17:26:42 +0800</pubDate><description><![CDATA[新增了四个方法
	映射(一个对一个) 		--	map
	汇总(一堆出来一个)		-- reduce
	过滤器（保留为true的）	-- filter
	循环迭代					-- foreach

map
let arr = [12, 5, 8]
let result = arr.map(function (item) {
    return item * 2
})
let result2 = arr.map(item =&gt; item * 2) // 简写
console.log("result1 :]]></description><category></category></item><item><title><![CDATA[ES6学习笔记（四）--解构赋值]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108433768</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108433768</guid><author>qq_44753552</author><pubDate>Sun, 06 Sep 2020 17:09:37 +0800</pubDate><description><![CDATA[左右两边结构必须一样；
右边必须是值；
声明和赋值不能分开，必须在一句话里面

let [a, b, c] = [1, 2, 3]
console.log(a, b, c)

let { x, y, z } = { x: 1, y: 2, z: 3 }
console.log(x, y, z)

let [json, arr, num, str] = [{ a: 1, b: 2 }, [1, 2, 3], 8, 'str']
console.log(json, arr, num, str)


...]]></description><category></category></item><item><title><![CDATA[ES6学习笔记（三）--参数]]></title><link>https://blog.youkuaiyun.com/qq_44753552/article/details/108433624</link><guid>https://blog.youkuaiyun.com/qq_44753552/article/details/108433624</guid><author>qq_44753552</author><pubDate>Sun, 06 Sep 2020 17:05:05 +0800</pubDate><description><![CDATA[参数扩展/展开   …args
	收集剩余的参数，必须放在最后一个参数位置，
	展开数组，简写，效果和直接把数组的内容写在这个一样

function show(a, b, ...args) {
    console.log(a)
    console.log(b)
    console.log(args)
}
console.log(show(1, 2, 3, 4, 5)) //1,2,3,4,5

let arr1 = [1, 2, 3]
let arr2 = [4, 5, 6]
let arr3]]></description><category></category></item></channel></rss>