< JavaScript小技巧:如何优雅的用【一行代码 】实现Js中的常用功能 >

简介: 在开发中,采用简洁的语法和结构,遵循一致的命名规范,具有良好的代码组织和注释,能很好的提高代码的质量。可读性:易于阅读和理解。清晰的命名、简洁的语法和良好的代码结构可以使代码的意图更加明确,降低理解代码的难度,提高代码的可读性。可维护性:易于维护。当代码逻辑清晰、结构简洁时,开发者可以更快速地定位和修复bug,进行功能扩展或修改。同时,可读性高的代码也有助于后续的代码重构和优化。可扩展性:更具有扩展性和灵活性。清晰的代码结构和简洁的代码风格使得添加新功能、修改现有功能或扩展代码更加容易。

image.png


今天这篇文章,给大伙分享一些 通过【 一行代码 】实现 Javascript 中 比较常用的一些方法和功能!

💬 前言

在开发中,采用简洁的语法和结构,遵循一致的命名规范,具有良好的代码组织和注释,能很好的提高代码的质量。

主要有以下几个优点:

  • 可读性:易于阅读和理解。清晰的命名、简洁的语法和良好的代码结构可以使代码的意图更加明确,降低理解代码的难度,提高代码的可读性。
  • 可维护性:易于维护。当代码逻辑清晰、结构简洁时,开发者可以更快速地定位和修复bug,进行功能扩展或修改。同时,可读性高的代码也有助于后续的代码重构和优化。
  • 可扩展性:更具有扩展性和灵活性。清晰的代码结构和简洁的代码风格使得添加新功能、修改现有功能或扩展代码更加容易。此外,简洁的代码往往更少依赖于特定的实现细节,提供了更多的灵活性和可替换性。
  • 错误减少和调试时间:更容易写出正确的逻辑,减少了出错的概率。同时,当代码出现问题时,优雅简洁的代码也更容易进行调试和定位错误。
  • 性能优化:简洁的代码通常更高效,减少了不必要的计算和资源消耗。精简的代码结构和算法可以提高代码的执行效率和性能

👉 数组相关

① 随机打乱数组顺序

const randomSort = list => list.sort(() => Math.random() - 0.5)
randomSort([0,1,2,3,4,5,6,7,8,9]) // 随机排列结果

② 借助 new Set()对数组去重 / 对象数组根据唯一值去重

这个知识点小温不止说过一次了,具体案例看代码!

// 普通数组去重
const removeDuplicates = list => [...new Set(list)]
removeDuplicates([0, 0, 2, 4, 5]) // [0,2,4,5]

// 对象数组唯一值去重
const duplicateById = list => [...list.reduce((prev, cur) => prev.set(cur.id, cur), new Map()).values()]
duplicateById([{
   
   id: 1, name: 'jack'}, {
   
   id: 2, name: 'rose'}, {
   
   id: 1, name: 'jack'}])
// [{id: 1, name: 'jack'}, {id: 2, name: 'rose'}]

③ 查找数组中 【 最值 】 出现的索引

// 最大值
const indexOfMax = (arr) => arr.reduce((pre, cur, i, a) => (cur > a[pre] ? i : pre), 0);
indexOfMax([1, 3, 9, 7, 5]); // 2

// 最小值
const indexOfMin = (arr) => arr.reduce((prev, curr, i, a) => (curr < a[prev] ? i : prev), 0)
indexOfMin([2, 5, 3, 4, 1, 0, 9]) // 5

👉 Web浏览器相关

① 重新加载当前页面,相当于 Ctrl + R

location.reload();

② 滚动到页面顶部

window.scrollTo(0, 0);

③ 指定元素滚动到可视窗口 起点 / 终点

// 起点
const scrollToTop = (element) =>
  element.scrollIntoView({
   
    behavior: "smooth", block: "start" })
scrollToTop(document.body)

// 终点
const scrollToBottom = (element) =>
  element.scrollIntoView({
   
    behavior: "smooth", block: "end" })
scrollToBottom(document.body)

借助 scrollIntoView 函数进行元素滚动, scrollIntoViewOptions 配置项如下:

注: scrollIntoViewOptions [可选],目前这个参数浏览器对它的支持并不好,可以查看下文图片

在这里插入图片描述

scrollIntoViewOptions 意义 可选
behavior 定义过渡动画 "instant"或"smooth"。默认为"auto"
block 定义垂直方向的对齐 "start","center","end"或"nearest"。默认为"center"
block 定义水平方向的对齐 "start","center","end"或"nearest"。默认为"center"

选项具体意义:

  • auto,表示没有平滑的滚动动画效果。
  • smooth,表示有平滑的滚动动画效果。

  • start,表示顶端 / 左端 对齐。
  • center,表示中间对齐。
  • end,表示底端 / 右端 对齐。
  • nearest
  • block > 如果元素完全在视口内,则垂直方向不发生滚动。如果元素未能完全在视口内,则根据最短滚动距离原则,垂直方向滚动父级容器,使元素完全在视口内。
  • inline > 如果元素完全在视口内,则水平方向不发生滚动。
    如果元素未能完全在视口内,则根据最短滚动距离原则,水平方向滚动父级容器,使元素完全在视口内。

④ 从给定文本中剥离 HTML标签 / 剔除HTML字符串中的标签

const stripHtml = (html) => new DOMParser().parseFromString(html, 'text/html').body.textContent || '';
stripHtml('<div>test</div>') // 'test'

因为HTML标签都是成双成对,且可预测规律。也可以使用正则来剔除HTML字符串中的HTML标签。具体如下:

// 去除 HTML标签
const deleteHTML = info => info.replace(/<\/?.+?\/?>/g, "")
deleteHTML('<div>test</div>') // 'test'

⑤ 将指定文本内容复制到粘贴板上

const copy = (text) => navigator.clipboard?.writeText && navigator.clipboard.writeText(text)
copy('你需要复制的文本')

⑥ 获取cookie

将cookie转换成需要的对象类型

const getCookie = () => document.cookie
    .split(';')
    .map((item) => item.split('='))
    .reduce((acc, [k, v]) => (acc[k.trim().replace('"', '')] = v) && acc, {
   
   })
getCookie()

👉 数据操作

① 使用解构赋值简化变量声明

// 传统变量声明
const firstName = person.firstName;
const lastName = person.lastName;
// 解构赋值简化
const {
   
    firstName, lastName } = person;

② 使用展开运算符进行数组和对象操作

// 合并数组
const combined = [...array1, ...array2];
// 复制对象
const clone = {
   
    ...original };

③ 使用对象解构和默认参数简化函数参数

// 传统参数设置默认值
function greet(name) {
   
   
 const finalName = name || 'Guest';
 console.log(`Hello, ${
     
     finalName}!`);
 }

 // 对象解构和默认参数简化
 function greet({
   
    name = 'Guest' }) {
   
   
 console.log(`Hello, ${
     
     name}!`);
 }

📃 参考文献

相关文章
|
15天前
|
JavaScript
原生js炫酷随机抽奖中奖效果代码
原生js随机抽奖是一个炫酷的根据数据随机抽奖的代码,该网页可进行随机抽取一个数据,页面动画高科技、炫酷感觉的随机抽奖效果,简单好用,欢迎下载!
33 3
原生js炫酷随机抽奖中奖效果代码
|
14天前
|
JavaScript
js实现简洁实用的网页计算器功能源码
这是一款使用js实现简洁实用的网页计算器功能源码。可实现比较基本的加减乘除四则运算功能,界面简洁实用,是一款比较基本的js运算功能源码。该源码可兼容目前最新的各类主流浏览器。
23 2
|
20天前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
186 4
|
22天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
74 6
|
18天前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码。通过安装和配置这些工具,可以确保代码风格一致,提高代码质量和可读性。
49 1
|
存储 前端开发 JavaScript
|
存储 JavaScript 前端开发
JavaScript 常用功能总结
小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式。   目录: 众所周知,JavaScript是动态的面向对象的编程语言,能够实现以下效果: 1. 丰富Web 网页功能 2. 丰富Web界面 3. 实现本地或远程存储。
1254 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
96 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
123 4