无限列表Demo
无限列表Demo写在前面工组中遇到的,想手搓一个,慢慢优化吧。
React实现,在这里仅分享逻辑。
简单的一个实现方法实现中:如何抽成一个组件呢?实现中:结合图片瀑布流
为什么要问我如何用CSS实现三角形啊
为什么要问我如何用CSS实现三角形啊?
在前端面试中,被问及如何使用CSS实现一个三角形的问题可能有几个不同的目的和价值:
基本CSS知识测试:这个问题可以用来测试面试者对基本的CSS属性和技巧是否熟悉。实现一个三角形通常涉及使用CSS的一些常见属性,例如width、height、border、border-color和transparent等。如果面试者能够正确回答这个问题,表明他们掌握了基本的CSS技能。
问题解决能力:这个问题也可以用来测试面试者的问题解决能力。即使他们之前没有直接实现过三角形,但如果他们能够通过分析和试验找到解决方法,这显示了他们的思维方式和解决问题的能力。
CSS的 kung fu 水平:实现一个三角形可以有多种方法,包括使用border、transform、伪元素(::before或::after)等。通过问这个问题两次,面试官可能想要了解面试者在CSS方面的深度和广度。如果第一次问的方法是使用border,而第二次问的是使用伪元素,那么面试者需要展示他们对多种CSS技巧的了解。
检验经验:在前端开发中,有时需要实现各种各样的形状和效果。问关于实现三 ...
Next.js中间件的使用探索
Next.js中间件的使用探索至于为啥探索,因为牵扯到一些新的东西,广泛搜索查不到对胃口的,只能自行探索记录。
中间件是啥?
Middleware allows you to run code before a request is completed. Then, based on the incoming request, you can modify the response by rewriting, redirecting, modifying the request or response headers, or responding directly.
中间件允许您在请求完成之前运行代码。然后,根据传入的请求,您可以通过重写、重定向、修改请求或响应标头或直接响应来修改响应。
创建文件创建middleware.js文件
1234567891011121314import { NextResponse } from "next/server";// 尝试写一下中间件,中间件主要作用是:在请求完成之前修改对请求的响 ...
啃犀牛书——类
三种实例化对象的方式两种形式定义类工厂函数123456789101112131415161718192021222324function range(from, to) { let r = Object.create(range.methods) // 挂上方法 r.from = from // 公有属性 r.to = to return r // 返回创建好的对象}range.methods = { includes(x) { // 一个判断范围的方法 return x >= this.from && x <= this.to }, *[Symbol.iterator]() { // 一个设置可迭代的生成器方法 for (let i = Math.ceil(this.from); i <= this.to; i ++) { yield i } }, ...
蒜法-二叉树DFS
979. 在二叉树中分配硬币邪门二叉树+DFS,根本设计不出来,图解那么巧妙,我直接大口啃菜。
题目要求大致:
给你一个二叉树,每个节点有随机数量个硬币,要求通过父子传递一次一硬币的方式使二叉树内节点上的硬币数量全部分成1。
先放代码:
123456789101112131415161718192021222324252627282930313233343536/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } *//** * @param {TreeNode} root * @return {number} */v ...
蒜法-数字各种和
先开个头,今天和前天的题涉及到了数的加和处理。
打算再整一个数字加和系列算法题汇总,前提是我的股票算法之旅能够善终(第四个卡壳了)
蒜法-买卖股票
买卖股票最近做了一个动规算法题(1911),发现有一个买卖股票系列很值得循序渐进地上手动规,于是做了做 汇总了一下。
LeeCode教你学炒股:
1.买卖股票的最佳时机
2.买卖股票的最佳时机 II
3.买卖股票的最佳时机 III
4.买卖股票的最佳时机 IV
5.买卖股票的最佳时机含手续费
6.最佳买卖股票时机含冷冻期
最后做一下1911,会发现简单好多
121. 买卖股票的最佳时机只有一次购入和一次出售,找到一个最大利润方案。
12345678910111213/** * @param {number[]} prices * @return {number} */var maxProfit = function(prices) { let now = -prices[0], // 假设如果第一天买入,手里还有这么多钱(负成本) max = 0 // 假设第一天买了接着卖出,利润为0(利润初始值) for (let i = 0, len = prices.length; i < len; i+ ...
啃犀牛书——浏览器中的JS
犀牛书这里太杂了,我有点跟不上,先去看红宝书理顺一下了。
(面了很多次试,和面试官们的交谈中发现这一块蛮重要的,特来回看(实习时间这个事情真的难以在招聘者和应聘者间达成完美一致,真难受))
BOMbrowser object model 浏览器对象模型,提供了与网页无关的浏览器功能对象,这些是可以与浏览器进行交互的对象。
BOM对象有很多↓
windowwindow对象是BOM的核心,表示浏览器的实例。window对象被复用为ES中的Global对象,又是浏览器窗口中的JS接口。(强烈建议自己F12输出看一下)
Global作用域通过var声明的所有全局变量和函数都会变成window对象的属性和方法。
123456var saySth = () => { alert('Sth')}window.saySth()var newVal = window.oldVal // undefined 虽然没有但是undefined
窗口关系对象top始终指向最上层窗口,parent指向当前窗口的父窗口,self始终指向window(两者是同一个 ...
啃犀牛书——JS标准库
前言基础不牢地动山摇吃不好饭睡不好觉。
↓一些之前没提到的有趣数据结构和API。
Set集合&Map映射众所周知,Object类型是一种万能数据结构,可以把字符串映射为任意值。但是这明显限制了映射和集合的发挥(字符串的约束+不必要的toString属性)。ES6新增了两类数据结构↓
Set特点
没有索引
不重复
可迭代(for/of√;forEach(val)√)
非常之快
创建12let set = new Set()let set1 = new Set([1, 'w']) // 构造函数参数必须是可迭代对象(包括其他集合)
属性1let len = set .size // 获取集合长度,确实有点像数组的length属性
方法1234let s = new Set([1, 2, 3])s.add(1) // 增 => [1, 2, 3]s.delete(1) // 删 => falses.has(1) // 查 => false
需要注意的是:Set成员根据严格相等===判断重复。因此,如果值是对象类型的话,也会根据全等来判重, ...
14Days-JS-Pra
Day1计数器
闭包
创建 Hello World 函数
闭包
Day2计数器 II
闭包
转换数组中的每个元素
数组转换
Day3过滤数组中的元素
数组转换
数组归约运算
数组转换
Day4复合函数
输入输出
只允许一次函数调用
输入输出
Day5-可以多回顾一下 记忆函数
输入输出
柯里化
输入输出
↑这个需要会员,我没做,不过看了一些柯里化函数的使用
123456789101112131415161718192021// 一个接收三个参数的普通函数function add(a, b, c) { return a + b + c}// 柯里化function curry(func) { return function curried(...args) { if (func.length <= args.length) { // 当参数个数满足要求时,即可带着参数返回函数执行 return func(...args) ...