当前位置: 首页 > news >正文

前端碎知识点

1 统计字符串中每个字符出现的频率

const str = 'fgasdfadfdasd';const result = str.split('').reduce((a, b) => {if (a[b]) {a[b]++;} else {a[b] = 1;}return a;
}, {});const resultNew = str.split('').reduce((a, b) => {// undefined++,就是NaNa[b]++ || (a[b] = 1);return a;
}, {});const resultNew2 = str.split('').reduce((a, b) =>(a[b]++ || (a[b] = 1), a), {});// { f: 3, g: 1, a: 3, s: 2, d: 4 }

2 类型转化

const res = ++[[]][+[]] + [+[]];
// 使用优先级最低的进行分割,优先级最低的是 + 1. 分解
++[[]][+[]] 
+
[+[]] 2. 分解 ++
++   [[]][+[]] 
+
[+[]] 3. 计算 [[]][+[]] 
[[]],创建了数组,数组只有一个元素[]
+[],首先调用[].valueOf(),得到的结果还是[]+[],接着调用[].toString(),得到的结果是''+[],最终结果为 0;
表达式相当于 [[]][0],即[]4. 计算 ++[]
结果为15. 计算 [+[]]
+[]0[+[]][0]6. 最终结果
最终结果变为 1 + [0]
[0]转化为'0',最终结果是'10'

3 复合属性

backgroud属于复合属性,包括url背景,尺寸等等;
如果在关闭背景closed样式中直接更改backgroud,那么之前的backgroud样式将被全部覆盖;

正确的做法:只更改backgroud-img样式,其他样式正常使用;

正常背景
<div class="head-music"></div>
.head-music {backgroud: url(../asset/music.png)width: 30px;height: 30px;
}关闭背景
<div class="head-music closed"></div>
.head-music.closed {backgroud: url(../asset/closed.png);
}正确关闭背景
<div class="head-music closed"></div>
.head-music.closed {backgroud-image: url(../asset/closed.png);
}

4 算法

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合;答案可以按任意顺序返回。
给出数字到字母的映射如下:
2:abc
3:def
4:ghi
5:jkl
6:mno
7:pqrs
8:tuv
9:wxyz

function _compose(arr1, arr2) {let r = []; // 组合结果if (arr1.length === 0) return arr2;if (arr2.length === 0) return arr1;for (let i = 0; i < arr1.length; i++) {for (let j = 0; j < arr2.length; j++) {r.push(arr1[i] + arr2[j]);}}return r;
};const keyboardMap = (digits) => {let result = [];const map = [, , 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz'];for (let i = 0; i < digits.length; i++) {result = _compose(result, map[digits[i]]);}return result;
}const res = keyboardMap('2345');
console.log('===>res', res);
5 Promise

Promise调用then方法,会产生新的promise

Promise.resolve().then(() => {console.log(0);return Promise.resolve(4);}).then((res) => {console.log('res', res);});Promise.resolve().then(() => {console.log(1);}).then((res) => {console.log('===>res', res);console.log(2);}).then(() => {console.log(3);}).then(() => {console.log(5);}).then(() => {console.log(6);});// 0
// 1
// ===> res undefined
// 2
// 3
// res 4
// 5
// 6
http://www.lryc.cn/news/175872.html

相关文章:

  • 【Leetcode Sheet】Weekly Practice 7
  • leetcode Top100(23)回文链表
  • WebGL绘制圆形的点
  • 《The Rise and Potential of Large Language Model Based Agents: A Survey》全文翻译
  • 在线地图获取城市路网数据
  • 8.2 Jmeter if控制器使用
  • 科技云报道:青云科技打出“AI算力牌”,抢跑“云+AI”新增市场
  • 学习路之PHP--lumen安装配置
  • 【C++】构造函数和析构函数第一部分(构造函数和析构函数的作用)--- 2023.9.25
  • CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
  • 大数据学习-目录
  • 《动手学深度学习 Pytorch版》 7.5 批量规范化
  • Toaster - Android 吐司框架,专治 Toast 各种疑难杂症
  • 2023年9月26日,历史上的今天大事件早读
  • CListCtrl控件为只显示一列,持滚动显示其他,不用SetScrollFlags
  • spring博客实现分页查询
  • 代码阅读分析神器-Scitools Understand
  • 学霸吐血整理‼《2023 年 IC 验证岗面试真题解析》宝藏干货!
  • 稳定性、可靠性、可用性、灵活性、解耦性
  • docker搭建Redis三主三从
  • 亚马逊要求的UL报告的产品标准是什么?如何区分
  • 如何在linux定时备份opengauss数据库(linux核心至少在GLIBC_2.34及以上)
  • SkyWalking快速上手(七)——Skywalking UI 界面简介
  • python+vue驾校驾驶理论考试模拟系统
  • go-redis 框架基本使用
  • java内嵌浏览器CEF-JAVA、jcef、java chrome
  • string类模拟实现——C++
  • 在 SQL Server 中,可以使用加号运算符(+)来拼接字符串。但是,如果需要拼接多个字符串或表中的字段,就需要使用内置的拼接函数了
  • 蓝桥杯每日一题2023.9.25
  • 前端面试的话术集锦第 20 篇博文——高频考点(输入 URL 到页面渲染的整个流程)