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

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

时间:2024-07-28 19:51:13浏览次数:8  
标签:arr console log 补补 再犯 JS item 数组 obj

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

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

目录

先言

  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 ]

最后

暂无言。

本文持续更新中。。。

标签:arr,console,log,补补,再犯,JS,item,数组,obj
From: https://www.cnblogs.com/cnb-yuchen/p/18328759

相关文章

  • Nuxt.js 路由管理:useRouter 方法与路由中间件应用
    title:Nuxt.js路由管理:useRouter方法与路由中间件应用date:2024/7/28updated:2024/7/28author:cmdragonexcerpt:摘要:本文介绍了Nuxt3中useRouter方法及其在路由管理和中间件应用中的功能。内容包括使用useRouter添加、移除路由,获取路由信息,基于HistoryAPI的操作,......
  • 基于JSP的沙县小吃点餐系统
    你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。开发语言:Java数据库:MySQL技术:JSP技术工具:IDEA/Eclipse、Navicat、Maven系统展示首页管理员功能界面用户功能界面前台首页功能界面摘要随着社会的发展,信息化时代的优势被各行各业所利用,计算机的......
  • js切割字符串指定个数?
    如果你想剪切字符串的开头几个字符,可以使用JavaScript的substring()方法或者slice()方法。使用substring()方法:letstr="Hello,World!";letcutLength=5;//要剪切的字符数 letnewStr=str.substring(cutLength);console.log(newStr);//输出:",Worl......
  • js切割接口域名前缀。
    在请求图片时,可能会有有域名的,或没域名的地址,这就需要判断,把字符串域名把域名前缀剪切掉letdomain="https://www.example.com"; //剪切掉域名前缀functiontrimDomainPrefix(url){  //定义需要剪切的前缀列表  constprefixes=["http://","https://",......
  • js的回车事件
    在JavaScript中,处理回车事件可以通过监听键盘事件来实现。通常情况下,回车键的键码为13。以下是一个简单的示例代码,演示如何检测用户按下回车键://监听键盘事件document.addEventListener('keydown',function(event){  if(event.key==='Enter'){    //......
  • 【免费领源码】Java/Mysql数据库+SSM校园兼职网站 25557,计算机毕业设计项目推荐上万套
    摘 要当今人类社会已经进入信息全球化和全球信息化、网络化的高速发展阶段。丰富的网络信息已经成为人们工作、生活、学习中不可缺少的一部分。人们正在逐步适应和习惯于网上贸易、网上购物、网上支付、网上服务和网上娱乐等活动,人类的许多社会活动正在向网络化发展。兼职......
  • 【免费领源码】Java/Mysql数据库+springboot驾校预约管理系统 25540,计算机毕业设计项
    摘 要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于驾校预约管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了驾校预约管理系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种......
  • Python 请求 - response.json() 未按预期工作
    我正在尝试从Python的requests模块调用API。在邮递员上,返回的响应标头中的Content-Type是application/json;charset=utf-8,响应json数据是我期望的样子。但是,在python上的API的get方法之后运行response.json()会抛出错误simplejson.errors......
  • python---json文件写入
    ​ 使用到的知识点:os模块执行linux指令、json.dump()、withopenasf代码实现importsysimportosimportjson #向json文件file中添加内容data,其中data的类型为字典defwrite_json(file,data):    #如果文件存在,则删除    if(os.path.exists(fi......
  • 基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页
    技术支持:JAVA、JSP服务器:TOMCAT7.0.86编程软件:IntelliJIDEA2021.1.3x64前文三篇登录和注册功能的实现基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作)https://blog.csdn.net/m0_64056556/article/details/140684858?spm=1001.2014......