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

【JavaScript】数组四大方法命名 得push pop shift unshift的原因 和功能

,JavaScript中数组的pushpopshiftunshift这四个方法的名字初看起来可能并不直观地与它们的功能完全对应,但这背后其实有着一些历史和约定俗成的命名习惯。不过,一旦你理解了它们各自的作用,这些名字也就变得容易记忆和理解了。

  1. push()

    • 名字由来:这个方法的名字来源于“push”(推)这个动作,意味着你正在向数组的末尾“推”入一个新的元素。
    • 功能:在数组的末尾添加一个或多个元素,并返回新的数组长度。
  2. pop()

    • 名字由来:与push()相对应,pop()的名字来源于“pop”(弹出)这个动作,意味着你正在从数组的末尾“弹出”一个元素。
    • 功能:删除并返回数组的最后一个元素。如果数组为空,则返回undefined
  3. shift()

    • 名字由来:虽然“shift”在常规语境中可能意味着移动或改变位置,但在这里它暗示了元素在数组中的位置发生了变化——特别是从数组的前端移除了元素。
    • 功能:删除并返回数组的第一个元素。如果数组为空,则返回undefined
  4. unshift()

    • 名字由来:与shift()相对应,unshift()的名字中的“un-”前缀表示“相反”或“撤销”shift()的操作,即在数组的前端“添加”元素,而不是移除。
    • 功能:在数组的开头添加一个或多个元素,并返回新的数组长度。

这四个方法的名字确实不是直接从功能描述中直接得出的,但它们通过隐喻和类比的方式,传达了元素在数组中的添加和移除操作。这种命名方式在编程中并不罕见,它允许开发者通过简短而富有表现力的名字来快速理解和记忆方法的功能。

随着你对JavaScript的进一步学习,你会逐渐习惯这种命名方式,并发现它们其实是非常直观和有用的。同时,你也可以通过编写自己的函数和库来尝试使用类似的命名策略,以提高代码的可读性和易用性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • cookie与session的区别+springboot使用
  • i2c讲解以及zyqn中的使用
  • vue的diff算法的【双端比较】策略
  • C++中如果函数a的参数是class v,class z是v的子类,可否将z的对象当参数传给函数a,可以
  • SystemUI plugin 开发
  • 2024年中职语文统编教材线上培训答案
  • 多线程 02:线程实现,创建线程的三种方式,通过多线程下载图片案例分析异同(Thread,Runnable,Callable)
  • python 文件打开、读、关闭练习
  • 【物联网】微信小程序ios如何自动打开蓝牙
  • Django Rest Framework -解析器
  • Linux中如何复制贴贴删除
  • C++速学day2
  • All-Reduce通信原语;Reduce+LayerNorm+Broadcast算子;gRPC:远程过程调用(RPC)框架;
  • ElementUI 事件回调函数传参技巧与自定义参数应用
  • TypeScript基础【学习笔记】
  • 11111111
  • angular学习第一篇-----环境搭建
  • classpath对获取配置文件的影响
  • E-HPC支持多队列管理和自动伸缩
  • IDEA 插件开发入门教程
  • in typeof instanceof ===这些运算符有什么作用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java面向对象及其三大特征
  • JS实现简单的MVC模式开发小游戏
  • markdown编辑器简评
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python 反序列化安全问题(二)
  • Python_OOP
  • REST架构的思考
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 你真的知道 == 和 equals 的区别吗?
  • 通过几道题目学习二叉搜索树
  • 自制字幕遮挡器
  • puppet连载22:define用法
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 达梦数据库知识点
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #VERDI# 关于如何查看FSM状态机的方法
  • #数据结构 笔记一
  • ${factoryList }后面有空格不影响
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (10)STL算法之搜索(二) 二分查找
  • (13):Silverlight 2 数据与通信之WebRequest
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十三)Flink SQL
  • (一)kafka实战——kafka源码编译启动
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转) Face-Resources