<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chenxiang0708的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenxiang0708</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenxiang0708]]></copyright><item><title><![CDATA[防抖与节流基本思路]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/105873170</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/105873170</guid><author>chenxiang0708</author><pubDate>Fri, 01 May 2020 01:24:13 +0800</pubDate><description><![CDATA[```javascript
&lt;!doctype html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport"
        content="width=device-width, user-scalable=no, initial-s...]]></description><category></category></item><item><title><![CDATA[握手的简单记录]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/104593428</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/104593428</guid><author>chenxiang0708</author><pubDate>Sun, 01 Mar 2020 15:37:21 +0800</pubDate><description><![CDATA[tcp为什么是三次握手而不是两次握手
主要是为了防止第一次握手时超时,导致二次握手成功后,已经在连接状态
而超时后会再次发出握手请求,这样相当于连接了两次,造成资源浪费
tcp四次握手可以不
每次握手都是对收到上次握手的确认，却不能保证本次握手就能顺利到达。换句话说，
握手发出的那一刻，只能说明上一次消息传递是顺畅的，却不能保证现在网络是畅通的。
所以陷入死循环，无论多少次握手，严格意义上来说都不...]]></description><category></category></item><item><title><![CDATA[记录一个H5的margin兼容性问题]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/104266877</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/104266877</guid><author>chenxiang0708</author><pubDate>Tue, 11 Feb 2020 17:59:22 +0800</pubDate><description><![CDATA[正确写法
width: 100%;padding: .5rem;box-sizing: border-box;

错误写法
width: 9.8rem;margin: .63rem auto .37rem;


]]></description><category></category></item><item><title><![CDATA[使用装饰者模式实现ajax loading效果]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/104120276</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/104120276</guid><author>chenxiang0708</author><pubDate>Thu, 30 Jan 2020 23:27:50 +0800</pubDate><description><![CDATA[var myajax = $.ajax;
$.ajax = function (params) {
    alert('load')
    myajax.call(this, params)
}

$.ajax({
    url: 'http://xuexi.hzcqt.com/api/v1/jpkc/course/category_tree.xhtml',
    type: "GET",...]]></description><category></category></item><item><title><![CDATA[null只有和null和undefined比较才会返回true]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103986707</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103986707</guid><author>chenxiang0708</author><pubDate>Wed, 15 Jan 2020 13:43:11 +0800</pubDate><description><![CDATA[什么是null,undefined
javascript高级程序设计：
使用var声明变量但未对其加以初始化时这个变量的值是undefined。
null值则是表示空对象指针。
所以typeof null返回object
typeof undefined　　//  undefined
typeof null 　　　　// object

null只有和null和undefined比较才会返回tru...]]></description><category></category></item><item><title><![CDATA[js执行顺序一步步解析]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103923685</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103923685</guid><author>chenxiang0708</author><pubDate>Fri, 10 Jan 2020 14:20:47 +0800</pubDate><description><![CDATA[var set1=setTimeout(function () {
        console.log('s1')
        var p0=new Promise(function (resolve, reject) {
            resolve(789);
        }).then(function (res) {
            console....]]></description><category></category></item><item><title><![CDATA[getDerivedStateFromProps的简单用法]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103716949</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103716949</guid><author>chenxiang0708</author><pubDate>Thu, 26 Dec 2019 16:17:01 +0800</pubDate><description><![CDATA[static getDerivedStateFromProps(nextProps, state) {
//在getDerivedStateFromProps里不能使用this
    if (nextProps.navIndex !== state.navIndex) {
        return {
            navIndex: nextProps.navIndex
    ...]]></description><category></category></item><item><title><![CDATA[个人对antd的axios封装]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103702904</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103702904</guid><author>chenxiang0708</author><pubDate>Wed, 25 Dec 2019 17:30:18 +0800</pubDate><description><![CDATA[import axios from 'axios';
import qs from 'qs';
import {ant} from '../store';

const service = axios.create({
    // baseURL:'/',   //api的baseurl
    timeout:5000    //请求超时时间
})


function getTokenByL...]]></description><category></category></item><item><title><![CDATA[safari 浏览器 JSON Parse error: Unterminated string]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103696779</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103696779</guid><author>chenxiang0708</author><pubDate>Wed, 25 Dec 2019 11:52:41 +0800</pubDate><description><![CDATA[本人用的windows系统,在别的浏览器上都没报错,在safari上直接白屏,报
JSON Parse error: Unterminated string
之后参考 https://blog.youkuaiyun.com/qq_26834399/article/details/80493586 后才知道
Safari不允许非ASCII码作为cookie的值存储,也就是不能存储汉字,之后用本地存储localS...]]></description><category></category></item><item><title><![CDATA[通过普通函数调用获取实例]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103687207</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103687207</guid><author>chenxiang0708</author><pubDate>Tue, 24 Dec 2019 17:48:58 +0800</pubDate><description><![CDATA[let a=(function(){//函数自执行后返a=function(){return new Fn()}
    function Fn(){
        this.customAlert=function(){
            alert(1)
        }
    };
    return function(){
        return new Fn()
  ...]]></description><category></category></item><item><title><![CDATA[jquery的ready与原生onload的区别]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103681715</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103681715</guid><author>chenxiang0708</author><pubDate>Tue, 24 Dec 2019 13:34:49 +0800</pubDate><description><![CDATA[window.onload=function(){
    console.log(111)
}

window.onload=function(){
    console.log(222)
}

$(document).ready(function(){
    console.log(333)
})

$(document).ready(function(){
    console.log...]]></description><category></category></item><item><title><![CDATA[this指向注意点]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103565399</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103565399</guid><author>chenxiang0708</author><pubDate>Mon, 16 Dec 2019 16:35:35 +0800</pubDate><description><![CDATA[下面的两段代码完美的说明了this指向,谁调用指向谁
var length=10;
function fn() {
    console.log(this.length)
}

var obj={
    length:11,
    arr:[fn,'222','222','111'],
    q:function () {//这里是this.arr也就是arr这个数组调用,所以返回了数组长...]]></description><category></category></item><item><title><![CDATA[避免构造函数的constructor被替换]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103553947</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103553947</guid><author>chenxiang0708</author><pubDate>Sun, 15 Dec 2019 21:29:18 +0800</pubDate><description><![CDATA[function Aaa(){
}

Aaa.prototype.name = 'hello';
Aaa.prototype.age = '30'

var a1 = new Aaa();
alert( a1.constructor );//Aaa

//这种写法是json对prototype的覆盖
Aaa.prototype = {
	name : 'hello',
	age : 30
};
v...]]></description><category></category></item><item><title><![CDATA[通过getElementsByTagName具体是怎么更改dom属性的]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103553792</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103553792</guid><author>chenxiang0708</author><pubDate>Sun, 15 Dec 2019 21:19:04 +0800</pubDate><description><![CDATA[&lt;body&gt;
    &lt;p&gt;111&lt;/p&gt;
    &lt;p&gt;222&lt;/p&gt;
    &lt;p&gt;333&lt;/p&gt;
&lt;script&gt;
var p=document.getElementsByTagName('p');
console.log(typeof p)//object
// 0: p
// 1: p
// ...]]></description><category></category></item><item><title><![CDATA[antd ConfigProvider全局化配置转换为中文]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103472987</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103472987</guid><author>chenxiang0708</author><pubDate>Tue, 10 Dec 2019 11:51:00 +0800</pubDate><description><![CDATA[import React from 'react';
import ReactDOM from 'react-dom';
import Routes from './router/index';
import zhCN from 'antd/es/locale/zh_CN';
import { ConfigProvider } from 'antd';
import 'moment/locale/...]]></description><category></category></item><item><title><![CDATA[promise的一些特点]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103470866</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103470866</guid><author>chenxiang0708</author><pubDate>Tue, 10 Dec 2019 10:46:08 +0800</pubDate><description><![CDATA[promise基本概念
//resolve进入then,reject进入catch
new Promise(function (resolve, reject) {
    resolve(123);
}).then(function (res) {
    console.log(res)//123
})

new Promise(function (resolve, reject) {
   ...]]></description><category></category></item><item><title><![CDATA[react 微信公众平台实现支付功能]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103426637</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103426637</guid><author>chenxiang0708</author><pubDate>Fri, 06 Dec 2019 17:15:18 +0800</pubDate><description><![CDATA[注意点
1.window.WeixinJSBridge.invoke 在编辑器里面是会报错的,请无视,要在微信上才能测试
2.支付成功后注意this指向
let that=this;
jpkc.h5_single_buy(this.props.match.params.id).then(res =&gt; {
    let result = res.data[0];
    window.Wei...]]></description><category></category></item><item><title><![CDATA[react 快速获取input 值]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103420759</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103420759</guid><author>chenxiang0708</author><pubDate>Fri, 06 Dec 2019 12:49:35 +0800</pubDate><description><![CDATA[getComment=({ target: { value } })=&gt;{
	console.log(value)
    this.props.callback(value);
}

render() {
    return (
        &lt;div className='Activity__container'&gt;
            &lt;input  onCha...]]></description><category></category></item><item><title><![CDATA[express根据token获取用户id]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103168257</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103168257</guid><author>chenxiang0708</author><pubDate>Wed, 20 Nov 2019 18:13:41 +0800</pubDate><description><![CDATA[//登陆时注册token
db.query(`select * from user where name=${username} and password='${password}'`, (result) =&gt; {
    if (result.length == 1) {
    	//jwt.sign({userId:result[0].id} 在注册的时候加入用户id
        ...]]></description><category></category></item><item><title><![CDATA[在ios下报Unhandled promise rejection,window无报错导致白屏]]></title><link>https://blog.youkuaiyun.com/chenxiang0708/article/details/103064564</link><guid>https://blog.youkuaiyun.com/chenxiang0708/article/details/103064564</guid><author>chenxiang0708</author><pubDate>Thu, 14 Nov 2019 11:37:36 +0800</pubDate><description><![CDATA[公司的的后端接口未登录是直接返回一个401错误的,我在window上只写then没有catch是没有问题的,但是在ios上就会报错白屏;
这就需要写catch处理，这样在ios下就会继续运行;
解决问题很简单,但是找问题很麻烦

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