学习:JS[3]数组的增删改查+函数+作用域

一.操作数组

1.改

2.增

  • arr.push(新增的内容):将一个或多个元素添加到数组的结尾
  • arr.unshift(新增的内容):方法将一个或多个元素添加到数组的开头,并返回该数组的长度

3.删除

  • arr.pop():方法从数组中删除最后一个元素,不带参数,并返回元素的值
  • arr.shift():方法从数组中删除第一个元素,并返回元素的值
  • arr.splice(start,deleteCount):start--起始位置,deleteCount--删除元素的个数(不写的话默认全部删除)

 二.函数

1.函数的使用

先声明后调用

a.声明语法

function 函数名(){函数体
}

b.命名规范

  • 和变量名基本一致
  • 尽量小驼峰
  • 前缀应该为动词
  • 常用的动词约定
动词含义
can

判断是否可执行某个动作

has判断是否含义某个值
is

判断是否为某个值

get获取某个值
set设置某个值
load加载某些数据

c.调用语法

函数不调用自己不执行

函数名()

d.函数传参

(1)声明语法

function 函数名(参数列表){函数体
}
//如
function getSum(num1,num2){document.write(num1+num2)
}
  • 形参:声明函数写在函数右括号里的
  • 实参:调用函数时写在函数名的右括号里的
  • 形参理解为在函数中声明的变量,实参理解为给这个变量赋值
  • 开发中保持形参和实参的个数一致

(2)函数返回值

//当函数需要返回数据出去时,用return关键字
return 数据
  •  有些函数有返回值,有些没有返回值
  • return后面的数据不能换行写
  • 没有值,默认返回的是undefined
  • 返回多个数据时可以使用数组的形式返回

(3)函数注意点

  • 函数名相同时,就近原则,后面的函数会覆盖前面的函数 
  • 在JS中形参和实参的个数可以不一致(形参过多--自动填上undefined;实参过多--多余的实参被忽略,函数内部有一个arguments,里面装着所有的实参)
  • 一旦碰到return就不会执行了,所以结束用return

2.匿名函数 

函数可以分为:具名函数+匿名函数

a.没有名字的函数,无法直接使用

b.使用方式

(1)函数表达式

let fn=function(){
//函数体
}
fn()//调用函数
  • 具名函数可以在函数声明调用 (调用可以写到任意位置)
  • 函数表达式要先声明

(2)立即执行函数

//方式1--将匿名函数整个直接使用小括号包起来,然后直接小括号调用
(function (){console.log(11)})();//方式2--调用之后再用一个小括号全部括起来
(function(){console.log(11)}());//不需要调用立即执行
  •  避免全局变量之间的污染
  • 不需要额外调用
  • 多个立即执行函数之间要用分号隔开 

三.作用域 

1.所用到的名字是有可用性的代码范围.简称作用域

2.组成

a.全局作用域:,整个script标签包含的是全局作用域

b.局部作用域:函数作用域,跳出函数后不能使用

c.全局变量:函数外的let的变量

d.局部变量:函数内的let的变量

3.变量的特殊情况

  • 函数没有声明,直接赋值,就当做全局变量(强烈不允许)
  • 函数内部的形参可以看作函数的局部变量

4.变量的访问原则

  • 只要是代码,就至少有一个作用域
  • 写在函数内部的局部作用域
  • 如果函数中还有函数,那么在这个作用域中就可以诞生一个作用域
  • 在能够访问到的情况下,先局部,局部没有找全局

 四.逻辑运算符里的短路

1.短路

只存在于&&和||中,当满足一定条件会让右边代码不执行

符号短路条件
&&左边为false就短路
||左边为true就短路

0、''、undefined、null、false、NaN转换为布尔值之后都是false,其余为true

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

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

相关文章

从0到1搭建ELK日志收集平台

ELK是什么 ELK 是指 Elasticsearch、Logstash 和 Kibana 这三种工具的组合,通常用于日志分析、数据搜索和可视化。它们分别承担不同的功能,形成了强大的数据处理和分析平台: Elasticsearch:一个分布式搜索引擎,擅长实时…

Qt:图片切割

