<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[飞驰的地铁]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zdhanunity</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zdhanunity]]></copyright><item><title><![CDATA[vscode的一些概念和原理，插件系统简单上手指南]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/142893055</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/142893055</guid><author>zdhanunity</author><pubDate>Sun, 13 Oct 2024 08:25:31 +0800</pubDate><description><![CDATA[我们使用的 vscode.window.createWebviewPanel 就是其中一个 Webview API。该方法将返回一个 vscode.WebviewPanel 实例，然后通过 panel.webview.html 设定里面的html内容。Extension与Webview的通信。Extension端发送Webview端监听Webview端发送Extension端监听构建一个双向通信的模型，其模型相当于搭建一个C/S架构：webview是客户端，用于发送请求到服务端。]]></description><category></category></item><item><title><![CDATA[如何用console.log输出pornhub图标(误)]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/103318830</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/103318830</guid><author>zdhanunity</author><pubDate>Sat, 04 Sep 2021 11:50:59 +0800</pubDate><description><![CDATA[下午写了一下shell脚本, 突然想到chrome的devtool是不是也支持字体颜色, 本着上下求索和学以致用的精神,试了一下确实可以]]></description><category></category></item><item><title><![CDATA[console方法整理]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/103317329</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/103317329</guid><author>zdhanunity</author><pubDate>Fri, 29 Nov 2019 22:01:16 +0800</pubDate><description><![CDATA[顺便整理一下console的 方法
console.log
最常用的就是console.log了, 其实这个方法支持css, 如下, 很花哨
console.log('%chello %s %s %c%s', 'color:green;font-family:Hanzipen TC', 'River','Z', 'background-color: #ff6600;color:#fff','How...]]></description><category></category></item><item><title><![CDATA[js参数传递方式 - 值传递]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/99339751</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/99339751</guid><author>zdhanunity</author><pubDate>Mon, 12 Aug 2019 21:24:42 +0800</pubDate><description><![CDATA[今天遇到一题笔试题, 虽然做对了，记录一下
下面的代码输出是什么
var obj = {a:1,b:2}
var type = "hehe"
var arr = [1,2,3]
function change(type, obj, arr){
	type = 'fff'
	obj = {c:1}
	arr.push(4)
}
change(type, obj, arr)
console.log(t...]]></description><category></category></item><item><title><![CDATA[链式调用]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/99203854</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/99203854</guid><author>zdhanunity</author><pubDate>Sun, 11 Aug 2019 21:04:56 +0800</pubDate><description><![CDATA[问题
上次被问到链式调用怎么实现, 而且需要中间seelp停顿n秒,再继续往下执行;
链式调用思路是返回this,  seelp的思路是利用js单线程while阻塞; (利用for等也是一样的)
简单示例
let chain = {
	log(...args){
		console.log(args.toString())
		return this
	},
	// 单位 ms
	sleep(de...]]></description><category></category></item><item><title><![CDATA[CORS详解]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98944090</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98944090</guid><author>zdhanunity</author><pubDate>Fri, 09 Aug 2019 10:44:44 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/lishanlei/p/8823823.html

]]></description><category></category></item><item><title><![CDATA[哪些场景不适合箭头函数]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98524822</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98524822</guid><author>zdhanunity</author><pubDate>Thu, 08 Aug 2019 17:33:38 +0800</pubDate><description><![CDATA[由于箭头函数的this在定义时确定， 所以有一些地方不能用箭头函数

不能定义对象上的方法

	let obj = {
		a: 1,
		func: () =&gt; {
			console.log(this.a)
		}
	}
	var a = 0
	obj.func() // 0


不能定义动态上下文的回调函数

	const btn = document.getElementById(...]]></description><category></category></item><item><title><![CDATA[Vue.set()]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98876772</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98876772</guid><author>zdhanunity</author><pubDate>Thu, 08 Aug 2019 17:14:12 +0800</pubDate><description><![CDATA[现象
我们知道, 下面两种操作, 不会触发视图更新:

根据索引修改数组某项
给对象新增属性

const vm = new Vue({
 data: {
  arr: [1, 2],
  obj: {
    a: 3
  }
 }
});
vm.arr[0] = 3; // 这种操作页面不会重新渲染
vm.obj.b = 3;  // 这种操作页面不会重新渲染

数组和对象set之后区别
区别...]]></description><category></category></item><item><title><![CDATA[Promise的注意点, 以及相关题目]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98800697</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98800697</guid><author>zdhanunity</author><pubDate>Thu, 08 Aug 2019 13:26:58 +0800</pubDate><description><![CDATA[promise.all

let a = new Promise(resolve=&gt;{setTimeout(()=&gt;{resolve(111)},3000)})
let b = new Promise(resolve=&gt;{setTimeout(()=&gt;{resolve(222)},1000)})
let c = new Promise(resolve=&gt;{setTi...]]></description><category></category></item><item><title><![CDATA[webpack相关]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98666955</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98666955</guid><author>zdhanunity</author><pubDate>Tue, 06 Aug 2019 22:17:52 +0800</pubDate><description><![CDATA[webpack3和webpack4的区别

mode/–mode参数
新增了mode/–mode参数来表示是开发还是生产（development/production）
production 侧重于打包后的文件大小，development侧重于goujiansud
移除loaders，必须使用rules（在3版本的时候loaders和rules 是共存的但是到4的时候只允许使用rules）
移除了...]]></description><category></category></item><item><title><![CDATA[Bundle VS Chunk VS Module]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98526026</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98526026</guid><author>zdhanunity</author><pubDate>Mon, 05 Aug 2019 22:19:01 +0800</pubDate><description><![CDATA[首先对于“模块”(module)的概念相信大家都没有异议，它指的就是我们在编码过程中有意识的封装和组织起来的代码片段。狭义上我们首先联想到的是碎片化的 React 组件，或者是 CommonJS 模块又或者是 ES6 模块，但是对 Webpack 和 Loader 而言，广义上的模块还包括样式和图片，甚至说是不同类型的文件


而“包”(bundle) 就是把相关代码都打包进入的单个文件。如果你...]]></description><category></category></item><item><title><![CDATA[this的指向]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98504500</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98504500</guid><author>zdhanunity</author><pubDate>Mon, 05 Aug 2019 18:19:18 +0800</pubDate><description><![CDATA[this的绑定规则有哪些？

默认绑定
隐式绑定
显式绑定 / 硬绑定
new绑定

默认绑定
在不能应用其它绑定规则时使用的默认规则，通常是独立函数调用。
如下， 严格模式下this为undefined
	function sayHi(){
	    console.log('Hello,', this.name);
	}
	var name = 'gg';
	sayHi(); //gg

隐式...]]></description><category></category></item><item><title><![CDATA[EventEmitter简单实现]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/98503421</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/98503421</guid><author>zdhanunity</author><pubDate>Mon, 05 Aug 2019 17:57:12 +0800</pubDate><description><![CDATA[Vue里面用过eventBus作为通信，方式，实现方式是用Vue函数的$on/$emit方法。
这种方式可以叫做发布订阅模式
简单实现一下
  class Event {
    constructor() {
    	// 创建一个事件对象
          this.events = Object.create(null);
        // events: {
		//	hehe: ...]]></description><category></category></item><item><title><![CDATA[Promise实现]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/96868216</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/96868216</guid><author>zdhanunity</author><pubDate>Mon, 05 Aug 2019 17:17:08 +0800</pubDate><description><![CDATA[实现

]]></description><category></category></item><item><title><![CDATA[git常用操作总结]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/97613680</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/97613680</guid><author>zdhanunity</author><pubDate>Sun, 28 Jul 2019 13:34:07 +0800</pubDate><description><![CDATA[// 撤回修改到最近一次add或最近一次commit状态, 
	// 例如已经add到暂存区, 然后再修改, 会回到最近的add的状态; 
	// 例如已经commit提交了, 然后再修改, 会回到最近的commit的状态;
	// 即撤销修改
	git checkout -- filename 

	// 将修改从暂存区撤回到工作区, 即已经add了, 需要回到未add的状态
	// 不加参数...]]></description><category></category></item><item><title><![CDATA[不可扩展对象、密封对象、冻结对象]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/97513516</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/97513516</guid><author>zdhanunity</author><pubDate>Sat, 27 Jul 2019 14:49:21 +0800</pubDate><description><![CDATA[不可扩展对象 Object.preventExtensions
不可添加新属性
	let obj = {a:1,b:2}
	Object.preventExtensions(obj)
	obj.c = 1
	obj // {a:1,b:2}
	// Object.isExtensible检测是否可扩展
	console.log(Object.isExtensible(obj));    // fa...]]></description><category></category></item><item><title><![CDATA[CSRF和XSS]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/96864444</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/96864444</guid><author>zdhanunity</author><pubDate>Sat, 27 Jul 2019 09:37:52 +0800</pubDate><description><![CDATA[CSRF

CSRF，即 Cross Site Request Forgery，中译是跨站请求伪造，是一种劫持受信任用户向服务器发送非预期请求的攻击方式。
通常情况下，CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任，可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器，从而在并未授权的情况下执行在权限保护之下的操作。

简单点说，CSRF 就是利用用户的登录态发起...]]></description><category></category></item><item><title><![CDATA[ft/fl面试/笔试题]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/96631214</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/96631214</guid><author>zdhanunity</author><pubDate>Sat, 27 Jul 2019 09:34:48 +0800</pubDate><description><![CDATA[fustu

左固定两百, 右自适应, 至少三种方案, 优缺点
递归斐波那契数列, 尾递归优化
checkbox表单以及, 参数请求方式
{}[]括号匹配 O(n)
两个有序数组, 一个是另一个子集, 不能用数组api
说说项目架构
在项目组担任什么角色
缓存有什么类型

fuslin
9. 跨域
10. 无序数组中位数, 要求时间复杂O(logn)
11. csrf和xss具体例子和详细过程
1...]]></description><category></category></item><item><title><![CDATA[webpack配置 / 常用插件]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/97485884</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/97485884</guid><author>zdhanunity</author><pubDate>Sat, 27 Jul 2019 09:25:18 +0800</pubDate><description><![CDATA[webpack.config.js
// 将相对路径转换为绝对路径的包
const path = require('path');

module.exports = {
  mode: "production", // "production" | "development" | "none"  // Chosen mode tells webpack to use its built-in o...]]></description><category></category></item><item><title><![CDATA[梳理几个简单的设计模式]]></title><link>https://blog.youkuaiyun.com/zdhanunity/article/details/97393086</link><guid>https://blog.youkuaiyun.com/zdhanunity/article/details/97393086</guid><author>zdhanunity</author><pubDate>Fri, 26 Jul 2019 16:00:40 +0800</pubDate><description><![CDATA[大致分为三类

创建型
行为型
结构型

创建型

工厂模式
暴露出一个工厂方法，实际上建造什么样的实例对象（也就是new 哪一个构造函数）我们不用关心
单例模式
保证一个类仅有一个实例。

结构型

适配器模式
是指将一个接口转换成自己希望的另外一个接口。比如获取到后端传来的数据，但这个数据不是我们想要的格式, 这个时候就可以用适配器方法来转换一下
装饰器模式
是指在不改变原对象的基础上，通过对...]]></description><category></category></item></channel></rss>