[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂

news/2024/11/15 17:17:13/文章来源:https://www.cnblogs.com/cnb-yuchen/p/18328759

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://www.cnblogs.com/cnb-yuchen/p/18328759
出自【进步*于辰的博客】

参考笔记一,P10.4、P13.2;笔记三,P48.1。

目录
  • 先言
  • 1、通用函数
  • 2、Global对象函数
  • 3、数组相关函数
    • 3.1 arr.find(item => {})
    • 3.2 Array.from(obj)
    • 3.3 arr.copyWithin(a, b, c)
  • 最后

先言

  1. 下文所列举函数可能隶属ES5或ES6(特别是数组相关函数),我列举的是一些常用函数,并且一些“成对”函数我不会列举,如:lastIndexOf()(PS:一般情况下,lastIndexOf()会与indexOf()共同存在)。
  2. 诸如函数的学习与使用,建议大家查看源码,稍作测试便可掌握。

1、通用函数

摘要 参数说明 返回值类型/返回值 说明
parseInt(str) 将字符串中的数字部分转换成数字,以字符截止。可用于去除小数。若首字符不是数字,得NaN
Number(str) 将字符串转换成数字。若字符串中包含非数字,得NaN
str.slice(i) 截取字符串
eval(str) 将字符串作为js脚本执行
type(a) 返回变量类型。同指令type a

2、Global对象函数

摘要 参数说明 返回值类型/返回值 说明
encodeURI(url) 对URL进行编码。作用对象:不属于URI的特殊字符,如:特殊符号、汉字
encodeURIComponent(url) 对URL进行编码。作用对象:任何非标准字符(即非字母)
decodeURI(url) 对URL进行解码。作用对象:不属于URI的特殊字符,如:特殊符号、汉字
decodeURIComponent(url) 对URL进行解码。作用对象:任何非标准字符(即非字母)

示例。

var url = 'https://blog.csdn.net/m0_69908381?type=blog&name=进步*于辰'
var enurl1 = encodeURI(url)
var enurl2 = encodeURIComponent(url)
console.log(enurl1)
console.log(enurl2)var deurl1 = decodeURI(enurl1)
console.log(deurl1)
var deurl2 = decodeURIComponent(enurl2)
console.log(deurl2)

打印结果:
在这里插入图片描述

3、数组相关函数

参考笔记二,P9.4~8、P41.5;笔记三,P48.7、P12.3。

摘要 参数说明 返回值类型/返回值 说明
Array.of(a,b,...) 类似Java中的Arrays.asList()
Array.from(obj) obj 可以是数组、对象 将 obj 按照一定规则转化成数组
for(let i in arr) i 是下标,不是元素。arr 可以是数组或对象 加强for
for(let e of arr) e-元素。arr 只能是数组 加强for
arr.forEach((e, i) => {}) e-元素,i-下标 遍历数组
arr.indexOf(a) a-查找元素 返回匹配的第一个元素的下标,找不到返回-1
arr.findIndex(item => {}) item-数组元素 返回满足条件的第一个元素的下标,找不到返回-1
arr.find(item => {}) item-数组元素 返回满足条件的第一个元素,条件由函数内自定义,找不到返回undefined
arr.copyWithin(a, b, c) a-目标开始位置,b-开始位置,c-结束位置 arr 将arr中,[b,c)的元素复制到arr的a处

3.1 arr.find(item => {})

业务:返回满足条件的第一个元素,条件由函数内自定义。遍历时以true(满足条件)作为结束,若数组中无满足条件的元素或使用了return false,返回undefined。(注:item 是数组元素,遍历时作为参数传入函数,并作为返回值)

1:查找普通数组。

let arr = Array.of(10, 20, 30)
let e = arr.find(item => {return item > '10'
})
console.log(e);// 20

可见,JS中在比较时忽略数据类型。

2:查找对象数组。

var platform = [{id: 1,name: 'C站'
}, {id: 2,name: 'B站'
}]var e = platform.find(item => {if(item.id == '1')return true
})
console.log(e)// { id: 1, name: 'C站' }e = platform.find(item => {if (item.id == '1')return false
})
console.log(e)// undefined

3.2 Array.from(obj)

1:转化数组。

let arr = Array.from([1, 2, 3])
console.log(arr);// [ 1, 2, 3 ]

2:转化对象。

let obj = {id: 1,name: 'yc'
}
obj = Array.from(obj)
console.log(obj);// []obj = {0: 1,1: 'yc',length: 2
}
obj = Array.from(obj)
console.log(obj);// [ 1, 'yc' ]

由于数组的打印结果与对象相似,在满足以下两个条件的情况下,Array.from()可将对象转化成数组:

  1. 对象属性名改为下标;
  2. 添加属性length,值为属性数。

满足条件的对象一般称为“对象数组”。

3:转化标签数组。

有5个按钮:
在这里插入图片描述
获取并遍历:

let tags = document.getElementsByTagName('button')
for(let i in tags)console.log(tags[i])

打印结果:
在这里插入图片描述
可见,多出了最后两个“额外”信息,这是标签数组本身自带的,与遍历无关。可是,若遍历中存在“标签操作”(如:设置标签属性),则会报错。

