<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[77今天也学习了的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_36545813</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_36545813]]></copyright><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/126164860</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/126164860</guid><author>qq_36545813</author><pubDate>Thu, 04 Aug 2022 18:46:06 +0800</pubDate><description><![CDATA[花半秒钟就看透事物本质的人，和花一辈子都看不清事物本质的人， 注定是截然不同的命运。]]></description><category></category></item><item><title><![CDATA[聊聊V8引擎]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/124181624</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/124181624</guid><author>qq_36545813</author><pubDate>Thu, 14 Apr 2022 23:03:15 +0800</pubDate><description><![CDATA[V8 是什么
	V8 是 Google 开源的 JavaScript 引擎。可以理解为：V8 将程序员写的代码，最终解析成机器码能够让计算机识别。其中的具体操作，就是 V8 干的事。
	我们把 V8 看成一个黑盒， 程序语言进去，通过黑盒子的处理，经过一系列操作后，解析成机器码。【V8被广泛用于各种JavaScript执行环境。】
	了解V8，对于性能优化的思考会有更多理解和方向。能够更轻松理解babel语法分析原理，eslint语法检查机制，前端框架的底层实现。

V8的发展

第一个版本的特点：由 Ja]]></description><category></category></item><item><title><![CDATA[mac中在终端查看目录切换路径等操作]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120801755</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120801755</guid><author>qq_36545813</author><pubDate>Sat, 16 Oct 2021 17:50:06 +0800</pubDate><description><![CDATA[Mac终端使用技巧 切换到其他路径和目录
 如果你想将当前 command line 会话切换到其他目录，需要用到三个命令：pwd，ls和cd。

pwd的含义是“print working directory”，会显示当前目录的绝对路径。
ls的含义是“list directory contents”，它会列出当前目录的内容。这个命令还有其他参数可选。
cd的含义是“change directory”，它会改变当前目录到你指定的目录。如果你不指定，则会返回你的 home folder。
pwd　　　　　　]]></description><category></category></item><item><title><![CDATA[GIT整理--待办]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120045025</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120045025</guid><author>qq_36545813</author><pubDate>Fri, 24 Sep 2021 15:42:29 +0800</pubDate><description><![CDATA[博客参考
首先，http是超文本传输协议。
我们写的html页面要渲染在 web 服务器上。早期是通过传统的服务端渲染实现，客户端通过请求服务端，服务端将渲染结果返回给客户端，客户端来显示页面内容。但随着项目越来越复杂，逐渐出现了客户端渲染-实现前后端分离【存在首屏渲染慢和不利于搜索引擎优化SEO的问题】。为了解决这个问题又发展出来了同构渲染/现代化的服务端渲染。这些渲染都需要基于http协议。
影响 http 请求的主要因素是带宽和延迟。
http2.0 相比1.0 ，性能优化有了很大的提升。

黑马程序]]></description><category></category></item><item><title><![CDATA[关于http]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120138033</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120138033</guid><author>qq_36545813</author><pubDate>Tue, 07 Sep 2021 14:01:55 +0800</pubDate><description><![CDATA[哔哩哔哩视频参考-勾崽
http 和 httpshttphttp 协议的本质http 报文请求报文：响应报文：http 状态码http 头字段http 和 https 的区别http1.0 和 http2.0 的区别http2 的多路复用可以并行建立多少个链接。http3
http
http 协议的本质
http是一种网络传输协议。用于客户端【浏览器】与服务端进行通信。
获取页面内容。
当用户通过地址栏访问某个网址，客户端会通过 http 协议发送请求报文给服务器。服务器端接受到客户端的 http 请求报文]]></description><category></category></item><item><title><![CDATA[vue 数据双向绑定原理]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120135612</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120135612</guid><author>qq_36545813</author><pubDate>Mon, 06 Sep 2021 15:13:12 +0800</pubDate><description><![CDATA[0 到 1 掌握：Vue 核心之数据双向绑定
写一个Vue的双向数据绑定
双向绑定原理：MVVM机制
双向绑定原理： view视图变化更新数据model。 model数据变化更新视图view。
Vue 不允许动态添加根级响应式属性。
this.obj.name 无法将name属性设置成响应式。要通过 Vue.$set(target,key,value)

数据响应式：数据的变化，会自动更新视图。这就是响应式。
数据双向绑定：数据变化更新视图，视图变化更新数据。


数据劫持监听。Object.defineP]]></description><category></category></item><item><title><![CDATA[vue中---computed的实现原理]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120133093</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120133093</guid><author>qq_36545813</author><pubDate>Mon, 06 Sep 2021 14:52:58 +0800</pubDate><description><![CDATA[computed是什么，主要干嘛。有啥特点：
computed 是计算属性，可缓存。主要用来替换文本中的模板。插值表达式。

用来包装data数据的复杂逻辑。方便管理。
当依赖的data值发生改变时会自动重新计算。
包含 get 和 set。

写法：
data() {
	return {
		a:1
	}
},
computed:{
	aa: function() {// 1  仅读取的计算属性
		return this.a++;
	},
	bb:{ //  2
		get:function() {
	]]></description><category></category></item><item><title><![CDATA[Virtual DOM]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120132990</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120132990</guid><author>qq_36545813</author><pubDate>Mon, 06 Sep 2021 14:09:04 +0800</pubDate><description><![CDATA[虚拟 DOM: 由JavaScript对象来描述真实 DOM。

VUE 内部的虚拟 DOM 是改造了一个开源库 Snabbdom。
真实 DOM 的操作耗能太大了。


虚拟DOM的最终目标是将 虚拟节点渲染到视图：

虚拟DOM的好处：

维护视图和状态的关系。跟踪状态的变化。状态改变后不需要立即更新真实DOM。而是创建虚拟DOM树 最终来映射到真实DOM。
复杂视图情况下提升渲染性能
跨平台：

浏览器平台渲染dom
服务端渲染 ssr
原生应用（Weex / React Native )
小程序（ ]]></description><category></category></item><item><title><![CDATA[使用base64转图片有什么副作用]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/120044233</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/120044233</guid><author>qq_36545813</author><pubDate>Wed, 01 Sep 2021 17:06:30 +0800</pubDate><description><![CDATA[使用base64来代替img，明显体积增加，会影响网页打开速度。如果使用img通过外链图片的话，图片可以在页面渲染挖出后继续加载，不会造成阻塞。
IE兼容性问题。因为 IE8 以下不支持 dataurl
如果构建工具落后，手动插入 base64 ，编辑器会卡


...]]></description><category></category></item><item><title><![CDATA[plop构建工具]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/119797603</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/119797603</guid><author>qq_36545813</author><pubDate>Thu, 19 Aug 2021 13:19:32 +0800</pubDate><description><![CDATA[每次创建文件时，都会有一些相同的页面结构。比如每个页面都会有 html ,css ,js 文件 。每一个component组件都包含template, script, 和 style。
使用plop去自动创建基础的结构。
yarn add plop --dev 
npm install plop --dev

在项目根目录下新建一个 plopfile.js 文件
module.exports = plop =&gt; {
	plop.setGenerator('component',{
		descript]]></description><category></category></item><item><title><![CDATA[react看官方文档后的吸收]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/119181640</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/119181640</guid><author>qq_36545813</author><pubDate>Wed, 28 Jul 2021 15:34:06 +0800</pubDate><description><![CDATA[初始化一个react项目：

全局安装react脚手架工具： npm install -g create-react-app
使用脚手架工具初始化react项目： create-react-app 项目名
启动react项目： npm start

react 与 vue的异同？
react 核心知识点：
reactRouterDom
Router
ReactComponent
render
react
redux：中间件。可以改变数据流
常用中间件：

redux-logger：提供日志输出
redux-]]></description><category></category></item><item><title><![CDATA[对于ES6-promise的理解]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/119144071</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/119144071</guid><author>qq_36545813</author><pubDate>Tue, 27 Jul 2021 14:55:15 +0800</pubDate><description><![CDATA[/*
尽可能还原 Promise 中的每一个 API, 并通过注释的方式描述思路和原理.
*/
// # Promise是什么？主要用来干嘛？实现思路是什么？为什么？
// 1,Promise是一个类，为什么要给它定义成一个类呢？可以通过new创建，new创建都会分配新的内存，都会执行构造器
// 2,为什么会有Promise,Promise用来干嘛？
// js是单线程执行机制，为了避免队列阻塞，存在异步模式[请求接口,setInterval,setTimeout,…]，而异步模式会存在回调情况。
// ]]></description><category></category></item><item><title><![CDATA[关于ES6新特性]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/119144017</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/119144017</guid><author>qq_36545813</author><pubDate>Tue, 27 Jul 2021 14:54:12 +0800</pubDate><description><![CDATA[关于es6新特性的总结：
看完这篇HTTP，跟面试官扯皮就没问题了
Vue.js面试题整理
必须要会的 50 个React 面试题
前端ES6面试题
ES6 新特性 总结
ES6常用新特性总结
es6新特性有哪些
博客园大佬_龙恩0707
阮一峰 ES6入门教程
ES6新特性
ES6会这些就够了
ES6核心特性
ES6中常用的10个新特性讲解
针对面试时的ES6
ES6 新特性 总结 csdn
1.let const 与 var的比较

var声明的变量，存在变量提升。var可以重复声明一个变量。var声明]]></description><category></category></item><item><title><![CDATA[关于前端设计模式]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/119143935</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/119143935</guid><author>qq_36545813</author><pubDate>Tue, 27 Jul 2021 14:52:00 +0800</pubDate><description><![CDATA[前端设计模式：
参考：

https://www.cnblogs.com/tugenhua0707/p/5198407.html
https://zhuanlan.zhihu.com/p/256405681
设计模式6大原则：https://www.cnblogs.com/toutou/p/4870926.html
前端面经：https://juejin.cn/post/6939774328858738696
设计模式

https://juejin.cn/post/6844904125721772039#]]></description><category></category></item><item><title><![CDATA[工程化，模块化，模块化规范，ES Modules，CommonJs , 模块打包工具webpack]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/119000057</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/119000057</guid><author>qq_36545813</author><pubDate>Thu, 22 Jul 2021 15:20:58 +0800</pubDate><description><![CDATA[技术是为了解决问题而存在的，切忌畏惧技术，为了技术而技术。但凡能解决实际问题或者简化问题的技术，就是值得使用的好技术。
什么是工程化：工程化不是一个工具，工程化是一个目标。
工程化主要解决的问题：

传统语言或语法的弊端
无法使用模块化/组件化方式去处理代码
重复的机械式工作
无法统一代码风格，无法保证代码质量
前端项目依赖后端服务接口支持
整体依赖后端项目
工程化的表现：
一切以提高效率，降低成本，质量保证为目的的手段都属于工程化。
工程化内容：
脚手架工具开发：项目创建阶段，前端工程化的表现。
自动化构]]></description><category></category></item><item><title><![CDATA[typescript]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/118761369</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/118761369</guid><author>qq_36545813</author><pubDate>Thu, 15 Jul 2021 15:52:56 +0800</pubDate><description><![CDATA[TypeScript语言：

JavaScript是一门 弱类型、动态类型 的语言。大规模应用下，JavaScript就会变得越来越复杂，开发周期也会更长。
TypeScript是一门 强类型、静态类型 的语言

强类型与弱类型[从类型安全的角度]
JavaScript是弱类型

弱类型不会限制参数的类型js function foo(num)
弱类型语言允许随意的隐式类型转换[变量类型随时改变不是强弱类型的差异]
弱类型的代码灵活多变。也就失去了可靠性
弱类型的问题：

    const obj = {]]></description><category></category></item><item><title><![CDATA[函数式编程与 JS 异步编程、手写 Promise＞ IO函子问题]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/118728007</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/118728007</guid><author>qq_36545813</author><pubDate>Wed, 14 Jul 2021 15:02:57 +0800</pubDate><description><![CDATA[学习笔记
函数式编程与面向对象编程的区别：

函数式编程将事物与事物之间的逻辑关系抽象成函数映射关系。
函数可以独立存在，可以作为参数，作为返回值，作为变量。通过函数式编程避免了this的复杂作用域问题。
而面向对象编程是将万物抽象为对象，事物之间的联系和属性都成为对象的属性值，所以逻辑关系需要依托对象的关系来访问或者实现。

什么是一等公民：就是可以作为变量，作为返回值，作为传入的参数的东西。函数就是一等公民
高阶函数：
高阶函数即：函数作为参数传入，函数作为返回值
闭包：

闭包就是，在函数内部，返回了]]></description><category></category></item><item><title><![CDATA[js 构造函数的理解 原型和原型链的理解]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/118109038</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/118109038</guid><author>qq_36545813</author><pubDate>Tue, 22 Jun 2021 16:00:23 +0800</pubDate><description><![CDATA[视频地址：讲的很详细
function Person(name,age) {//构造函数与普通函数最大的区别是调用方式的不同，通过new关键字调用。构造函数一般使用大写。
	this.name = name;
	this.myfunc = func;
}

function func() {//因为每创建一个实例对象都会分配一块内存空间，如果将函数定义在构造函数内，那么有多少个实例就会创建多少个函数。所以将func写在全局
	console.log('大家好，我是：'+this.name);//this指向]]></description><category></category></item><item><title><![CDATA[js reduce函数]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/118103304</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/118103304</guid><author>qq_36545813</author><pubDate>Tue, 22 Jun 2021 11:27:26 +0800</pubDate><description><![CDATA[reduce 方法
参考:
reduce() 方法对数组中的每个元素执行一个由开发者自己提供的函数，将其结果汇总为单个返回值。
可以理解为，reduce会遍历数组元素，将每个元素都作为参数，代入自定义函数执行并返回一个返回值。并在下一次执行时将返回值作为参数传入。
const arr = [1, 2, 3, 4]

// 求数组元素值的总和
//let total = arr.reduce((sum , item) =&gt; {
//    return sum + item
//},0)
const f]]></description><category></category></item><item><title><![CDATA[看板.md]]></title><link>https://blog.youkuaiyun.com/qq_36545813/article/details/117076745</link><guid>https://blog.youkuaiyun.com/qq_36545813/article/details/117076745</guid><author>qq_36545813</author><pubDate>Thu, 20 May 2021 14:55:20 +0800</pubDate><description><![CDATA[#npm install 报错的情况下
可以先清理缓存：npm cache clean --force
然后升级版本:npm install -g npm
重新安装: npm install -g cnpm --registry=http://registry.npm.taobao.org
一次不行可以反复几次，就可以进行npm install操作了
#命令删除node_modules
npm install rimraf -g
rimraf node_modules
npm install/cnpm in]]></description><category></category></item></channel></rss>