网页开发用到的库
分享一些网站开发可能会用到的一些库
anime.js JS动画库anime.js官网_免费、灵活的轻型JavaScript动画库 | animejs
Glide.js 轮播组件库Glide.js | A dependency-free JavaScript ES6 slider and carousel (glidejs.com)
Isotope 布局库Isotope · Filter & sort magical layouts (metafizzy.co)
分类、过滤、排序,布局
ScrollReveal 滚动动画显示ScrollReveal (scrollrevealjs.org)
滚动到某一个区域,以动画显示
一些实用的js方法
实用方法运算符
无先后顺序
1. a ?? b12a || b // 当 a 为 假(包含'',0等),返回 ba ?? b // 仅当 a 等于 null 或 undefined 返回 b
2. 逻辑且赋值 x &&= y仅当 x 为真时赋值
123456789let a = 1;let b = 0;a &&= 2;console.log(a);// expected output: 2b &&= 2;console.log(b);
3. 逻辑空赋值 x ??= y仅当 x 为 null 或 undefined 赋值
123456789const a = { duration: 50 };a.duration ??= 10;console.log(a.duration);// expected output: 50a.speed ??= 25;console.log(a.speed);// expected output: 25
4. 逻辑假赋值 x ||= y仅当x是假 ...
LeetCode 15. 三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例 1:
12输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]
示例 2:
12输入:nums = []输出:[]
示例 3:
12输入:nums = [0]输出:[]
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum
12345678910/*1. 给数组排序2. 遍历数组,从 0 -> length-23. 如果当前的数字等于前一个数字,则跳过这个数4. 如果数字不同,则设置 start = i + 1,end = length - 1,查看i,start和end三个数比0大还是小,如果比0小,start++,如果比0大,end--如果等于0,把这三个数加到结果中5. 返回结果*/
1234567891011121314151617181920212223 ...
LeetCode 49. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次。
示例 1:
12输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/group-anagrams
12345678/*1. 检查是否为空2. 定义一个初始长度为26的数组,初始值为03. 遍历所有字符串,将字母的出现频率放到数组的对应位置,(利用asii码)4. 遍历数组,按照相同字母的出现频率进行分类(使用 hashMap)5. ...
LeetCode 3. 无重复的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
1234567891011/*Sliding Window 滑动窗口1. 创建一个set2. 创建两个指针, 一个指向字符串的开头 -j 另一个随着循环遍历字符串 -i3. 如果set中没有s[i],说明目前为止还没有重复的字符,同时将s[i]添加到set中,更新最大不重复字符串的数量4. 如果有,则从set中删除s[j],同时递增j,再次检查是否有s[i] 直到没有为止5. 重复步骤3,4 直至字符串遍历结束*/
12345678910111213141516171819202122232425var lengthOfLongestSubstring = function(s) { const set = new Set() let i = 0; let j = 0; let maxLength = 0; let length = s.length if(!length) return 0 for(i; i < length; i++) ...
LeetCode 5. 最长的回文子字符串
给你一个字符串 s,找到 s 中最长的回文子串。
12345678910/*1. 如果字符串长度小于2,直接返回原字符串2. 定义两个变量,一个start存储当前找到的最大回文字符串的起始位置 另一个maxLength,记录字符串的长度(终止为止就是start+maxLength)3. 创建一个helper function 判断左边和右边是否越界,同时左边字符是否符合等于右边字符 上述条件都满足时,再判断是否需要更新 start 和 maxLength,然后left-- right++ 继续判断,直到不满足三个条件之一4. 遍历字符串,每个位置调用 helper function 两遍,分别检查1-i,i+1 和 i,i+1*/
12345678910111213141516171819202122232425var longestPalindrome = function(s) { if(s.length < 2) return s let start = 0 let maxLength = 1 let length = ...
LeetCode 1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
1234/*解题思路:遍历整个数组,每遍历到一个数,就将他与目标值的差值以及索引缓存起来,直到后续数中存在有差值集合中的任意一项,返回结果*/
123456789101112131415161718192021222324var twoSum = function (nums,target){ const obj = {} const length = nums.length for(let i = 0; i < length;i++){ const num = nums[i] if(num in obj){ return [obj[num],i] }else{ ...
LeetCode 2. 两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
123/**/
123456789101112131415161718192021222324252627282930313233var addTwoNumbers = function(l1, l2) { // 判断当前是否需要进位 let carry = 0 // dummy节点,更方便的取到链表头部 let dummy = new ListNode() // 当前访问的节点 let current = dummy // 只要有一个链表结束,停止加运算 while(l1 !== null || l2 !== null){ let sum = 0 if(l1 !== null){ sum += l1.val ...
关于数据处理的一些总结
1. for循环数组一般在用 for循环 遍历数组的时候会读取数组的 length 属性用于极限值的处理
1234const arr = [1,2,3,4,5]for(let i = 0; i < arr.length; i++){ console.log(arr[i])}
但事实上,每次循环中,都会重新读取数组的 length 属性,在数据大且复杂的情况下,会有一些性能损耗的
可以采取以下的写法
123for(let i = arr.length - 1; i >= 0; i--){ console.log(arr[i])}
或
1234const length = arr.lengthfor(let i = 0; i < length; i++){ console.log(i)}
2. 数组的map方法原生数组提供了两种遍历的方法,分别是 forEach 和 map
其中 map 可以访问数组的每一项,并返回一个值来作为方法返回数组的这一项
12345// 例如const us ...
vue,react 使用CDN引入 TodoList
并不是最好的写法,只是前段时间学习,尝试写的demo,如有误请指正
Vue3123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=ed ...