void MainWindow::on_action_slice_triggered() {QDialog *dialog new QDialog(this);dialog->setWindowTitle("切割");dialog->setFixedSize(200, 150);QVBoxLayout *vbox new QVBoxLayout;QHBoxLayout *hbox new QHBoxLayout;QLabel *label new QLabel(&…

BabelDOC,一个专为学术PDF文档设计的翻译和双语对比工具

你是否也有这样的困境,面对一篇学术论文,即使英语水平不错,仍需反复查词典,尤其是遇到专业术语和复杂长句,翻译软件又常常不能很好地处理学术PDF的排版,导致翻译结果混乱不堪。 现在,解决你烦恼…

Python之面向对象和类

一.类1.类的定义:class 类名:“”“注释 ”“”pass2.实例的创建:实例 类名(parameterlist)parameterlist:定义类时__init__()方法的参数,如果该方法只有一个self参数,parameterlist可以省略class Goose()…

【力扣 困难 C】329. 矩阵中的最长递增路径

目录 题目 解法一 题目 待添加 解法一 int max(int a, int b) {return a > b ? a : b; }int search(int** matrix, int m, int n, int i, int j, int (*dp)[n]) {if (dp[i][j]) {return dp[i][j];}int len 0;if (i > 0 && matrix[i - 1][j] > matrix[i]…

Blueprints - UE5的增强输入系统

一些学习笔记归档;增强输入系统由两部分组成:Input Action和Input Mapping ContextInput Action是输入操作的映射(操作中比如有移动、跳跃等),Input Mapping Context是输入情境的映射(对各种操作的具体按键…

Python 【技术面试题和HR面试题】➕ 动态类型、运算符、输入处理及算法编程问答

1.技术面试题 (1)TCP与UDP的区别是什么? 答: ①连接性:TCP 面向连接,3次握手及4次挥手,建立端到端的虚链路像;UDP 无连接,直接发送,无需预先建立连接 。 ②传…

etcd-cpp-apiv3 二次封装

接口介绍头文件#include <etcd/Client.hpp> #include <etcd/KeepAlive.hpp> #include <etcd/Response.hpp> #include <etcd/SyncClient.hpp> #include <etcd/Value.hpp> #include <etcd/Watcher.hpp>下面从功能介绍几个类的概念Value &…

【网络与系统安全】强制访问控制——Biba模型

一、模型定义与目标 提出背景&#xff1a;1977年由Ken Biba提出&#xff0c;是首个完整性安全模型&#xff0c;与BLP模型形成对偶&#xff08;BLP关注机密性&#xff0c;Biba关注完整性&#xff09;。核心目标&#xff1a;防止低完整性信息污染高完整性信息&#xff0c;避免未授…

从架构抽象到表达范式:如何正确理解系统架构中的 4C 模型20250704

&#x1f9e9; 从架构抽象到表达范式&#xff1a;如何正确理解系统架构中的 4C 模型&#xff1f; “4C”到底是架构的组成结构&#xff0c;还是架构图的表现方式&#xff1f;这类看似细节的问题&#xff0c;其实直击了我们在系统设计中认知、表达与落地之间的张力。 &#x1f5…

Debian10安装Mysql5.7.44 笔记250707

Debian10安装Mysql5.7.44 笔记250707 1️⃣ 参考 1 在Debian 10 (Buster) 上安装 MySQL 5.7.44 的步骤如下&#xff1a; 1. 添加 MySQL APT 仓库 MySQL 官方提供了包含特定版本的仓库&#xff1a; # 下载仓库配置包 wget https://dev.mysql.com/get/mysql-apt-config_0.8.28…

20250706-6-Docker 快速入门(上)-镜像是什么?_笔记

一、镜像是什么&#xfeff;1. 一个分层存储的文件&#xff0c;不是一个单一的文件分层结构: 与传统ISO文件不同&#xff0c;Docker镜像由多个文件组成&#xff0c;采用分层存储机制存储优势: 每层可独立复用&#xff0c;显著减少磁盘空间占用&#xff0c;例如基础层可被多个镜…

[SystemVerilog] Clocking

SystemVerilog Clocking用法详解 SystemVerilog 的 clocking 块&#xff08;Clocking Block&#xff09;是一种专门用于定义信号时序行为的构造&#xff0c;主要用于验证环境&#xff08;如 UVM&#xff09;中&#xff0c;以精确控制信号的采样和驱动时序。clocking 块通过将信…

kong网关基于header分流灰度发布

kong网关基于header分流灰度发布 在现代微服务架构中&#xff0c;灰度发布&#xff08;Canary Release&#xff09;已经成为一种常用且安全的上线策略。它允许我们将新版本的功能仅暴露给一小部分用户&#xff0c;从而在保证系统稳定性的同时收集反馈、验证效果、规避风险。而作…

Go语言gin框架原理

在gin框架中&#xff0c;最关键的就是前缀树&#xff0c;是很重要的。gin框架本质上是在http包的基础之上&#xff0c;对其的一个二次封装。这里借鉴一下小徐先生的图&#xff0c;可能当前版本的gin可能内容有所改变&#xff0c;但大致思想还是这样。gin框架所做的就是提供一个…

4、Sending Messages

本节介绍如何发送消息。Using KafkaTemplate本节介绍如何使用KafkaTemplate发送消息。OverviewKafkaTemplate封装了一个生产者&#xff0c;并提供了向Kafka主题发送数据的便利方法。以下列表显示了KafkaTemplate的相关方法&#xff1a;CompletableFuture<SendResult<K, V…

CSS长度单位问题

在 CSS 中&#xff0c;100px 的逻辑长度在不同分辨率的手机屏幕上是否表现一致&#xff0c;取决于 设备的像素密度&#xff08;devicePixelRatio&#xff09; 和 视口&#xff08;viewport&#xff09;的缩放设置。以下是详细分析&#xff1a;1. 核心概念 CSS 像素&#xff08;…

基于Java+SpringBoot的图书管理系统

源码编号&#xff1a;S606源码名称&#xff1a;基于SpringBoot的图书管理系统用户类型&#xff1a;双角色&#xff0c;用户、管理员数据库表数量&#xff1a;12 张表主要技术&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven运行环境&#xff1a;Windows/Mac、JDK1.8及以…

XTOM工业级蓝光三维扫描仪用于笔记本电脑背板模具全尺寸检测

镁合金具有密度小、强度高、耐腐蚀性好等优点&#xff0c;成为笔记本电脑外壳主流材料。冲压模具作为批量生产笔记本电脑镁合金背板的核心工具&#xff0c;其精度直接决定了产品的尺寸一致性、结构可靠性与外观品质。微米级模具误差可能在冲压过程中被放大至毫米级&#xff08;…

运维打铁: MongoDB 数据库集群搭建与管理

文章目录思维导图一、集群基础概念1. 分片集群2. 副本集二、集群搭建1. 环境准备2. 配置副本集步骤 1&#xff1a;修改配置文件步骤 2&#xff1a;启动 MongoDB 服务步骤 3&#xff1a;初始化副本集3. 配置分片集群步骤 1&#xff1a;配置配置服务器副本集步骤 2&#xff1a;启…