当前位置:
首页 > temp > JavaScript教程 >
-
30个Javascript知识点总结,总有你不会的!
近重温了一遍红宝书,发现一些比较好玩的写法,很多东西日常都在用,但是发现还会有不一样的写法,结合一些日常工作中使用的方法,为大家总结一篇日常经常使用可能还不知道的点,希望对你能有所帮助:
一行代码完成结构加赋值
我们日常经常使用结构赋值,一般都是先结构,再赋值,当然我们也可以一行就完成解构加赋值操作,看起来非常简化,当然可读性你懂得!
let people = { name: null, age: null }; let result = { name: '张三', age: 16 }; ({ name: people.name, age: people.age} = result); console.log(people) // {"name":"张三","age":16}###
对基础数据类型进行解构
日常中我们应该用不到这样的场景,但是实际上我们也可以对基础数据类型解构。
const {length : a} = '1234'; console.log(a) // 4
对数组解构快速拿到最后一项值
实际上我们是可以对数组解构赋值拿到length属性的,通过这个特性也可以做更多的事情。
const arr = [1, 2, 3]; const { 0: first, length, [length - 1]: last } = arr; first; // 1 last; // 3 length; // 3
将下标转为中文零一二三...
日常可能有的列表我们需要将对应的012345转为中文的一、二、三、四、五...,在老的项目看到还有通过自己手动定义很多行这样的写法,于是写了一个这样的方法转换。
export function transfromNumber(number){ const INDEX_MAP = ['零','一'.....] if(!number) return if(number === 10) return INDEX_MAP[number] return [...number.toString()].reduce( (pre, cur) => pre + INDEX_MAP[cur] , '' ) }
判断整数的不同方法
/* 1.任何整数都会被1整除,即余数是0。利用这个规则来判断是否是整数。但是对字符串不准确 */ function isInteger(obj) { return obj%1 === 0 } /* 1. 添加一个是数字的判断 */ function isInteger(obj) { return typeof obj === 'number' && obj%1 === 0 } /* 2. 使用Math.round、Math.ceil、Math.floor判断 整数取整后还是等于自己。利用这个特性来判断是否是整数*/ function isInteger(obj) { return Math.floor(obj) === obj } /* 3. 通过parseInt判断 某些场景不准确 */ function isInteger(obj) { return parseInt(obj, 10) === obj } /* 4. 通过位运算符*/ function isInteger(obj) { return (obj | 0) === obj } /* 5.ES6提供了Number.isInteger */
通过css检测系统的主题色从而全局修改样式
@media 的属性 prefers-color-scheme就可以知道当前的系统主题,当然使用前需要查查兼容性
@media (prefers-color-scheme: dark) { //... } @media (prefers-color-scheme: light) { //... }
javascript也可以轻松做到
window.addEventListener('theme-mode', event =>{ if(event.mode == 'dark'){} if(event.mode == 'light'){} }) window.matchMedia('(prefers-color-scheme: dark)') .addEventListener('change', event => { if (event.matches) {} // dark mode })
数组随机打乱顺序
通过 0.5-Math.random() 得到一个随机数,再通过两次sort排序打乱的更彻底,但是这个方法实际上并不够随机,如果是企业级运用,建议使用第二种洗牌算法
shuffle(arr) { return arr.sort(() => 0.5 - Math.random()). sort(() => 0.5 - Math.random()); }, function shuffle(arr) { for (let i = arr.length - 1; i > 0; i--) { const randomIndex = Math.floor(Math.random() * (i + 1)) ;[arr[i], arr[randomIndex]] = [arr[randomIndex], arr[i]] } return arr }
随机获取一个Boolean值
和上个原理相同,通过随机数获取,**Math.random()**的区间是0-0.99,用0.5在中间百分之五十的概率
function randomBool() { return 0.5 - Math.random() }
把数组的第一项放到最后一项
function (arr){ return arr.push(arr.shift()); }
把数组最后一项移到第一项
function(arr){ return arr.unshift(arr.pop()); }
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数