JavaScript(五):函数、作用域

news2024/11/28 6:36:22

JavaScript函数

    • 函数的基本使用
    • return返回语句
    • arguments的使用
    • 函数的两个案例
    • 作用域

函数的基本使用

1.函数声明

格式:

function 函数名(){
函数体代码
}

function是声明函数的关键字,必须小写

2.函数调用

函数名();

  • 调用的时候不要忘记加小括号
  • 函数如果不调用,自己是不会执行的
  • 声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码

例如:

       //函数声明
        function hello() {
            console.log('hello,world');
        }
        //函数调用
        hello();

3.形参和实参
在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,从而在调用函数时同样也需要传递相应的参数,这些参数被称为实参。

//函数声明
    function getSum(num1, num2) {
        console.log(num1 + num2);
    }
    //函数调用
    getSum(1, 2);
    //结果为3

请添加图片描述

return返回语句

  • 函数最终的结果需要返回给函数的调用者,通过return实现

请添加图片描述

  • 实参是一个数组,那么形参接收到的也会是一个数组

请添加图片描述

  • return只会返回一个值,以最后一个值为准,如果想要返回多个值,可以返回数组
  //不执行return之后的语句
        function getresult() {
            return 'sy';
            alert('hello');//不会被弹出警示框
        }
        //return只返回一个值,以最后一个值为准
        function returnresult(num1, num2) {
            return num1, num2;//只返回num2
        }
        //return想要返回多个值,可以使用数组
        function returnmore(num1, num2) {
            return [num1 + num2, num1 - num2, num1 * num2 , num1 /num2];
        }

        console.log(getresult());
        console.log(returnresult(10,2));
        console.log(returnmore(10,2));

结果:

请添加图片描述

  • 如果函数没有return,则返回undefined

arguments的使用

当我们不确定有多少个参数传递时,可以使用arguments来获取。arguments展示形式是一个伪数组,因此可以进行遍历,伪数组具有以下特点:

  • 具有length属性
  • 按索引方式存储数据
  • 不具有数组的push、pop等方法

例如:

function fn(){
for(var i = 0; i <arguments.length; i++){
	console.log(arguments[i]);
	}
}
fn(1 , 2 , 3);
fn(1, 2, 3, 4, 5);
//数组存储了所有传递过来的实参,不需要在定义形参的个数

函数也可以调用另外一个函数

 function fun1(){
    console.log(11);
    fun2();
}
 function  fun2(){
    console.log(22);
 }
 fun1();//结果为11,22

函数的两个案例

1.翻转任意数组

请添加图片描述

尽量多使用arr.length 这种方法继续数组赋值,这样的好处是数组的长度是可以变化的,并且少一层for循环

2.数组的冒泡排序
请添加图片描述

作用域

1.全局作用域

整个script标签或者一个单独的js文件都可以使用

2.局部作用域

在函数内部就是局部作用域,这个代码的名字只能在函数内部起效果或者作用

3.全局变量

在全局作用域下声明的变量称为全局变量(函数体外定义的变量)

  • 全局变量在代码的任何位置都可以使用
  • 在全局作用域下var声明的变量是全局变量
  • 如果定义变量没有加上var,不管是变量定义在函数里面还是函数外面都是全局变量

4.局部变量

  • 局部变量只能在函数内部使用
  • 在函数内部var声明的变量就是局部变量
  • 函数的形参实际上就是局部变量

例如:

var num = 10;//全局变量
function fn(aru){
var num1 = 20;//局部变量
num2 = 30;
}
fn();
console.log(num);//结果为10
console.log(num2);//结果为30,因为num2未设置var,也是全局变量
console.log(num1);//报错: num1 is not defined,因为num1是局部变量

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

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

相关文章

