<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hello_Tree__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Hello_Tree__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hello_Tree__]]></copyright><item><title><![CDATA[点击劫持与网站禁止iframe引入]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/121554787</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/121554787</guid><author>Hello_Tree__</author><pubDate>Fri, 26 Nov 2021 10:59:07 +0800</pubDate><description><![CDATA[最近一直在研究web安全方面的知识，研究到了点击劫持这里，所以就来实践一把。
首先创建一个html使用iframe引用一个本地用ngxin 起的web服务；

使用的是nginx，直接展示nginx.conf文件配置；加上这个头后记得nginx -s resload一下，重启之后记得要强制刷新一下浏览器Ctrl+F5
（windows）要是不行就多刷两遍哈。

然后你就会见到一个这么个玩意,这就代表成功了。

看一下返回的headers；已经设置上x-frame-options: DENY.


...]]></description><category></category></item><item><title><![CDATA[冒泡算法学习]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/121382988</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/121382988</guid><author>Hello_Tree__</author><pubDate>Wed, 17 Nov 2021 17:23:25 +0800</pubDate><description><![CDATA[冒泡算法学习
	const arr = [1,5,7,1,2,6,0];
	// 为什么for循环这里要减 1？取length不是刚好可以遍历完所有的元素吗？
	// 别着急 往下看.
	for (let i = 0; i&lt; arr.length - 1; i++) {// 外层控制循环的次数
	//	为什么这里要减 1 又减 i?
		for(let j = 0; j &lt; arr.length - 1 - i; j++) {// 内层控制循环的个数；减i 是因为arr.length-1-i后的]]></description><category></category></item><item><title><![CDATA[html2canvas+jspdf转pdf中遇到的坑]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/120768202</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/120768202</guid><author>Hello_Tree__</author><pubDate>Thu, 14 Oct 2021 17:31:08 +0800</pubDate><description><![CDATA[html2canvas+jspdf转pdf中遇到的坑
项目背景 ：{“vue”: “3.0.11”,，“jspdf”: “^2.4.0”, “html2canvas”: “^1.3.2”},，新增了html转pdf 需求。
像往常一样 百度-&gt;copy-&gt;完成，但是今天这个有点问题，就是pdf生成出来的时候总是少了一半。
然后就各种百度查看相似的问题，基本千篇一律，感觉都是一个人发的，然后其他人疯狂的copy转载。。。
后来实在没招了，就硬着头皮看了下源码，最后不知道怎么机缘巧合之下就试出来了，]]></description><category></category></item><item><title><![CDATA[js函数传参问题]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/118025418</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/118025418</guid><author>Hello_Tree__</author><pubDate>Fri, 18 Jun 2021 14:19:44 +0800</pubDate><description><![CDATA[函数传值思考：
let obj = {}
let arr = []
let b = 1
// 函数传递参数时，如果是基本数据类型以值传递，如果是对象则传递引用
function a(obj2, b2, arr2){
  obj2.a = '123'
  b2 = 3
  arr2[0] = 3
}
a(obj, b, arr)
console.log(obj, b, arr)// {a: "123"} 1 [3];


...]]></description><category></category></item><item><title><![CDATA[前端开发bug记录（一）：浏览器缓存问题]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/116975869</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/116975869</guid><author>Hello_Tree__</author><pubDate>Tue, 18 May 2021 09:42:24 +0800</pubDate><description><![CDATA[开发过程中使用file-saver插件保存图片到本地问题。
页面上有两个需要保存文件到本地的地方，一个是保存pdf到本地，一个是保存图片到本地，使用的是相同的方法，都是file-saver的saveAs方法。
savaAs的保存方法分两种形式，一种是同源的形式，会直接使用a标签加download的形式下载到本地，另一种就是跨域的形式，会使用类似于请求先请求文件到本地，然后转换成blob形式保存到本地。此次问题使用的就是后一种形式。但是在使用过程中保存pdf的可以正常使用，保存图片的却一直报错跨域，经过一番询]]></description><category></category></item><item><title><![CDATA[对js中call, apply, bind，的一点理解。]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/115003609</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/115003609</guid><author>Hello_Tree__</author><pubDate>Fri, 19 Mar 2021 13:03:07 +0800</pubDate><description><![CDATA[正题
call  改变this的指向，传递参数为参数列表。
		let arrary = [1,2,4,5,7];
		let obj = {
			name:'test',
		};
		function fn(){
			console.log(this,arguments);//this 为obj对象，arguments 为传入参数数组
		}
		fn.call(obj,1,2,3,4,5,6);

apply 改变this指向，传递参数为数组。
		let arrary = [1,2,4,5,7]]]></description><category></category></item><item><title><![CDATA[js 基础类型数据判断]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/114414188</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/114414188</guid><author>Hello_Tree__</author><pubDate>Fri, 05 Mar 2021 21:34:41 +0800</pubDate><description><![CDATA[最近工作中遇到了频繁的数据处理，期间遇到了不少的基础数据类型的判断，今天就来总结一下对js基本数据类型中的 undefined, null ,NaN的判断。
对undefined,null的判断： 一般来说直接用 ===来判断就可以来判别，但是有时后台给的undefined/null会被转化成字符串的，这时 === 就会失效,以undefined为例;NaN比较特殊，不能用 ===来判断，但是也可以用转为字符串的方式来进行比较。
let test = undefined;
test === undefine]]></description><category></category></item><item><title><![CDATA[eslint error list]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/112538799</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/112538799</guid><author>Hello_Tree__</author><pubDate>Tue, 12 Jan 2021 19:21:42 +0800</pubDate><description><![CDATA[注册了button组件但是没有使用
88:5 error The "button" component has been registered but not used vue/no-unused-components。
没有使用驼峰命名法
154:32 error Identifier 'unread_total' is not in camel case camelcase.
let unread_total = 0// bad
let unreadTotal = 0//good

vue的props语]]></description><category></category></item><item><title><![CDATA[记一次前端性能优化]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/111986144</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/111986144</guid><author>Hello_Tree__</author><pubDate>Thu, 31 Dec 2020 16:53:12 +0800</pubDate><description><![CDATA[记一次前端性能优化
公司新做的一个项目，用的vue2.x的框架，写完代码第一次上测试环境测试，首屏加载要6秒左右的样子，于是进行了一系列的优化，成功将首屏时间降到了200ms左右；今天写篇文章，分享一下这次优化心得。
总结了一下优化的过程，应该可以分四部分。
一、代码技巧
二、压缩
三、cdn
四、硬件
一、代码技巧
去掉多余代码
减少请求数量

...]]></description><category></category></item><item><title><![CDATA[grpc-web，使用protoc.exe生成js文件报错Missing input file]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/108824401</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/108824401</guid><author>Hello_Tree__</author><pubDate>Sun, 27 Sep 2020 11:34:41 +0800</pubDate><description><![CDATA[@grpc-web，使用protoc.exe生成js文件报错Missing input file
grpc-web，使用protoc.exe生成js文件报错Missing input file
工作最近用到grpc-web,在使用protoc 文件生成js文件时遇到一个坑，简单记录下。
关键字解释：
-I : 文件输入的路径
–js_out:js使用的模块规范及输出的路径


...]]></description><category></category></item><item><title><![CDATA[前端面试题（一）let,const与var的区别及变量提升]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/107079241</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/107079241</guid><author>Hello_Tree__</author><pubDate>Thu, 02 Jul 2020 11:11:21 +0800</pubDate><description><![CDATA[let,const与var的区别及变量提升。
	var a = 1;
	function fn(){
		console.log(a);//undefined
		var a = 10;
		console.log(a);//10
	}

上面这个例子说明使用var声明变量时，浏览器会悄悄将当前作用域内的变量声明提升到作用域顶部，也就是说上面函数内声明的变量a会被提升到到函数作用域的顶部,如下例
var a = 1;
	function fn(){
		var a;//相当于在这里声明了变量但没有赋值，所以]]></description><category></category></item><item><title><![CDATA['express' 不是内部或外部命令，也不是可运行的程序或批处理文件，问题解决。]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/105413461</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/105413461</guid><author>Hello_Tree__</author><pubDate>Thu, 09 Apr 2020 16:36:59 +0800</pubDate><description><![CDATA[’express’ 不是内部或外部命令，也不是可运行的程序或批处理文件，问题解决。
最近闲来无事想用express搭建一个后台服务器，谁知道在npm 安装时就遇到了问题。其实解决办法也很简单。
首先：
		npm install express  -g
		npm install express-generator -g

安装完后运行 express -v或者 express -h 你会发现 "...]]></description><category></category></item><item><title><![CDATA[formData上传多文件，并用Blob将数据生成文件。]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/105146642</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/105146642</guid><author>Hello_Tree__</author><pubDate>Fri, 27 Mar 2020 17:50:06 +0800</pubDate><description><![CDATA[前端上传多个文件解析文件数据后将数据一起返回，用Blob前端生成文件
项目需求：文件合并，上传多个文件，解析后返回数据，在前端生成文件。
HTML：
	&lt;ul&gt;
       &lt;li class="input-title" :class="index==0?'font-weight-900':''"&gt;{{item.title}}&lt;/li&gt;
       &lt;...]]></description><category></category></item><item><title><![CDATA[java判断文本文件编码格式juniversalchardet使用]]></title><link>https://blog.youkuaiyun.com/Hello_Tree__/article/details/104957267</link><guid>https://blog.youkuaiyun.com/Hello_Tree__/article/details/104957267</guid><author>Hello_Tree__</author><pubDate>Wed, 18 Mar 2020 23:38:19 +0800</pubDate><description><![CDATA[java判断文本文件编码格式juniversalchardet使用
今天项目经理让写一个判断隔断文本文件格式的接口，废话不多说直接上代码。
juniversalchardet官网地址: http:code.google.com/p/juniversalchardet/
github地址 https://github.com/thkoch2001/juniversalchardet
支持的编码格式
...]]></description><category></category></item></channel></rss>