- 博客(54)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 数组乱序 打乱数组 js
数组乱序let arr = [1,2,3,4,5,6,7,8,9,10];function randomSort(arr) { let len = arr.length,res = []; while(len--) { let index = Math.floor(Math.random()*len); res.push(arr[index]); arr.splice(index,1); } return res;}console.log(randomSort
2022-03-09 16:12:47
372
原创 js deepClone实现考虑到对象, 数组, Date, 正则和函数
js deepClone实现考虑到对象, 数组, Date, 正则和函数function deepClone(target) { const map = new WeakMap() function isObject(target) { return (typeof target === 'object' && target ) || typeof target === 'function' } function clone(da
2021-11-17 19:27:23
384
原创 VUE3.0 创建项目 简单易上手 小白 vue-cli
前提:已安装好nodejs,npmtips:安装nodejs后npm也就安装好了可以通过命令检测版本来看是否已成功安装1、打开cmd命令窗口,输入以下命令安装vuenpm install -g @vue/cli2、也许命令会显示手动安装某个模块,此时使用npm install '模块名’就可以搞定3、新建一个文件夹,名为vue34、使用vscode或其他工具打开此文件夹5、打开终端,输入vue create hello-vue3 创建名为hello-vue3的项目6、如不需要路由,
2021-07-24 12:59:06
289
原创 vue3.0报错 You may use special comments to disable some warnings. Use // eslint-disable-next-line
vue3.0 报错You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.找到package.json找到此处的extneds删除prettier重新使用npm run serve运行项目...
2021-07-24 12:51:19
1407
原创 创建对象属性,方法
创建对象属性,方法let person = { name : 'ning', age : 19, say : function() { return "hello world!"; }};let person = {};person.name = 'ning';person.age = 19;person.say = function() { return "hello world!";}let person = { nam
2021-05-13 23:28:40
170
原创 js 0-1背包
0-1背包问题给定背包容量W,一系列物品{weight,value},每个物品只能取一件,求最大价值采用动态规划解决(动态规划从前往后,后面的值取决于前面的直接用就可以,像填格子)找到关键位置第i个物品,装还是不装装如果装,则最大价值取决于前i-1个物品在背包重量为W-weight(i)的情况下的值和不装的值的最大值f[i][j] = Math.max(f[i-1][j],values[i]+f[i-1][j-weights[i]])不装如果不装,则最大价值取决于前i-1个物品在
2021-04-24 00:30:42
392
1
原创 css居中
1、块元素居中1、flex布局主轴,交叉轴设为center2、子绝父相2、1 绝对定位移到一半后再移回来知道子元素宽高 position: absolute; left: 50%; top: 50%; margin: -50px 0 0 -50px; 不知道子元素宽高 position: absolute; top
2021-04-21 20:27:14
105
原创 圣杯布局和双飞翼布局 清除浮动
1、先序知识 – 清除浮动clear:bothfloat:脱离文档流CSS中说脱离文档流是指盒子从普通的布局排版中拿出来,其他盒子进行放置时,会当其不存在而进行布局。而脱离文档流分为两种:完全脱离文档流:例如position:absolute,使用绝对定位的盒子,其他盒子无论是其本身还是里面的任何元素都会无视这个绝对定位的盒子进行布局。部分脱离文档流:即float盒子,使用float属性后,其他block盒子会无视float盒子进行布局,但是其他盒子内的inline元素和inline-block
2021-04-16 20:00:12
150
原创 实现数字->汉字的转化 js
三个case:12345 -> 一万二千三百四十五10002 -> 一万零二10080 -> 一万零八十思路:1、设立两个数组,一个放数字读音,一个放单位读音2、将数组依次放入数组中3、依据读音依次给字符串赋值4、将字符串中多的零去掉;// 12345 -> 一万二千三百四十五// 10002 -> 一万零二// 10080 -> 一万零八十function revert(num) { let r_num = ['零','一','二','三
2021-04-15 21:07:08
247
原创 js 事件循环机制
可直接跳到总结JavaScript定义:单线程(代码执行时只有一个主线程来处理所有任务),非阻塞(当代码需要进行一项异步任务时不会等待,主线程会挂起这个任务,在异步任务返回结果时再执行相应的回调)的脚本语言用途:与浏览器交互事件循环用途:js引擎(网页浏览器中专门处理js脚本的虚拟机)实现非阻塞浏览器环境下js引擎的事件循环机制js代码执行时将不同变量存于内存中的不同位置堆:放对象栈:基础类型变量,对象指针执行栈:存放执行环境并依次调用执行的地方当调用一个方法时,js会生成一个与这个方
2021-04-14 16:46:58
204
原创 Iterator Generator基础概念
IteratorIterator是一个接口,为不同数据结构提供统一接口任何数据结构只要部署 Iterator 接口,就可以完成遍历操作可以使用for…of一种数据结构只要部署了 Iterator 接口,我们就称这种数据结构是“可遍历的”(iterable)一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)所以Symbol.iterator属性实现Iterator 接口,有Symbol.iterator属性,就是可遍历的。如果原生具有Symbol
2021-04-12 16:13:02
119
原创 Set WeakSet Map WeakMap
都是接受一个数组作为参数,将数组成员加入自身set没有重复值,去重很好用mapkey保存的是地址(对象要谨慎)WeakSet WeakMap1、弱引用,但WeakMap是对key的弱引用一旦没有东西引用key,就自动删除了,不会造成内存泄漏(明明这块内存没用了,但是垃圾处理机制发现你没有手动取消引用,就还有东西引用它,一直占着内存,页面会卡顿)2、WeakSet-只能Object作为成员,WeakMap-只能Object为key3、不可遍历(不知道啥时候就被垃圾回收了,就没了)4、比如:私
2021-04-10 17:23:04
134
原创 js this原理及用法 简单 var let const简单介绍
this作用:隐式传递对象引用,复用更容易this指向:this在运行时被绑定,但总会指向,调用函数的那个对象this关键:弄清楚是谁在调用函数,是window全局对象还是某个对象例子:var length = 10;function fn () { console.log(this.length);} var obj = { length: 5, method: function (fn) { fn();//window调用,所以为10
2021-04-10 14:12:51
224
原创 js arguments call apply bind array.from array.of 简单实用
一个进程中的回退—查漏补缺这段代码看的不太明确?没事,最后回头再看function doSomething(){ console.log(arguments); // var arg = [].slice.call(arguments); // console.log(arg); //与下面同义,将类数组对象转为数组 var args = Array.prototype.slice.call(arguments); console.log(args);
2021-04-09 21:30:14
119
原创 js Promise 简单
根据阮一峰ES6编写Promise是一个对象,里面包含着一个异步操作(会在本轮同步操作都结束后才执行)。有三种状态:pending(进行中),fulfilled(已成功),rejected(已失败),只有异步操作的结果可以决定状态一旦创建,立即执行,无法中途取消如果事件不断反复发生,Stream模式更好特点:1、对象状态不受外界影响,也不影响外部:只有异步操作的结果可以决定状态,若内部有错误但没被捕获,错误会被吞掉,不会反映到外部2、一旦状态改变,就不会再变。对象状态改变只有两种可能:从pen
2021-04-09 16:46:20
180
原创 地址栏输入地址到浏览器显示页面 简单易懂 高能无废话
地址栏输入地址到浏览器显示页面浏览器进程通过IPC向渲染进程提交访问,渲染进程继续加载资源并渲染页面,结束后会给浏览器进程发送消息表明加载完毕------访问过程---------在浏览器地址栏输入时,浏览器进程的UI线程会判断要搜索内容还是访问站点按下回车开始访问时,浏览器进程的UI线程将请求地址传给浏览器进程的网路线程(访问站点资源),浏览器页签出现加载图标浏览器进程的网络线程收到来自服务器的数据时会了解数据格式, (若为HTML,将数据传给渲染进程做渲染;若为压缩文件,传给下载管理器下载)
2021-04-05 15:59:55
469
1
原创 TCP/IP 三次挥手,四次握手 一看就懂
客户端与服务器的消息互通三次握手客户端发送消息给服务器服务器:服务器成功获取了客户端发来的消息(客户端->服务器)客户端:客户端知道了服务器成功获取了客户端发的消息(服务器->客户端)服务器:服务器知道了客户端成功获取了服务器发的消息(客户端->服务器)四次挥手...
2021-04-02 14:27:37
81
原创 React vue区别
vueReact数据双向绑定单向数据流语法简单,适用于小型项目适用于web端,原生APP开发,侧重于大型项目应用渲染速度更快,体积更小更大的生态圈,更多工具支持拓展的HTML语法渲染jsx渲染react的优点:render函数支持闭包,import的组件在render中可以直接调用...
2021-03-31 23:13:32
90
原创 html重点回顾
**通过为图片搭配说明文字的方式来解说图片**<figure> <img src="https://raw.githubusercontent.com/mdn/learning-area/master/html/multimedia-and-embedding/images-in-html/dinosaur_small.jpg" alt="一只恐龙头部和躯干的骨架,它有一个巨大的头,长着锋利的牙齿。" width="400" height="341"
2021-03-31 20:17:34
80
原创 react入门 2021最新版
可在官网教程开始前食用,简单易懂,干货1.安装1.node.js安装2.对应文件夹中输入命令(cmd)npx create-react-app my-appcd my-appnpm start2.什么是reactReact is a declarative, efficient, and flexible JavaScript library for building user interfaces. It lets you compose complex UIs from small an
2021-03-22 15:06:28
635
原创 javascript 函数 事件
function draw() { //定义函数}myButton.onclick = function() { alert('hello'); //匿名函数通常来运行负载的代码以响应事件触发}draw();//调用函数每个可用的事件都会有一个事件处理器,也就是事件触发时会运行的代码块。当我们定义了一个用来回应事件被激发的代码块的时候,我们说我们注册了一个事件处理器。注意事件处理器有时候被叫做事件监听器。监听器留意事件是否发生,然后处理器就是对事件发生做出的回应。有时候在
2021-03-19 20:24:49
102
原创 剑指 Offer 05. 替换空格 javascript js
剑指 Offer 05. 替换空格三种方法请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”return s.replace(/\s/g, '%20');return s.replace(/[]/g, '%20');let res ='';for (let c of s) { res += c.charCodeAt() === 32 ? '%20' :
2021-03-04 16:20:14
365
1
原创 剑指 Offer 03. 数组中重复的数字 javascript
剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3var findRepeatNumber = function(nums) { var s = new Set(); for (const i in
2021-03-04 15:59:16
190
1
原创 传统css布局
css布局重点浮动float定位position盒模型flexgrid/layout1.正常布局流块元素(display:block):下一个元素会另起一行内联元素(display:inline):与上一个元素在同一行,不能设置宽高内联块(display: inline-block)ps:外边距叠加如果两个相邻的元素都设置了margin 并且两个margin有重叠,那么更大的设置会被保留,小的则会消失2.弹性盒子(display:flex)...
2021-03-03 16:40:10
219
原创 css元素选择器
1.类型选择器html {color:black;}p {color:gray;}2.h2, p {color:gray;}两个都应用右边3.通配符选择器* {color:red;}整体都应用4.#intro {font-weight:bold;} id选择器:唯一.important {color:red;} 类选择器(可以重名)5.后代选择器p.important {color:red;}h1 em {color:red;}<p class="imp
2021-01-26 19:06:49
365
原创 力扣做题小结之字符串
力扣做题小结之字符串1.string的方法:charAt(i),将字符串看成数组,找到第i个字符;length(),求长度substring(a,b):返回字符串第a到b的子串2.StringBuilder使用原因:改动字符串时不像string要创建新对象,节省空间,比StringBuffer速度快;但线程不安全(一般使用此方法)toString():字符序列转字符串append(String s):指定的字符串追加到此字符序列reverse():将此字符序列用其反转形式取代...
2020-12-18 10:41:30
186
2
原创 剑指 Offer 50. 第一个只出现一次的字符力扣
剑指 Offer 50. 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "思路:将字符串中字符放入哈希表中,拿出第一个只出现一次的字符。没有返回空。知识点:1.Map<String,Object>map=newHashMap<String,Object>Map是一个接口,它的每个元素包含一个key对象和一个value对象。且在这
2020-12-15 16:05:52
199
原创 力扣 剑指 Offer 53 - II. 0~n-1中缺失的数字
剑指 Offer 53 - II. 0~n-1中缺失的数字一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8012013思路:寻找元素与下标不同的,中间即缺少两种方法:1、顺序遍历 2、二分查找顺序class Solution {
2020-12-14 15:12:49
129
原创 力扣 剑指offer 斐波那契 青蛙跳台阶问题
1.动态规划dp剑指 Offer 10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1
2020-12-07 20:42:42
124
原创 leetcoe 力扣 20 有效的括号 java
有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: trueJava中stat.
2020-12-02 11:06:02
88
原创 力扣 剑指offer48 最长不含重复的子串 java medium
剑指 Offer 48. 最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子
2020-11-29 15:49:09
143
原创 力扣 243.最短单词距离
力扣需要vip,没有vip的朋友可以去牛客网做,一样的题题目描述给定一个string数组article(有单词构成)和数组中元素的个数n,同时给定数组中的两个单词x和y。请返回这两个单词的最短距离(比如两个单词分别在第1和第3个位置,则最短距离为2)。保证两个单词不相同且均在数组中出现,同时保证数组中单词数小于等于1000。我的题解import java.util.*;public class Distance { public int getDistance(String[] arti
2020-11-28 15:47:49
318
原创 169. 多数元素 力扣
多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2神仙解法class Solution { public int majorityElement(int[] nums) { int ans=nums[0]; int len=1;.
2020-11-28 15:00:29
132
原创 力扣 219. 存在重复元素 II and hashmap,hashset区别
存在重复元素 II给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [1,2,3,1,2,3], k = 2输出: false科普:哈希表就是散列表,数据结构中的都是基本结构.
2020-11-28 13:36:01
125
原创 力扣 leetcode 169. 多数元素
力扣 leetcode 169. 多数元素题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)1.我的解法先上代码class Solution { public int majorityElement(int[] nums) {
2020-11-24 15:35:30
223
原创 css 布局知识
css布局1、正常布局流(基础,建议学习,若已了解,可跳到下一标题)块状元素:占一行,宽度与父元素一样,高度与内容高度一样(内联元素转块元素方法)设置display: block; (或者,display: inline-block; inline-block 混合了inline 和 block的特性。)常见块状元素:div,form,h1```h6,hr,caption,p,列表,表格标签。行内元素:宽度与内容宽度一样,相邻的行内元素会排在一行,排满才进入下一行或溢出。不
2020-11-01 21:01:14
465
空空如也
weakmap 原始值包装成对象在用作键报错?
2021-03-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人