<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_42822993的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_42822993</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_42822993]]></copyright><item><title><![CDATA[身份证正则表达式(常见)]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120538040</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120538040</guid><author>qq_42822993</author><pubDate>Tue, 28 Sep 2021 21:36:51 +0800</pubDate><description><![CDATA[身份证正则表达式(常见)
15位的身份证
正则表达式：
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;

解释：
[1-9]\d{5}      &nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&n]]></description><category></category></item><item><title><![CDATA[什么？防抖节流就是一个这么简单的玩意？]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120518844</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120518844</guid><author>qq_42822993</author><pubDate>Mon, 27 Sep 2021 23:10:42 +0800</pubDate><description><![CDATA[防抖节流个人看法讲解
一、对防抖节流的认知
我以为的防抖节流：

实际上的防抖节流：

详细请往下看
二、我开始正经了
-------------------防抖 -------------------
首先先看一个问题：
公司给了一个电商里一个搜索框的小模块，需求：
1.用户输入关键词
2.系统给出推荐的相关商品
解决思路：简单，一个输入框加一个oninput事件，事件里执行推荐操作不就搞定啦？错错错！如果你是这样想的，你会得到下面的效果：

你会发现，用户每输入一个字你就进行一次处理，我这里举例用的是.]]></description><category></category></item><item><title><![CDATA[call()、apply()、bind()方法的区别和相似点]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120504851</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120504851</guid><author>qq_42822993</author><pubDate>Mon, 27 Sep 2021 11:15:52 +0800</pubDate><description><![CDATA[call()、apply()、bind()方法的区别和相似点
一、切换函数执行的上下文环境（context），即 this 绑定的对象。
1.call() 方法是预定义的 JavaScript 方法。
2.apply() 方法接受数组形式的参数。编写用于不同对象的方法。
3.bind()方法主要就是将函数绑定到某个对象，bind()会创建一个函数，
函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值，
例如：f.bind(obj)，实际上可以理解为obj.f()，这时f函数体内的this]]></description><category></category></item><item><title><![CDATA[相对定位、绝对定位、固定定位、粘滞定位、静态定位的参照和区别]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120484151</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120484151</guid><author>qq_42822993</author><pubDate>Sun, 26 Sep 2021 10:54:55 +0800</pubDate><description><![CDATA[相对定位、绝对定位、固定定位、粘滞定位、静态定位的参照和区别




定位类型
参考点
是否脱离文档流




相对定位
相对原先自己的位置
不脱离


绝对定位
相对具有定位属性的上层元素
脱离


固定定位
相对浏览器窗口定位
脱离


粘滞定位
相对定位+固定定位组合，有临界值
脱离



...]]></description><category></category></item><item><title><![CDATA[Cannot use import statement outside a module]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120481907</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120481907</guid><author>qq_42822993</author><pubDate>Sun, 26 Sep 2021 09:29:32 +0800</pubDate><description><![CDATA[问题：
Cannot use import statement outside a module
解决方法：
1.打开package.json文件
2.在“main”:'xxxxx.xxx’下面添加代码"type":"module",

注意：末尾添加逗号

3.保存关闭package.json文件


]]></description><category></category></item><item><title><![CDATA[什么！？ES6这么好用，我居然不知道？]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120462833</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120462833</guid><author>qq_42822993</author><pubDate>Fri, 24 Sep 2021 21:13:18 +0800</pubDate><description><![CDATA[一、新增let和const




关键字
块级作用域
变量声明提升
初始值




var
Y
Y
-


let
X
X



const
X
Y
必须有


二、新增箭头函数
//普通函数
var fn1 = function (param) {
    return param++;
}
// 箭头函数
let fn2 = (param) =&gt; {
    return param++;
}

三、新增 '扩展运算符 ’ 和  ‘解构’ 操作
扩展运算符
…会把数组中的每一项展开，分别赋值给等]]></description><category></category></item><item><title><![CDATA[用Babel-cli将ES6转ES5]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120462240</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120462240</guid><author>qq_42822993</author><pubDate>Fri, 24 Sep 2021 20:27:17 +0800</pubDate><description><![CDATA[用Babel-cli将ES6转ES5
一、为什么要转ES5
&nbsp; &nbsp; &nbsp; 虽然ES6非常好用，但并不是所有浏览器所有客户端都适应ES6的，降成ES5是为了更强的使用性。
二、安装转换工具 babel-cli
1.第一步初始化文件夹（如果已经有package.json文件说明已经初始化过了，可以跳过）
右键在文件夹在终端中打开，输入命令npm init -y或者cnpm init -y

2.在终端继续输入命令cnpm install --global babel-cli安装 ba]]></description><category></category></item><item><title><![CDATA[ES6模块化，前端工程的核心！]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120461052</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120461052</guid><author>qq_42822993</author><pubDate>Fri, 24 Sep 2021 19:59:45 +0800</pubDate><description><![CDATA[ES6模块化，前端工程的核心！
一、什么是模块化？为什么要模块化？
概念：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;模块化把一个复杂的程序板块划分成多个小模块，每一个小模块实现某一特定的功能，目的是为了降低耦合度，提高复用率。
模块化的好处：

代码可读性高
便于维护
方便各模块间组合复用
有利于多人共同维护一个项目
可进行单元测试

二、ES6中的模块化
1.背景
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 ES6 之前，社区制定]]></description><category></category></item><item><title><![CDATA[密码输入框（暗文输入）]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120449804</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120449804</guid><author>qq_42822993</author><pubDate>Fri, 24 Sep 2021 10:24:58 +0800</pubDate><description><![CDATA[密码输入框（暗文输入）
一、暗文与明文
密码框实际上就是一个设置了type属性 的 input标签
明文输入：&lt;input type="text"&gt;
暗文输入：&lt;input type="password"&gt;
二、效果

三、代码
    明文&lt;input type="text"&gt;
    &lt;br&gt;
    暗文&lt;input type="password"&gt;

四、扩展
常用的type属性取值还有




type
效果




radio
单选框
]]></description><category></category></item><item><title><![CDATA[鼠标悬浮时缓慢放大图片（过渡transition）]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120448930</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120448930</guid><author>qq_42822993</author><pubDate>Fri, 24 Sep 2021 09:58:34 +0800</pubDate><description><![CDATA[鼠标悬浮时缓慢放大图片（过渡transition）
一、不添加过渡
效果：

代码：
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, ]]></description><category></category></item><item><title><![CDATA[什么是Flex布局？]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120424434</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120424434</guid><author>qq_42822993</author><pubDate>Wed, 22 Sep 2021 23:00:56 +0800</pubDate><description><![CDATA[Flex布局
别名：弹性布局、
一、使用方法
在需要开启flex布局的元素（father）添加样式
&lt;style&gt;
.father{
display: flex;
}
&lt;/style&gt;

二、关键属性
1. flex-wrap 换行属性（是否换行）
取值：
nowrap(默认) | wrap| wrap-reverse
wrap表示换行，即项目不会等分容器宽度，而是根据自身宽度进行排列，如果超出父容器宽度则自然换行。
wrap-reverse同样表示换行，需要注意的是第一排会紧贴容器]]></description><category></category></item><item><title><![CDATA[三分钟弄懂计数排序算法]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120338983</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120338983</guid><author>qq_42822993</author><pubDate>Thu, 16 Sep 2021 22:23:39 +0800</pubDate><description><![CDATA[三分钟弄懂计数排序算法
一、使用情景：
1.数据量大
2.数据范围小
二、低配版计数排序
历程导图：

代码：(javaScript)
//一、 低配版,只能对没有归属关系的数据排序，可能会浪费用不到的数组空间
function baseCountingSort(arr) {
    // 1.找出最大值
    var max = arr[0]
    arr.forEach(elem =&gt; {
        if (elem &gt; max)
            max = elem
  ]]></description><category></category></item><item><title><![CDATA[Ajax是什么？Ajax的作用和使用]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120311082</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120311082</guid><author>qq_42822993</author><pubDate>Wed, 15 Sep 2021 16:19:04 +0800</pubDate><description><![CDATA[Ajax是什么？Ajax的作用和使用
一、Ajax是什么？
​        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ajax是一种使用现有技术集合，技术内容包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。
​      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  用于浏览器与服务器之间使用异步数据传输(HTTP ]]></description><category></category></item><item><title><![CDATA[用画布canvas简单画时钟表]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120295609</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120295609</guid><author>qq_42822993</author><pubDate>Tue, 14 Sep 2021 20:14:05 +0800</pubDate><description><![CDATA[用画布canvas画时钟表
一、效果

&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport"
        content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"&gt;
]]></description><category></category></item><item><title><![CDATA[画布canvas的基础使用]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120289971</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120289971</guid><author>qq_42822993</author><pubDate>Tue, 14 Sep 2021 18:23:48 +0800</pubDate><description><![CDATA[画布canvas的基础使用
一、基本用法
(1)创建并获取canvas对象–获取画布
通过document.getElementById()等方法取得canvas对象。
(2)取得上下文(context)
图形上下文是一个封装了很多绘图功能的对象，用于实现绘制操作，参数只能是“2d”
(3)定义填充样式
context.fillStyle=‘red’
(4)绘制填充图形、线条、边框、图像等
例1：绘制一个填充矩形
效果：

html代码
 &lt;!-- 创建一个画布对象 --&gt;
 	&lt;canv]]></description><category></category></item><item><title><![CDATA[jQuery注意点及常用函数总结]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120289545</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120289545</guid><author>qq_42822993</author><pubDate>Tue, 14 Sep 2021 16:01:11 +0800</pubDate><description><![CDATA[jQuery注意点及常用函数总结
1. 1.jQuery库包含以下功能
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  * HTML选取
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  * HTML元素操作
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;   * CSS操作
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* HTML事件函数
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  * ]]></description><category></category></item><item><title><![CDATA[什么是深拷贝和浅拷贝，如何进行浅拷贝？]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120225858</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120225858</guid><author>qq_42822993</author><pubDate>Fri, 10 Sep 2021 18:32:27 +0800</pubDate><description><![CDATA[什么是深拷贝和浅拷贝，如何进行浅拷贝
一、了解深浅拷贝前先来了解一个堆区、栈区
栈区存放基础数据类型的值(引用或常量)
堆区存放引用数据类型的值
浅拷贝：直接赋值地址
深拷贝：在内存中新建一个新的拷贝对象，将引用赋值
二、数组深拷贝
1.for循环拷贝
2.slice()
3.concat()
4.ES6的扩展运算符…
三、对象深拷贝
方法1：使用 JSON.parse(JSON.stringify(obj));
var obj={
    name:'zhangsan',
    age:12
}
var]]></description><category></category></item><item><title><![CDATA[500错误及服务器内部错误]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120224913</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120224913</guid><author>qq_42822993</author><pubDate>Fri, 10 Sep 2021 16:45:36 +0800</pubDate><description><![CDATA[500错误及服务器请求错误
一、简言：500错误代表着你请求的后端或者说服务器端出现了错误。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可能的原因非常多，因为很多程序内部都会把代码运行出现的错误捕捉然后直接返回一个“服务器内部错误500”，这也就导致了我们在前端发送请求时见到的错误500次数如此多的原因。因为有些时候不管后台哪一个地方的逻辑错了，都会给我们返回500.

二、500到底是什么？
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp]]></description><category></category></item><item><title><![CDATA[JavaScript常见面试题及答案(1)]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120197292</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120197292</guid><author>qq_42822993</author><pubDate>Thu, 09 Sep 2021 11:14:44 +0800</pubDate><description><![CDATA[JavaScript常见面试题及答案(1)
1.js组成

ECMAScript，描述了该语言的语法和基本对象。(JS核心语言标准)

文档对象模型（DOM），描述处理网页内容的方法和接口。

是针对XML的基于树的API。描述了处理网页内容的方法和接口

是HTML和XML的API，DOM把整个页面规划成由节点层级构成的文档。




浏览器对象模型（BOM），描述与浏览器进行交互的方法和接口。



2.js代码可以运行在什么地方
1.Nodejs环境下
2.浏览器中
3.js里面的内置函数及对象有哪些]]></description><category></category></item><item><title><![CDATA[JavaScript内置对象总结]]></title><link>https://blog.youkuaiyun.com/qq_42822993/article/details/120066796</link><guid>https://blog.youkuaiyun.com/qq_42822993/article/details/120066796</guid><author>qq_42822993</author><pubDate>Thu, 02 Sep 2021 17:50:06 +0800</pubDate><description><![CDATA[JavaScript内置对象总结




方法
描述




Arguments
函数参数类数组对象


Array
数组对象


Boolean
布尔对象


Date
日期时间


Error
异常对象


Function
函数构造器对象


Match
数值对象


Object
基础对象


RegExp
正则表达式对象


String
字符串对象



...]]></description><category></category></item></channel></rss>