<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ja_ho的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ja_ho</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ja_ho]]></copyright><item><title><![CDATA[继承的简单了解]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/124317875</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/124317875</guid><author>Ja_ho</author><pubDate>Thu, 21 Apr 2022 11:43:10 +0800</pubDate><description><![CDATA[🎃前言
虽然平时在写代码的时候比较少用的继承，因为JS首先应该是类似于动态的，不像其他语言一样，它没有提供一个Class的实现，只是在ES2015/ES6中通过引入Class关键字语法糖而已，由于是基于原型的继承，所以继承是面试会重点考察的一部分，继承在很大程度上是比较考验到对面向对象的一个熟悉程度，关于JS的继承中有几大种方式，那么今天通过这篇文章就把自己了解到的继承方式展开一下学习。
🎆什么是继承
继承可以是一个简单的父子关系，比如‘B继承了A，那么B就相当于是A的子类，A就是B的父类’，简单的一句话就]]></description><category></category></item><item><title><![CDATA[Promise实现一个红绿灯]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/124246749</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/124246749</guid><author>Ja_ho</author><pubDate>Mon, 18 Apr 2022 12:40:59 +0800</pubDate><description><![CDATA[前言
前端跨域的方式是面试八股文中常见的一部分，最近面试中也是被问到跨域的问题，跨域的解决方案无非就是几个

Jsonp跨域
cors
vue中的proxy跨域
本地项目中调试用的最多的就是 node代理

复习一下什么是跨域

浏览器从一个网页去请求另一个资源时，域名、端口、协议任一不同，都是跨域。在前后端分离的模式下，前后端的域名是不一致的，跨域是必然发生的事情。但服务器与服务器之间请求数据并不会存在跨域行为，跨域行为是浏览器安全策略限制，也称为浏览器的同源策略

如果是跨域，你将会发现下图的报错，经典]]></description><category></category></item><item><title><![CDATA[Promise实现一个红绿灯]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/124242659</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/124242659</guid><author>Ja_ho</author><pubDate>Mon, 18 Apr 2022 09:58:55 +0800</pubDate><description><![CDATA[Promise在ES6中是一个比较常见的东西，它不仅可以用来处理多个接口相互依赖请求，解决地狱回调的问题，还能在很多场景中进行应用，今天我们就以一个Promise实现红绿的的实例来作为对Promise异步作用的学习，同时配合async awiat的使用进行实现
需求分析
首先我们分析以下红绿灯的实现过程需要哪些东西，第一是三个红绿黄三个颜色的灯，然后每个灯之间会进行切换，比如绿灯5s亮然后黄灯亮2s，最后是红灯3s，一个流程过后则是进行一个循环，重新到绿灯亮。

三种颜色进行亮灯
定时时间
循环切换

首先]]></description><category></category></item><item><title><![CDATA[三分钟简单了解闭包及作用域]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/124163163</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/124163163</guid><author>Ja_ho</author><pubDate>Thu, 14 Apr 2022 08:47:01 +0800</pubDate><description><![CDATA[作为八股文中最常见的一个问题，闭包一开始对小白来说是比较难理解的一个部分，虽然平时可能使用闭包的地方比较少，但是确实面试中热门的问题。本文参考地址
☀️ 什么是闭包

一个函数和对其周围状态（lexical environment，词法环境）的引用捆绑在一起（或者说函数被引用包围），这样的组合就是闭包（closure）。也就是说，闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中，每当创建一个函数，闭包就会在函数创建的同时被创建出来----MDN

简单来说：闭包存在俩个特点]]></description><category></category></item><item><title><![CDATA[前端热门面经]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/120511523</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/120511523</guid><author>Ja_ho</author><pubDate>Fri, 29 Oct 2021 11:04:32 +0800</pubDate><description><![CDATA[一次完整的http请求，通过浏览器输入url，执行的全过程


1.查看本地缓存，如无host文件，DNS解析​ 2.建立TCP连接三次握手​ 3.发送http请求​ 4.服务端处理请求并返回http报文​ 5.浏览器解析HTML代码，请求js css资源​ 6.断开tcp连接(四次挥手)​ 5.渲染页面


简述三次握手 四次挥手


三握 client向server发送请求报文，server端接受连接后返回ACK报文并为此次连接分配资源，client接受到ACK后也分配资源并返回ACK,TCP建立 ..]]></description><category></category></item><item><title><![CDATA[关于Class ‘mysqli‘ not found 的问题]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/113141041</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/113141041</guid><author>Ja_ho</author><pubDate>Mon, 25 Jan 2021 21:09:15 +0800</pubDate><description><![CDATA[不久前写代码的时候突然出现Class 'mysqli' not found的报错，哪里也没有修改 突然出现的报错

先是参考了网上的很多答案 在php.ini中

把;extension=mysqli前的分号去掉

然后;extension=php_mysqli.dll前的分号去掉

都没有效果，最后检查了一下extension_dir的路径

发现没有直接对应到版本的ext目录

extension_dir="D:\phpStudy\php-5.4.45\ext"

最后直接修改对应的环境变量目录，去掉前]]></description><category></category></item><item><title><![CDATA[vue 点击使滚动条滚动到底部的方法(聊天面板发送信息滚动到最底部)]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/108165943</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/108165943</guid><author>Ja_ho</author><pubDate>Sat, 22 Aug 2020 11:41:31 +0800</pubDate><description><![CDATA[&lt;div class="middle"  &gt;
  &lt;div v-for="(item,index) in answerList" :key="index"&gt; 
    &lt;div class="items" v-if="item.status==1" style="color:#FFB128"&gt;
      &lt;span class="user_name" &gt;{{item.user_name}}：&lt;/span&gt;
      &lt;span clas.]]></description><category></category></item><item><title><![CDATA[ElementUI el-date-picker设置不可选择今天之前的时间]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/108141864</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/108141864</guid><author>Ja_ho</author><pubDate>Fri, 21 Aug 2020 10:38:58 +0800</pubDate><description><![CDATA[expireTimeOption: {
 disabledDate(date) {
   return date.getTime() &lt;= Date.now();
 }
}


&lt;el-date-picker  :picker-options="expireTimeOption" v-model="item.curriculum_live_starttime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"  placeholder="选择.]]></description><category></category></item><item><title><![CDATA[vue 点击复制内容到剪切板  动态]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/107766451</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/107766451</guid><author>Ja_ho</author><pubDate>Mon, 03 Aug 2020 16:14:01 +0800</pubDate><description><![CDATA[d

1.安装vue-clipboard2


npm install --save vue-clipboard2

2.引入


import Vue from 'vue'
import VueClipboard from 'vue-clipboard2'
 
Vue.use(VueClipboard)

3.使用

在按钮中定义一个复制函数


&lt;el-button type="primary"   @click="copy('复制的内容')"&gt;复制&lt;/el-button&gt;

函]]></description><category></category></item><item><title><![CDATA[vue 解决vue无法动态监听数组/对象的改变]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/106868259</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/106868259</guid><author>Ja_ho</author><pubDate>Sat, 20 Jun 2020 09:55:25 +0800</pubDate><description><![CDATA[用obj声明一个新的对象。i是数组对应对象的下标，用删除对象再重新增加的方法实现 vue的动态监听
]]></description><category></category></item><item><title><![CDATA[解决flex justify-content: space-between 布局问题]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/106827453</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/106827453</guid><author>Ja_ho</author><pubDate>Thu, 18 Jun 2020 11:57:04 +0800</pubDate><description><![CDATA[使用spacebetween布局时会出现元素分布在俩边的不理想问题



解决方法






]]></description><category></category></item><item><title><![CDATA[实现textarea的背景透明]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/106734713</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/106734713</guid><author>Ja_ho</author><pubDate>Sat, 13 Jun 2020 16:54:00 +0800</pubDate><description><![CDATA[style="background-color:transparent;"
]]></description><category></category></item><item><title><![CDATA[JS 将给定时间转为星期几]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/106662785</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/106662785</guid><author>Ja_ho</author><pubDate>Wed, 10 Jun 2020 11:54:54 +0800</pubDate><description><![CDATA[toweek(){
  let date = '2017-12-30'
  let datelist = ['周日','周一','周二','周三','周四','周五','周六',]
  return datelist[new Date(date).getDay()];
}


]]></description><category></category></item><item><title><![CDATA[解决WaitingTTFB时间过长的问题]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/104553018</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/104553018</guid><author>Ja_ho</author><pubDate>Fri, 28 Feb 2020 11:41:04 +0800</pubDate><description><![CDATA[将连接数据库的localhost改为127.0.0.1的可以减小延时

https://my.oschina.net/u/3901362/blog/1919341
]]></description><category></category></item><item><title><![CDATA[关于小程序动态设置setData方法]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/104517850</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/104517850</guid><author>Ja_ho</author><pubDate>Wed, 26 Feb 2020 15:22:21 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[通过点击某一行的按钮获取当前行的数据]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/104460147</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/104460147</guid><author>Ja_ho</author><pubDate>Sun, 23 Feb 2020 14:56:24 +0800</pubDate><description><![CDATA[在 修改按钮 上设置 onclick="edit(this)"

function edit(this1){

var value = $(this1).parent().parent().find("td");

console.log(value.eq(1).text()); //15900012520 得到第二列的数据

}
...]]></description><category></category></item><item><title><![CDATA[JS 隐藏手机号 隐藏字符串某个索引]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/104439877</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/104439877</guid><author>Ja_ho</author><pubDate>Sat, 22 Feb 2020 10:38:25 +0800</pubDate><description><![CDATA[var phone = "13682767619"

var newphone=phone .replace(/^(\d{7})\d{3}(\d{1})$/,'$1***$2'); // 1368276***9

var name = "王小明"
var newname=name .replace(/^(\D{1})\D{1}/,'$1*'); //王*明


]]></description><category></category></item><item><title><![CDATA[日期input框设置最大最小值无法实现的问题]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/103365204</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/103365204</guid><author>Ja_ho</author><pubDate>Tue, 03 Dec 2019 12:56:27 +0800</pubDate><description><![CDATA[如果要给date input 添加最小值和最大值，格式应该是 2014-09-09 而不是 2014-9-9，月份和日期是个位数的话都要加一个零

如图已经设置了最小值，可是最小值之前的日期还是可以选中





发现是日期的格式不对，min 的值应该是 2019-12-03 而不是2019-12-3,此时日期就会变成不可选中的状态





如果是动态获取今天的日期作为最大值或者最小值,在J...]]></description><category></category></item><item><title><![CDATA[JQ获取datatable选中行某一列的数据]]></title><link>https://blog.youkuaiyun.com/Ja_ho/article/details/103365048</link><guid>https://blog.youkuaiyun.com/Ja_ho/article/details/103365048</guid><author>Ja_ho</author><pubDate>Tue, 03 Dec 2019 12:32:40 +0800</pubDate><description><![CDATA[var tds = $("#project-table1&gt;tbody&gt;tr.selected").find("td:eq(5)").text();

alert('tds');



#project-table1 //table的id

#project-table1&gt;tbody&gt;tr.selected //获取选中的行

find("td:eq(5)")...]]></description><category></category></item></channel></rss>