<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ray997的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ray997</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ray997]]></copyright><item><title><![CDATA[算法:二分查找]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/119144186</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/119144186</guid><author>Ray997</author><pubDate>Mon, 02 Aug 2021 11:48:18 +0800</pubDate><description><![CDATA[现在来玩一个猜数游戏,我心里想一个0-99之间的数,来猜的话,最好的方法就是从0-99的中间数49(50也可以,因为双数的中间数是小数)开始猜,如果比49小,那么就猜24(0-48的中间数);如果比49大,就猜74(50-99的中间数).重复这个过程来缩小猜测的范围,直到猜出正确的数字,二分查找的工作方法类似于此

二分查找的条件
1.查找的数据集是有序的
2.没有重复的数据
二分查找的实现与分析
实现过程
1.将left和right设置为数组的开头和结尾,分别是0和arr.length-1
2.每次循环.]]></description><category></category></item><item><title><![CDATA[React Hooks]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/119210145</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/119210145</guid><author>Ray997</author><pubDate>Fri, 30 Jul 2021 10:46:19 +0800</pubDate><description><![CDATA[Hooks 简介
React Hooks 是用函数的形式代替原来继承类的形式,并使用预函数的形式管理state
代码对比
现在我们来写一个点击添加一的组件


原始写法????

import React, { Component } from 'react';

class Example extends Component {
   constructor(props) {
       super(props);
       this.state = { count:0 }
   }
   rend]]></description><category></category></item><item><title><![CDATA[每日两题Day2]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/119037700</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/119037700</guid><author>Ray997</author><pubDate>Fri, 23 Jul 2021 16:34:07 +0800</pubDate><description><![CDATA[今天咱来整哈希表


两数之和



给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。




示例 1：
输入：nums = [2,7,11,15], target = 9 输出：[0,1] 解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。


示例 2：
输入：nu]]></description><category></category></item><item><title><![CDATA[ES6之Map详解]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/119000761</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/119000761</guid><author>Ray997</author><pubDate>Fri, 23 Jul 2021 10:00:40 +0800</pubDate><description><![CDATA[含义和基本用法
JavaScript 的对象（Object），本质上是键值对的集合（Hash 结构），但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。
如下????
obj={ 
  "value":123,
  "id":1
}

为了解决这个问题，ES6 提供了 Map 数据结构。它类似于对象，也是键值对的集合，但是“键”的范围不限于字符串，各种类型的值（包括对象）都可以当作键。也就是说，Object 结构提供了“字符串—值”的对应，Map 结构提供了“值—值”的对应，是一种更完善的 Has]]></description><category></category></item><item><title><![CDATA[每日两题 Day1]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/118971147</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/118971147</guid><author>Ray997</author><pubDate>Wed, 21 Jul 2021 18:00:47 +0800</pubDate><description><![CDATA[217.Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Examples:
Input: nums = [1,2,3,1]
Output: true
Example 2:

Input: nums = [1,2,3,4]
Output: false
Example 3:

Input]]></description><category></category></item><item><title><![CDATA[ES6详解之Set]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/118971720</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/118971720</guid><author>Ray997</author><pubDate>Wed, 21 Jul 2021 17:46:42 +0800</pubDate><description><![CDATA[基本用法
ES6提供了新的数据结构Set,它类似于数组,但是其中的值都是唯一的
且Set本身就是一个构造函数
const set = new Set()

[2, 3, 4, 2, 3, 4].forEach(x =&gt; s.add(x))

for (let i of s) {
  console.log(i);
}
// 2, 3, 4

我是直接从ECMAScript 6搞下来的,但是这s.add我还真看不懂,所以我就不写例子了,直接往下进行 ????
Set 实例的属性及方法
Set 结构的实例]]></description><category></category></item><item><title><![CDATA[node]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/116268543</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/116268543</guid><author>Ray997</author><pubDate>Thu, 29 Apr 2021 15:13:44 +0800</pubDate><description><![CDATA[1. node命令
node命令是用来运行Node.js脚本的命令
node helloworld.js

可以使用tab键自动补全
2. 使用 exports 从 Node.js 文件中公开功能
node.js具有内置的模块系统
也可以导入其他node.js文件公开的功能
想导入某些东西时,可以使用
const library = require('./library')

在 library.js 中,必须先公开功能,才能被导入其他文件中
这是module系统提供的module.exports API ]]></description><category></category></item><item><title><![CDATA[使用 PropTypes 进行类型检查]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/115520339</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/115520339</guid><author>Ray997</author><pubDate>Thu, 08 Apr 2021 14:59:44 +0800</pubDate><description><![CDATA[TypeScript可以用来做类型检查,而React也有自己内置的类型检查
import PropTypes from 'prop-types';

class Greeting extends React.Component {
  render() {
    return (
      &lt;h1&gt;Hello, {this.props.name}&lt;/h1&gt;
    )
  }
}

Greeting.propTypes = {
  name: PropTypes.string
}]]></description><category></category></item><item><title><![CDATA[Table表头中 dataIndex 与 render 的使用]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/115479655</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/115479655</guid><author>Ray997</author><pubDate>Wed, 07 Apr 2021 14:47:38 +0800</pubDate><description><![CDATA[这个是请求的表头数据
这个是每列的数据
需求: 证件类型对应的参数名为certTyp,但是由于对应的是数字,需要后端添加一个带Desc的字段

如果确定需要更改哪几个字段,可以直接在dataIndex里修改
如下图

    let { fieldList = [] } = this.props
    let columns = [
      {
        title: '名单类型代码',
        dataIndex: 'nameCode',
      },
      {
     .]]></description><category></category></item><item><title><![CDATA[this.$router.params和query的区别]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/109230509</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/109230509</guid><author>Ray997</author><pubDate>Thu, 22 Oct 2020 21:05:15 +0800</pubDate><description><![CDATA[首先简单来说明一下router和router和router和route的区别
$router : 是路由操作对象，只写对象
$route : 路由信息对象，只读对象
1·query传递参数
我看了很多人都说query传参要用path来引入，params传参要用name来引入，只是我测试了一下，query使用name来引入也可以传参，使用path也可以。如果有人知道原因可以告诉我一下，谢谢！
//query传参，使用path跳转
this.$router.push({
    path:'second',
 ]]></description><category></category></item><item><title><![CDATA[各种路径分析]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/109206000</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/109206000</guid><author>Ray997</author><pubDate>Wed, 21 Oct 2020 17:30:24 +0800</pubDate><description><![CDATA[Vue-Cli中的路径
@ /：表示 src目录下 ;
. /：表示当前目录下 ;
Uniapp中的路径
/：表示在根目录目录下 ;

]]></description><category></category></item><item><title><![CDATA[深拷贝和浅拷贝]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/108247039</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/108247039</guid><author>Ray997</author><pubDate>Wed, 26 Aug 2020 20:29:04 +0800</pubDate><description><![CDATA[深拷贝和浅拷贝
浅拷贝
浅拷贝只能拷贝最外面一层
更深级别的对象只能拷贝地址,更改拷贝的新对象时也会改变被拷贝的对象
var obj={
    id: 1,
    name: "andy",
    msg: {
        age: 18
        }
}
var o ={};
for(var k in obj){
    o[k]=obj[k]
}
console.log(o);
// o ={
//    id: 1,
//    name: "andy",
//     msg: {
]]></description><category></category></item><item><title><![CDATA[变量和函数的声明提升]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107991130</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107991130</guid><author>Ray997</author><pubDate>Thu, 13 Aug 2020 20:47:30 +0800</pubDate><description><![CDATA[变量和函数的声明提升
变量声明提升
1、变量定义
可以使用var定义变量，变量如果没有赋值，那变量的初始值为undefined。
2、变量作用域
变量作用域指变量起作用的范围。变量分为全局变量和局部变量。全局变量在全局都拥有定义；而局部变量只能在函数内有效。
在函数体内，同名的局部变量或者参数的优先级会高于全局变量。也就是说，如果函数内存在和全局变量同名的局部变量或者参数，那么全局变量将会被局部变量覆盖。
所有不使用var定义的变量都视为全局变量
3、函数作用域和声明提前
JavaScript的函数作用是指]]></description><category></category></item><item><title><![CDATA[JS中offset client scroll的区别]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107780845</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107780845</guid><author>Ray997</author><pubDate>Tue, 04 Aug 2020 10:27:32 +0800</pubDate><description><![CDATA[偏移 offset
offsetHeight: 元素在垂直方向上占用的空间大小，以像素计。包括元素的高度、（可见的）水平滚动条的高度、上边框高度和下边框高度。
offsetWidth: 元素在水平方向上占用的空间大小，以像素计。包括元素的宽度、（可见的）垂直滚动条的宽度、左边框宽度和右边框宽度。
offsetLeft：元素的左外边框至包含元素的左内边框之间的像素距离。
offsetTop：元素的上外边框至包含元素的上内边框之间的像素距离。
offsetLeft和style.left的区别

style.le]]></description><category></category></item><item><title><![CDATA[JS 中this的指向性问题]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107689101</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107689101</guid><author>Ray997</author><pubDate>Thu, 30 Jul 2020 14:36:47 +0800</pubDate><description><![CDATA[Js 中 this 的指向性问题
一般情况下this的最终指向是调用它的对象
1.全局作用域或者普通函数指向全局对象window(定时器中的this指向window)
console.log(this);//指向window

function(){
       console.log(this);
}
fn();//fn的调用者是window,即window.fn()

setTimeout(function(){},1000);//前面也省略了一个window

2. 方法调用中谁调用this指向谁
]]></description><category></category></item><item><title><![CDATA[JavaScrip中基本数据类型和复杂数据类型作为参数传递时的区别(栈内存和堆内存的理解)]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107560026</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107560026</guid><author>Ray997</author><pubDate>Fri, 24 Jul 2020 14:36:39 +0800</pubDate><description><![CDATA[JavaScript中的栈内存和堆内存
基本概念
JavaScript中的变量分为基本类型和引用类型.
基本类型:
Undifined,Null,Boolean,Number和String,这些简单数据段在内存中分别占有固定大小的空间,他们的值保存在栈空间,是按值来访问的.
引用类型:
引用类型时保存在堆内存中的对象,引用类型的值大小不固定,栈内存中存放地址指向堆内存中的对象,是按引用来访问的.
结合代码和图来理解
var a = 0; //栈内存
var a2 = "this is string"; //]]></description><category></category></item><item><title><![CDATA[CSS中浮动的影响以及如何清除]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107431325</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107431325</guid><author>Ray997</author><pubDate>Sat, 18 Jul 2020 16:45:57 +0800</pubDate><description><![CDATA[对于刚接触CSS的我来说，浮动属性基本是用来使块元素同行展示的。
但是float之后却产生了许多问题。
元素浮动后产生的问题
问题一：父元素高度塌陷
现在来写一个例子：
&lt;style&gt;
        .box {
            border: 5px solid #333;
        }

        .box1 {
            width: 100px;
            height: 100px;
            background-col]]></description><category></category></item><item><title><![CDATA[关于BFC]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107430434</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107430434</guid><author>Ray997</author><pubDate>Sat, 18 Jul 2020 16:33:46 +0800</pubDate><description><![CDATA[BFC定义

BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域，只有Block-level box参与， 它规定了内部的Block-level Box如何布局，并且与这个区域外部毫不相干。

创建BFC

浮动元素;
position的除static和relative以外的值;
display:table-cell元素;
display:table-caption元素;
display:inline-block元素;
元素设置overflow且值不]]></description><category></category></item><item><title><![CDATA[伪元素中::after和::before的运用]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107386122</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107386122</guid><author>Ray997</author><pubDate>Thu, 16 Jul 2020 17:19:18 +0800</pubDate><description><![CDATA[特性

都作为标签内部的最后一个/第一个子元素
行内元素
content属性必填(没有直接’’)

使用场景

文字前边的图标

&lt;style&gt;
        span::before {
            display: inline-block;
            content: '';
            background: url(home.png) no-repeat;
            width: 50px;
            height: ]]></description><category></category></item><item><title><![CDATA[CSS选择器]]></title><link>https://blog.youkuaiyun.com/Ray997/article/details/107304302</link><guid>https://blog.youkuaiyun.com/Ray997/article/details/107304302</guid><author>Ray997</author><pubDate>Sun, 12 Jul 2020 20:02:22 +0800</pubDate><description><![CDATA[1.简单选择器

标签选择器 : 可以根据标签的名字来从页面中选取指定的元素。
id 选择器 : 可以根据元素的id属性值选取元素。
class 选择器 : 可以根据元素的class属性值选取元素。

 /* 标签选择器 */
        p{
            color：red；
        }
        /* id选择器 */
		#h3{
			color: orange;
		}
        /* class选择器 */
        .header{
         ]]></description><category></category></item></channel></rss>