本周学习总结
Legra.js
一个 JS 库,可以生成乐高积木的图案。
Echarts 纵坐标刻度不为小数
保证数据的最大值不能小于4
判断然后设置max的刻度
定位 sticky的新属性
堆叠效果
div {
position: sticky;
top: 0;
}
表格的表头锁定
大型表格滚动的时候,表头始终固定
th {
position: sticky;
top: 0;
}
一种没用过的水平垂直居中
注意,可以不知道自己的宽高,但是必须有宽高
.box{
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
}
双飞翼布局
.aaa{
width: 100%;
height: 500px;
.left,.right{
width: 200px;
height: 500px;
background-color: magenta;
float:left;
}
.center{
width: calc(100% - 400px);
height: 500px;
float:left;
background-color: maroon;
}
flex 布局
order 属性定义项目的排列顺序,数值越小,排列越靠前,默认为0
flex-grow 放大比例,默认为0
当属性都为1,则它们将等分剩余空间
如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
flex-shrink
默认为1
如果为0,其他项目都为1,空间不足时,前者不缩小,负值无效
flex
默认
flex:0 1 auto;
放大,缩小,空间大小
双飞翼布局
.aaa{
width: 100%;
height: 500px;
display: flex;
.left,.right{
flex:0 0 200px;
height: 500px;
background-color: magenta;
float:left;
}
.center{
flex:1;
height: 500px;
float:left;
background-color: maroon;
}
}
alert
alert() 返回的结果是字符串的
比如
alert({})
弹出的是[object Object]
一道有趣的面试题
let a = 0;
let b = 0;
function A(a) {
A = function (b) { b=2
console.log(a + b++); // 和为4
};
console.log(a++); a=2
}
A(1); // 1
A(2); // 4
闭包的特性
深度克隆
function klona(x) {
if (typeof x !== 'object') return x;
var k, tmp, str=Object.prototype.toString.call(x);
if (str === '[object Object]') {
tmp = {};
for (k in x) {
tmp[k] = klona(x[k]);
}
return tmp;
}
if (str === '[object Array]') {
k = x.length;
// 利用递归的进出栈
for (tmp=new Array(k); k--;) {
tmp[k] = klona(x[k]);
}
return tmp;
}
if (str === '[object Set]') return new Set(x);
if (str === '[object Date]') return new Date(+x);
if (str === '[object Map]') return new Map(x);
if (str === '[object RegExp]') {
tmp = new RegExp(x.source, x.flags);
tmp.lastIndex = x.lastIndex;
return tmp;
}
if (str.slice(-6) === 'Array]') {
return new x.constructor(x);
}
return x;
}
createDocumentFragment
创建一个新的空白的文档片段
因为文档片段存在于内存中,并不在DOM树中,所以将子元素插入到文档片段时不会引起页面
<ul> <li>1</li> <li>2</li> <li>3</li> </ul> <script> let a = document.querySelector('ul') let b=document.createDocumentFragment(); while (a.firstChild) { b.appendChild(a.firstChild) } </script>
new 执行顺序
搜索 **运算符的优先级 MDN**
成员访问 19
new 18
所以 有参数的new new Foo.getName()
就是先执行 Foo.getName 在执行new
无参数的new new Foo().getName()
new Foo() 在执行 xxx.getName()
剑指offer
在一个二维数组中(每一个以为数组的长度相同),每一行都按照从左到右递增的顺序,每一列都是从上到下递增的,请输入这个一个二维数组和一个整数,判断数组汇总是否含有该整数
const Finds = (array, target) => {
let found = false;
let rows = array.length;
let cols = array[0].length;
if (rows > 0 && cols > 0) {
let row = 0;
let col = cols - 1;
while (row < rows && col >= 0) {
if (array[row][col] == target) {
found = true;
break;
} else if (array[row][col] > target) {
--col
} else {
++row;
}
}
}
return found
};
console.log(Finds([
[1, 3, 6, 7],
[2, 6, 9, 13],
[3, 9, 10, 16],
[5, 7, 14, 19],
], 15));
Mithril 是一个前端 JS 框架
Array(100).map(x => 1) 结果是多少
创建一个稀疏数组,因为没有元素,也不会有map操作,所以保持不变
那如何生成100个元素唯一的数组
Array.from(Array(100), x => 1) Array.apply(null, Array(100)).map(x => 1) Array(100).fill(1)
vue Echarts的使用
全局导入
import echarts from 'echarts'
Vue.prototype.$echarts=echarts;
如何确保Echarts在页面中正常显示并可随窗口变化
const thisChart = this.$echarts.init(`DOM`); //利用原型调取Echarts的初始化方法
window.addEventListener("resize", function() {
thisChart.resize(); //页面大小变化后Echarts也更改大小
});
5205 独一无二的出现次数
如果每个数的出现次数是独一无二的,就返回true,否则返回false
输入 arr=[1,2,2,1,1,3] 返回: true 解释: 1出现3次,2出现2次,3出现1
const count = arr => { let a = Object.values(arr.reduce((acc, val) => (acc[val] = (acc[val] || 0) + 1, acc), {})); return a.length === new Set(a).size }; console.log(count([1, 1, 1, 2, 2, 22, 3, 3, 3, 3]));
const solution = arr => { let max = Math.max(...arr); let cnt = Array.from({length: max + 1}, v => 0); let ccnt = Array.from({length: max + 1}, v => 0); //把出现的次数统计下 for (let item of arr) ++cnt[item]; //统计出现的次数的次数 let i = -1, j = 0; while (++i < max + 1) { ++ccnt[cnt[i]] } console.log(ccnt); for (let k = 1; k < max + 1; k++) { // 0是初始化的,大于1说明相同的个数 if (ccnt[k] != 0 && ccnt[k] > 1) { return false } } return true }; console.log(solution([1, 1, 3, 3, 3, 3, 4, 4, 4,]));
决定自己的高度的是你的态度,而不是你的才能
记得我们是终身初学者和学习者
总有一天我也能成为大佬

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!