<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[有心博客]]></title><description><![CDATA[大爱之]]></description><link>https://blog.youkuaiyun.com/qq_32629809</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_32629809]]></copyright><item><title><![CDATA[【14】大厂面试知识总结 - http协议]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/120294514</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/120294514</guid><author>qq_32629809</author><pubDate>Mon, 20 Sep 2021 00:10:45 +0800</pubDate><description><![CDATA[http面试

前端工程师开发界面
需要调用后端的接口，提交/获取 数据 —— http协议
要求事先掌握好ajax

看几个题目

http常见状态码有哪些?

状态码分类

1xx服务器接受请求
2xx请求成功，如200
3xx重定向，如302
4xx客户端错误，如404
5xx服务端错误，如500


常见状态码

200 成功
301 永久重定向（配合location，浏览器自动处理），永久代表浏览器会记住，下次会自动跳转到新地址
302 临时重定向（配合location，浏览器自动处理），临时代表]]></description><category></category></item><item><title><![CDATA[【13】大厂面试知识总结 - JS-Web-API-存储]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/120293924</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/120293924</guid><author>qq_32629809</author><pubDate>Tue, 14 Sep 2021 19:04:27 +0800</pubDate><description><![CDATA[存储
题目

描述cookie、localStorage、sessionStorage区别

容量区别；cookie(4KB)、localStorage（5M）、sessionStorage（5M）
API易用性
是否跟随http请求发送出去



知识点

cookie

本身用于浏览器和server通讯
被"借用"到本地存储来
可用document.cookie = '…'修改
存储大小，最大4KB（缺点）
http请求时需要发送到服务端，增加请求数据量
只能用document.cookie = '…']]></description><category></category></item><item><title><![CDATA[【11】大厂面试知识总结 - JS-Web-API-事件]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/120210987</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/120210987</guid><author>qq_32629809</author><pubDate>Thu, 09 Sep 2021 22:52:21 +0800</pubDate><description><![CDATA[题目

编写一个通用的事件监听函数
描述事件冒泡的流程
无限下拉的列表，如何监听每个图片的点击？

知识点

事件绑定

const btn = document.getElementById('btn1')
btn.addEventListener('click', event =&gt; {
	console.info('clicked')
})

function bindEvent(elem, type, fn) {
	elem.addEventListener(type, fn)
}



事件冒]]></description><category></category></item><item><title><![CDATA[【10】大厂面试知识总结 - BOM操作（Brower Object Model）]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/120208122</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/120208122</guid><author>qq_32629809</author><pubDate>Thu, 09 Sep 2021 19:44:04 +0800</pubDate><description><![CDATA[题目

如何识别浏览器的类型
分析拆解url各个部分

知识点

navigator
screen
location
history

navigator和screen
//navigator
const ua = navigator.userAgent
const isChrome = ua.indexOf('Chrome')
console.info(isChrome)

//screen
console.info(screen.width)
console.info(screen.height)

l]]></description><category></category></item><item><title><![CDATA[【09】大厂面试知识总结 - 从JS基础知识到JS Web API]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/120190530</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/120190530</guid><author>qq_32629809</author><pubDate>Thu, 09 Sep 2021 19:21:19 +0800</pubDate><description><![CDATA[JS基础知识，规定语法（ECMA 262标准）
JS Web API，网页操作的API（W3C标准）
前者是后者的基础，两者结合才能真正实际应用

JS基础知识

变量的类型和计算
原型和原型链
作用域和闭包

JS Web API

DOM
BOM
事件绑定
ajax
存储

前言

vue和React框架应用广泛，封装了DOM操作
但DOM操作一直都是前端工程师的基础、必备知识
只会vue而不懂DOM操作的前端程序员，不会长久

DOM操作（Document Object Model）

题目

DO.]]></description><category></category></item><item><title><![CDATA[【08】大厂面试知识总结 - JS 异步进阶]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/120028472</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/120028472</guid><author>qq_32629809</author><pubDate>Thu, 02 Sep 2021 23:59:35 +0800</pubDate><description><![CDATA[JS异步 - 进阶

之前讲解JS异步，在于初阶的应用
本章在于JS异步的原理和进阶
对初学者有点难度，尽量深入浅出

本章主要内容

event loop
promise进阶
async/await
微任务/宏任务

本章相关面试题

请描述event loop（事件循环/事件轮询）的机制，可画图
什么是宏任务和微任务，两者有什么区别？
Promise有哪三种状态？如何变化

场景题

promise then和catch的连接

//第一题
Promise.resolve().then(() =&gt;]]></description><category></category></item><item><title><![CDATA[【07】大厂面试知识总结 - 异步]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119981189</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119981189</guid><author>qq_32629809</author><pubDate>Sun, 29 Aug 2021 22:42:19 +0800</pubDate><description><![CDATA[JS三座大山：原型和原型链，作用域和闭包，异步和单线程

异步和单线程

同步和异步的区别是什么？
手写用Promise加载一张图片
前端使用异步的场景有哪些？

//setTimeout笔试题
console.info(1)
setTimeout(function () {
	console.info(2)
}, 1000)
console.info(3)
setTimeout(function () {
	console.info(4)
}, 0)
console.info(5)

知识点

单线程和.]]></description><category></category></item><item><title><![CDATA[【06】大厂面试知识总结 -作用域和闭包]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119969355</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119969355</guid><author>qq_32629809</author><pubDate>Sat, 28 Aug 2021 23:13:58 +0800</pubDate><description><![CDATA[作用域和闭包

this的不同应用场景，如何取值？


当做普通函数被调用
使用call、apply、bind
作为对象方法调用
在class的方法中调用
箭头函数


手写bind函数

Function.prototype.bind1 = function () {
	//将参数解析为数组
	const args = Array.prototype.slice.call(arguments)
	//获取this（取出数组第一项，数组剩余的就是传递的参数）
	const t = args.shfit()
]]></description><category></category></item><item><title><![CDATA[【05】大厂面试知识总结 - 原型和原型链]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119941859</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119941859</guid><author>qq_32629809</author><pubDate>Sat, 28 Aug 2021 11:38:47 +0800</pubDate><description><![CDATA[原型和原型链

如何准确判断一个变量是不是数组?


手写一个简易的jQuery，考虑插件和扩展性


class的原型本质，怎么理解？

知识点

class和继承


constructor
属性
方法

// 类
class Student {
    constructor(name, number) {
        this.name = name
        this.number = number
        // this.gender = 'male'
    }
    sa]]></description><category></category></item><item><title><![CDATA[【04】大厂面试知识总结 - JS基础类型(变量类型和计算)]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119897703</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119897703</guid><author>qq_32629809</author><pubDate>Tue, 24 Aug 2021 21:31:58 +0800</pubDate><description><![CDATA[JS基础类型

typeof能判断哪些类型


识别所有值类型
识别函数
判断是否是引用类型(不可再细分)

//判断所有值类型
let a;							typeof a		//'undefined'
let str = 'abc';				typeof str		//'string'
let n = 100;					typeof n		//'number'
let b = true;					typeof b		//'boolean'
let s = Symbol('s')				typeof s		]]></description><category></category></item><item><title><![CDATA[【03】大厂面试知识总结 - CSS知识点]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119788143</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119788143</guid><author>qq_32629809</author><pubDate>Mon, 23 Aug 2021 22:10:15 +0800</pubDate><description><![CDATA[HTML面试题

如何理解HTML语义化？


全是div的标签

	&lt;div&gt;标题&lt;/div&gt;
	&lt;div&gt;
		&lt;div&gt;一段文字&lt;/div&gt;
		&lt;div&gt;
			&lt;div&gt;列表1&lt;/div&gt;
			&lt;div&gt;列表2&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;


搜索引擎机器能识别，h1语意标题这些标签
便于程序开发人员阅读

	&lt;h1&gt;标题&]]></description><category></category></item><item><title><![CDATA[【01】大厂面试知识总结 - 导学]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119763698</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119763698</guid><author>qq_32629809</author><pubDate>Tue, 17 Aug 2021 20:22:10 +0800</pubDate><description><![CDATA[问题1 - 如何能"快速搞定"？

解决方案：直击重点
快速圈出前端常见考点和题目
以最易见的方式讲解清楚

前端面试中的重要考点

HTML和CSS
原型、作用域、异步
DOM事件和AJAX
性能优化
各种手写代码
HTTP协议

问题2 - 如何做到"最易理解"

讲知识点，不是题海战术
学会一道题，就能应对一类题
帮你构建前端知识体系

知识点介绍

CSS

布局
定位
移动端响应式


ES语法

原型、原型链
作用域、闭包
异步、单线程


Web API

DOM、BOM
Ajax跨域
事件、]]></description><category></category></item><item><title><![CDATA[【03】Webpack配置]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119577841</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119577841</guid><author>qq_32629809</author><pubDate>Tue, 17 Aug 2021 18:54:18 +0800</pubDate><description><![CDATA[本文旨在解读webpack相关配置


webpack已是前端打包构建的不二选择
每日比用，面试必考
成熟的工具，重点在于配置和使用，原理并不高优

讲解范围

基本范围
高级配置
优化打包效率
优化产出代码
构建流程概述
babel


回顾之前的webpack面试题


前端代码为何要进行构建和打包？
module chunk bundle分别什么意思，有何区别？
loader和plugin的区别？
webpack如何实现懒加载？
webpack常见性能优化
babbel-runtime和babel-.]]></description><category></category></item><item><title><![CDATA[【02】Vue3中Proxy解析]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119542139</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119542139</guid><author>qq_32629809</author><pubDate>Mon, 09 Aug 2021 22:40:36 +0800</pubDate><description><![CDATA[Object.defineProperty的缺点


深度监听需要一次性递归
无法监听新增属性/删除属性(Vue中添加API来弥补此缺陷Vue.set、Vue.delete)
无法原生监听数组，需要特殊处理

// 触发更新视图
function updateView() {
    console.log('视图更新')
}

// 重新定义数组原型
const oldArrayProperty = Array.prototype
// 创建新对象，原型指向 oldArrayProperty ，再扩展新.]]></description><category></category></item><item><title><![CDATA[【01】前端面试 - VUE]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119004602</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119004602</guid><author>qq_32629809</author><pubDate>Wed, 04 Aug 2021 21:44:11 +0800</pubDate><description><![CDATA[1、v-show和v-if的区别
2、为何v-for中要用key
3、描述Vue组件生命周期（有父子组件的情况）
4、Vue组件如何通讯
5、描述组件渲染和更新的过程
6、双向数据绑定v-model的实现原理
– webpack面试题
7、

]]></description><category></category></item><item><title><![CDATA[【01】前端面试 - VUE原理]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/119041226</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/119041226</guid><author>qq_32629809</author><pubDate>Wed, 04 Aug 2021 21:43:35 +0800</pubDate><description><![CDATA[12

]]></description><category></category></item><item><title><![CDATA[【第04章】Spring Boot整合Web开发 - 配置自定义JSON转换器]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/104181275</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/104181275</guid><author>qq_32629809</author><pubDate>Wed, 05 Feb 2020 13:11:24 +0800</pubDate><description><![CDATA[Spring Boot使用默认的转换器是jackson-databind，如果我们使用自定义转换器时，我们需要去除默认的jackson-databind，比如我们使用Gson作为转换器时我们在pom.xml中添加如下配置：

&lt;dependencies&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework...]]></description><category></category></item><item><title><![CDATA[【第03章】Spring Boot整合视图技术 - 整合Thymeleaf]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/104019954</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/104019954</guid><author>qq_32629809</author><pubDate>Fri, 17 Jan 2020 15:57:21 +0800</pubDate><description><![CDATA[改文章项目文件结构图如下：



步骤一：创建工程、添加依赖

 &lt;dependencies&gt;
 	&lt;!-- thymeleaf相关依赖 --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;s...]]></description><category></category></item><item><title><![CDATA[【第2章】Spring Boot基础配置]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/104003515</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/104003515</guid><author>qq_32629809</author><pubDate>Thu, 16 Jan 2020 15:12:42 +0800</pubDate><description><![CDATA[定制banner内容

我们可以到www.network-science.de/ascii/官网制作启动打印内容，然后放入到resources&gt;banner.txt

Web容器配置
我们在resources -&gt; application.properties下添加配置内配，比如：
### 配置启动端口
server.port=8081
### 配置错误路径
server.error....]]></description><category></category></item><item><title><![CDATA[【01-2】创建Spring Boot项目 - 通过IDEA创建]]></title><link>https://blog.youkuaiyun.com/qq_32629809/article/details/103988653</link><guid>https://blog.youkuaiyun.com/qq_32629809/article/details/103988653</guid><author>qq_32629809</author><pubDate>Wed, 15 Jan 2020 14:22:58 +0800</pubDate><description><![CDATA[步骤一：创建Spring Initializr



步骤二：输入项目基本信息，包括组织ID、模块名称、项目构建类型、最终生成包的类型、java的版本、开发语言、项目版本号、项目描述以及项目的包



步骤三：选择项目所需的依赖



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