【数据分析】大型ADCP数据集的处理和分析(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

猿如意中的【Sublime Text Build 3211】开发工具详情介绍

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意&#xff1f; 2.2 如何下载猿如意&#xff1f; 2.3 如何在猿如意中下载Sublime Text Build 3211&#xff1f; 三、Sublime Text Build 3211介绍 四、软件安装过程 五、软件界面 六、Sublime Text Build 3…

redis7知识点总结

文章目录1. redis单线程为啥会这么快2. redis数据类型和底层存储结构2.1 string类型2.1.1 SDS2.2 hash类型2.3 list类型2.4 set类型&#xff08;集合&#xff09;2.5 zset类型&#xff08;有序集合&#xff09;2.6 ziplist压缩列表2.7 listpack2.8 quicklist-快速列表2.9 skipl…

马士兵-郑金维—并发编程—6.并发集合

一、ConcurrentHashMap 1.1 存储结构 ConcurrentHashMap是线程安全的HashMap ConcurrentHashMap在JDK1.8中是以CAS+synchronized实现的线程安全 CAS:在没有hash冲突时(Node要放在数组上时) synchronized:在出现hash冲突时(Node存放的位置已经有数据了) 存储的结构:…

DBCO-PEG3-NHS ester,2163772-16-3,二苯并环辛炔-三聚乙二醇-琥珀酰亚胺酯

英文名称&#xff1a;DBCO-PEG3-NHS ester 中文名称&#xff1a;二苯并环辛炔-三聚乙二醇-琥珀酰亚胺酯 CAS&#xff1a;2163772-16-3 分子式&#xff1a;C32H35N3O9 分子量&#xff1a;605.64 纯度&#xff1a;>95% 外观&#xff1a;浅黄色半固态 储存条件&#xff…

互联网企业的逆向奔赴,京东调集首批1000余名快递小哥陆续抵达北京

在每一次苦难来临的时刻&#xff0c;逆行者的背影&#xff0c;总是让人倍感温暖。   在疫情依然肆虐的当下&#xff0c;更是如此。   那些义无反顾地奔赴疫情最前线的逆行者们&#xff0c;总是在用血肉之躯守护着我们的生活冷暖。如果一定要寻找这些逆行者当中最美的那一抹…

SDK JDBC多种方式接入AZURE SQL DATABASE JAVA版

本文阐述使用JDBC接入AZURE SQL 数据库 笔者认为AZURE云上的AZURE SQL和SQL SERVER是很相似的&#xff0c;在普通的账号密码情况下JDBC字符串都是一致的。 下来全部说明官方的多种连接方式&#xff0c;参考官方&#xff1a; https://learn.microsoft.com/zh-cn/sql/connect/jdb…

Post-GWAS: single-cell disease relevance score (scDRS) 分析

1、scDRS的计算原理如下所示&#xff1a; 图片来源&#xff1a;Zhang M J, Hou K, Dey K K, et al. Polygenic enrichment distinguishes disease associations of individual cells in single-cell RNA-seq data[R]. Nature Publishing Group, 2022. 2、通过scDRS分析可以得到…

XDisplay 安装教程

Splashtop Wired XDisplay 安装教程1. 概述2. Splashtop XDisplay 详细安装教程2.1 下载 Splashtop XDisplay2.2 电脑上安装 Splashtop XDisplay2.3 iPad安装 Splashtop XDisplay3. 遇到的问题3.1 下载 iTunes3.2 安装 iTunes3.3 打开 iTunes3.4 同意许可协议4. iPad连接Window…

学会用这个键,Word做得比领导还整齐, 早早下班不是梦

大家比较常用到哪些快捷键呢&#xff1f;快捷键用得熟练&#xff0c;工作效率可是会大大提高的。下面介绍4类常用的Word快捷键&#xff0c;希望能够帮到你&#xff0c;大家一起提高效率&#xff0c;早早下班&#xff01;一、字体样式&#xff1a;平常更改字体样式&#xff0c;总…

【openEuler系列】部署文件共享服务Samba

个人名片&#xff1a; 对人间的热爱与歌颂&#xff0c;可抵岁月冗长&#x1f31e; Github&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff1a;念舒_C.ying CSDN主页✏️&#xff1a;念舒_C.ying 个人博客&#x1f30f; &#xff1a;念舒_C.ying 1 配置环境 挂载系统ISO&am…

李沐精读论文:GAN

论文&#xff1a;https://papers.nips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf 视频&#xff1a;GAN论文逐段精读【论文精读】_哔哩哔哩_bilibili 课程&#xff1a;CS231n 2022PPT笔记- 生成模型Generative Modeling ​李宏毅机器学习——对抗生成网络…

基本算法学习记录---Day2

并查集模板1 class Solution {int[] root new int[200000];public int Que() {//初始化for(int i 1;i<n;i){root[i] i;}//TODO}//找根(将节点连接)public int find(int x){if(root[x] ! x){root[x] find(root[x]);}return root[x];}//合并public void heb(int i,int j)…

快速突出重点数据,条件样式来帮你

使用条件样式可以实现使用样式标注符合规则的数据&#xff0c;可以帮助直观查看数据、发现关键数据问题和数据的变化趋势。例如&#xff1a; 使用红色文字标注同比增幅小于10%的省份 使用红色文字标注同比增幅小于10%的省份使用不同的图标标注计划完成情况&#xff0c;绿色图…

PS CS6视频剪辑基本技巧(一)CS6可以实现的视频剪辑功能

前几天儿子要做一个居家生活的视频在班会上分享&#xff0c;想把视频做得漂亮一些&#xff0c;不想应付了事&#xff0c;本人略懂PS&#xff0c;所以就地取材学了一下用PS CS6制作视频&#xff0c;现在把学习到的基本技巧给大家分享一下。本人非专业人士&#xff0c;所用软件也…

Arthas入门和安装使用

闲聊 我前几天也阳了&#xff0c;难受的要死&#xff0c; 不过今天明显好转&#xff0c;抓紧来一篇博文助助兴。如果对你有一点收获&#xff0c;辛苦点个赞。 简介 Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持JDK6以上。主要用于定位和诊断线上程序运行问…

Solidity之abi.encode各编码方法使用

什么是智能合约 ABI ABI Specification for encoding and decoding 非常精炼的一句话&#xff1a;一套用来编码和解码的规范。 注意与合约字节码&#xff08;bytecode&#xff09;要区分开&#xff0c;字节码只是一串用十六进制数表示的 EVM 操作码。 在 Solidity 文档中描…

文件内容的读写 (IO) —— 数据流

文件内容的读写 IO —— 数据流一、什么是数据流二、字节流输入InputStream2.1 InputStream 概述2.2 FileInputStream 的使用三、字节流输出OutputStream3.1 OutputStream 概述3.2 FileOutputStream 的使用四、字符流输入 Reader4.1 Reader 与 FileReader4.2 利用 Scanner 进行…

[Java]图论进阶--最小生成树算法

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. 最小生成树 1.1 Kruskal(克鲁斯卡尔) 算法 …

计算机毕设Python+Vue校园社团信息管理系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…