解决方案:

let tags = document.getElementsByTagName('button')
tags = Array.from(tags)
for(let i in tags)console.log(tags[i])

打印结果:在这里插入图片描述

这样就可以去掉“额外”信息。

3.3 arr.copyWithin(a, b, c)

示例:

let arr1 = Array.of(2, 3, 4, 5, 6)
arr1.copyWithin(1, 3, 5)
console.log(arr1)// [ 2, 5, 6, 5, 6 ]
let arr1 = Array.of(2, 3, 4, 5, 6)
arr1.copyWithin(1, 3, 4)
console.log(arr1)// [ 2, 5, 4, 5, 6 ]

最后

暂无言。

本文持续更新中。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/773160.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 代码中的 yield 到底是什么?

在Python编程中,有一个强大而神秘的关键字,那就是yield。初学者常常被它搞得晕头转向,而高级开发者则借助它实现高效的代码。到底yield是什么?它又是如何在Python代码中发挥作用的呢?让我们一起来揭开它的面纱。 Python里的一个非常重要但也颇具迷惑性的关键词——yield。…

智能家居如何把老款定频空调变成智能“变频”空调#米家#智能家居#HA

背景最近长沙的天气暴热,室内达到了34-35度,天气预报最高温度上了40度,这么酷热的天气,离开了空调,基本上就是一身汗,全身湿透,特别难受,然后不得不开启家里的一台将近10年的老式定频空调,输入功率970W,OMG,一小时将近一度电,假设一天吹10小时,就是10度电,一个月…

联想电脑 win11系统,关闭联想锁屏后,windows聚焦不生效(其他电脑同理)

先排查下前置条件,然后再使用解决方案。附加:如何关闭联想锁屏: 打开联想电脑管家->工具箱->联想锁屏->关闭排查 原因1:是不是使用clash代理导致的联网问题。 解决:在clash启动"UWP应用联网限制解除工具"助手,全选,保存,等待一阵即可以正常更新屏保…

imbalanced-learn库的作用和安装

imbalanced-learn是一个Python库,‌专门用于处理不平衡数据集的机器学习问题。‌ 这个库提供了一系列的重采样技术、‌组合方法和机器学习算法,‌旨在提高在不平衡数据集上的分类性能。‌Imbalanced-learn支持欠采样、‌过采样、‌结合欠采样和过采样的方法,‌以及一些集成学…

gorm中使用乐观锁

乐观锁简介 乐观锁(又称乐观并发控制)是一种常见的数据库并发控制策略。乐观并发控制多数用于数据竞争(data race)不大、冲突较少的环境中,这种环境中,偶尔回滚事务的成本会低于读取数据时锁定数据的成本,因此可以获得比其他并发控制方法更高的吞吐量。 它的作用是防止并发更…

lapce源码学习-启动过程

一、记录日志 1.1、panic恐慌(异常)记录跟踪 调用堆栈,如果有源代码信息时,则记录文件路径、行、列、堆栈;否则仅记录堆栈。 window系统,调用win32接口弹出模态框窗口提醒。1.2、链路追踪日志,输出到文件和控制台配置 文件:文件数目、文件前缀/后缀名、文件收集各目标日…

模块3 面向对象编程高级 --- 第十一章:异常处理

第十一章 异常处理 主要知识点1、异常产生的原因2、标准异常类3、Java的异常处理机制4、异常的创建5、异常的抛出6、异常语句的编程 学习目标熟悉异常产生的原因和标准异常类的用法。能够运用异常处理机制编写Java程序,提高安全性; 11.1 异常的分类一旦出现异常,系统将会立刻…

Win10资源管理器文件夹错乱

昨天晚上我不知道怎么搞得,鼠标在资源管理器界面,我手放在触控板上,不知道拖拽了啥,把所有文件搞到桌面文件夹下了。然后焦虑了一天,都打算从还原点还原了,然后今天早上更新了Windows,发现最新的还原点就在今早。。。无奈之下想到了去问问ChatGPT,然后居然它真的给了我…

[Redis]原子性

事务 为了确保连续多个操作的原子性,一个成熟的数据库通常都会有事务支持,Redis也不例外。 Redis的事务使用方法非常简单 不同于关系数据库我们无须理解那么多复杂的事务模型就可以直接使用。不过也正是因为这种简单性它的事务模型很不严格这要求我们不能像使用关系数据库的事…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-01 软件工具环境搭建

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1代码编…

【Python】Django学习1

按黑马程序员的美多商场作方向:https://www.bilibili.com/video/BV1nf4y1k7G3一、应用创建、注册处理、配置 Pycharm 创建Django项目: 自应用注册处理: 二、应用数据初始化 第一步:创建元数据初始化py脚本python manage.py makemigrations初始化的脚本会放在各个自应用的…

catboost库作用与安装

CatBoost是一种机器学习库,‌由俄罗斯的搜索巨头Yandex在2017年开源。‌它属于Boosting族算法的一种,‌与XGBoost、‌LightGBM并称为GBDT的三大主流神器。‌CatBoost的主要作用和创新点在于高效合理地处理类别型特征,‌这是从其名称中的"Cat"(‌分类)‌和"…