JS中的函数与数组

news2024/11/19 15:33:28

文章目录

  • 函数的定义与调用
    • ①、函数定义
    • ②、函数调用
  • 函数的参数与返回值
  • let与var关键字区别
  • 创建数组并使用
    • 数组遍历


函数的定义与调用

①、函数定义

函数定义有三种方式:

第一种:function 函数名(){ 函数体 }

第二种:定义变量的语法,let 函数名 = function(){ 函数体 }

第三种:最新标准语法,箭头函数

        //1.函数定义
        //a. function 函数名(){ 函数体 }
        function f1(){
            console.log("函数f1执行了");
        }
        //b. 定义变量的语法 let 函数名 = function(){ 函数体 }
        let f2 = function(){
            console.log('函数f2执行了');
        }
        //c. 最新标准语法 箭头函数
        let f3 = () => {
            console.log('函数f3执行了');
        }

②、函数调用

通过函数名() 的方式调用

        //2.函数调用,通过函数名() 的方式调用
        f1()
        f2()
        f3()

【示例代码】

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        //1.函数定义
        //a. function 函数名(){ 函数体 }
        function f1(){
            console.log("函数f1执行了");
        }
        //b. 定义变量的语法 let 函数名 = function(){ 函数体 }
        let f2 = function(){
            console.log('函数f2执行了');
        }
        //c. 最新标准语法 箭头函数
        let f3 = () => {
            console.log('函数f3执行了');
        }

        //2.函数调用,通过函数名() 的方式调用
        f1()
        f2()
        f3()

    </script>
</body>
</html>

在这里插入图片描述

函数的参数与返回值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        //有参有返回值
        function add(x,y){
            return x+y
        }
        
        //absoulte:计算一个数绝对值
        let absoulte = function(x){
            if ( x>=0 ) {
                return x
            } else {
                return -x
            }
        }
        
        let max = (a,b) =>{
        // a>b 是真的吗?是返回a,如果a不大于b,返回b
            return a>b?a:b
        }

        console.log( add(10,30) );
        console.log( absoulte(-5) );
        console.log( max(10,100) );

    </script>
</body>
</html>

输出结果:
在这里插入图片描述

let与var关键字区别

  1. let定义的变量,具有块级作用域特性,使用范围仅限于定义时的代码块
  2. var定义的变量不具有会计作用于特性,可能会引发很多问题
  3. 新标准推荐使用let定义
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        if (true) {
            let a = 10
            var b = 'hello'
        }

        console.log(b);
        console.log(a);
    </script>
</body>
</html>

输出结果:
在这里插入图片描述
输出结果是:
hello
a未被定义的错误(但是a已经被定义过了),这就是这两个变量的区别
let定义的变量,它的范围是块级作用域,也就是说let定义的这个a,只允许在if (true){…}这大括号内使用,而var定义的这个b也在这个大括号内,但是她离开大括号后也能用,不受大括号限制(有时候容易混乱)
所以尽量使用let定义

创建数组并使用

  1. js数组的下标从0开始
  2. js数组的长度是可以改变的
  3. 通过数组名[下标]方式,使用其中的某一个数据

【示例代码】

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        // 创建数组
        let arr1 = new Array()
        let arr2 = new Array(10,'abc',true)
        let arr3 = [] //相当于new Array()
        let arr4 = ['tom',23,170,1.81]  //相当于new Array(10,'abc',true)
        // 使用数组    
        console.log( arr4 );   //输出arr4这个数组
    </script>
</body>
</html>

输出结果:
在这里插入图片描述
【示例代码】
看一下数组长度是可变的这个特性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        // 创建数组
        let arr1 = new Array()
        let arr2 = new Array(10,'abc',true)
        let arr3 = [] //相当于new Array()
        let arr4 = ['tom',23,170,1.81]  //相当于new Array(10,'abc',true)
        // 使用数组    
        console.log( arr4 );
        console.log(arr4[1]);  //输出下标第2个数据
        arr4[4] = 'xx'       //数组长度是可变特性(给下标为4的数据赋值)
        console.log(arr4);    //再次输出arr4这个数组
    </script>
</body>
</html>

输出结果:
第2个下标结果是:23
arr4中加了xx这个数据,由4个数据变成5个
在这里插入图片描述
如果这时候输出【console.log( arr4[10]);】,查找arr4这个数组里面的下标为10的数据,输出结果是:undefined(未定义)

数组遍历

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        let array = ['汤姆','要抓','杰瑞']
        for (let index = 0; index < array.length; index++) {
            console.log(array[index]);            
        }
    </script>
</body>
</html>

输出结果:
在这里插入图片描述

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

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

相关文章

LITE TRANSFORMER WITH LONG-SHORT RANGE ATTENTION

1.摘要 在这篇论文中&#xff0c;我们提出了一种高效的移动NLP架构——Lite Transformer&#xff0c;以在边缘设备上部署移动NLP应用。Transformer已经成为自然语言处理&#xff08;例如机器翻译、问答系统&#xff09;中无处不在的技术&#xff0c;但要实现高性能需要大量计算…

Elasticsearch 初步使用

本文是 Elasticsearch官方博客文档 阅读笔记记录&#xff0c;详细内容请访问官方链接&#xff0c;本文只做重点记录 index索引 对于经常看 Elastic 英文官方文档的开发者来说&#xff0c;我们经常会看到 index 这个词。在英文中&#xff0c;它即可以做动词&#xff0c;表示建…

ASP.Net Core Web API快速搭建后台服务搭载SQLServer+FreeSQL(一)

目录 一.建立WebAPI所需要的环境 1. IDE编辑器&#xff1a;VisualStudio2019 2.数据库安装&#xff1a;SqlServer 3.下载SQL Server Management Studio (SSMS) 二.创建ASP.Net Core Web API工程 1.创建模板工程 2. 试运行案例接口 3.安装FreeSQL工具包 三.设计数据库 启…

《养生大世界》简介及投稿要求

《养生大世界》简介及投稿要求 《养生大世界》是由国家新闻总署备案&#xff0c;中国老年保健协会主管的国家级学术期刊&#xff0c;全国公开发行正规刊物。 《养生大世界》传播健康中国文化理念&#xff0c;推动健康养生科技创新发展&#xff0c;助力健康产业惠及人民。 主…

蓝桥杯单片机竞赛主观题总结(全)(2.5W字)

前言 对于蓝桥杯的单片机竞赛&#xff0c;主观题很重要&#xff0c;占了百分之70-80的大头&#xff0c;因此主观题做得怎么样决定了比赛是否能拿奖&#xff0c;而客观题的正确率很大程度上决定了你能否获得省一&#xff0c;从而进入决赛。因此我在这里分享一期关于主观题中各个…

95道MongoDB面试题

1、mongodb是什么&#xff1f; MongoDB 是由 C语言编写的&#xff0c;是一个基于分布式文件存储的开源数据库系统。 再高负载的情况下&#xff0c;添加更多的节点&#xff0c;可以保证服务器性能。 MongoDB 旨在给 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数…

前端技术栈 - ES6 - Promise -模块化编程

文章目录 &#x1f55b;ES6⚡let变量⚡const常量⚡数组解构⚡对象解构⚡模板字符串⚡对象声明简写⚡对象方法简写⚡对象运算符扩展⚡箭头函数&#x1f98a;传统函数>箭头函数&#x1f98a;箭头函数对象解构 ⚡作业布置 &#x1f550;Promise⚡需求分析⚡传统ajax回调嵌套⚡p…

GO、KEGG(批量分组)分析及可视化

这篇帖子其实是更新、补充、解决一下问题的。我们号写过很多GO、KEGG富集分析的可视化&#xff0c;数不胜数&#xff0c;可以在公众号检索“富集”了解更多。我们演示的时候都是直接提供了富集的结果文件&#xff0c;一般演示为了图方便&#xff0c;也是利用在线工具cytoscape做…

网络工程师的副业,能有多野?

大家好&#xff0c;我是许公子。 在网工这行做了这么久&#xff0c;经常会有同事或者朋友来问我&#xff0c;有没有什么搞副业的路子。 别说&#xff0c;选择还真挺多。 前两天的文章里&#xff0c;这位朋友就秀了一波&#xff0c;这工作速度、便捷程度、收款金额&#xff0c…

Java并发编程-线程基础

哈喽,大家好,这篇文章主要讲解Java并发编程,线程基础的知识点,讲解知识点的同时也会穿插面试题的讲解. 主要讲解以下内容 进程,线程基础常见的一些区别比较如何使用和查看线程理解线程如何运行以及线程上下文切换的知识线程方法线程状态 希望能给大家带来帮助.加油~~~ 目录 进…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第十九章 口令破解与防御技术下)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、口令攻击的综合应用1、Windows NT, 2000口令攻击2、Windows XP, 2003口令攻击3、Unix系统口令攻击4、远程口令攻击 二、口令攻击的防御1、口令攻击防御概述2、保持口令的…

RS485转Profinet通讯

RS485转Profinet通讯 概述系统组成流量积算仪网关 软件总结 概述 一个支持RS485的流量积算仪的数据要被Profinet的PLC读取。制作一个网关&#xff0c;实现RS485到Profinet的转换。 系统组成 流量积算仪 支持RS485通讯&#xff0c;通讯协议是modbus RTU。采用功能码3可以读取…

非GUI模式下如何传参

非GUI模式下如何传参 Jmeter 有两种模式&#xff0c;GUI模式和非GUI模式&#xff0c;通常使用GUI模式编辑脚本&#xff0c;使用非GUI模式运行压测&#xff0c;官网上有强调&#xff0c;尽量使用非GUI模式&#xff0c;因为GUI模式下&#xff0c;jmeter UI组件本身在压测过程中会…

论文浅尝 | SimKGC:基于预训练语言模型的简单对比知识图谱补全

笔记整理&#xff1a;李雅新&#xff0c;天津大学硕士&#xff0c;研究方向为知识图谱补全 链接&#xff1a;https://dl.acm.org/doi/10.1145/3539597.3570483 动机 知识图谱补全 (KGC) 旨在对已知事实进行推理并推断缺失的链接。基于文本的方法从自然语言描述中学习实体表示&a…

Spring Boot 中的 @EnableConfigurationProperties 注解

Spring Boot 中的 EnableConfigurationProperties 注解 在 Spring Boot 中&#xff0c;EnableConfigurationProperties 注解是一个非常有用的注解&#xff0c;它可以用于启用对特定配置类的支持。在本文中&#xff0c;我们将深入探讨 EnableConfigurationProperties 注解&…

ST CubeMX 实现6对PWM同步输出/互补输出/三相PWM输出

频率为1KHz的6对PWM波形 原理:定时器1为主模式,定时器8为从模式,TIM1的定时器使能操作作为触发输出[TRGO]触发TIM8并使能TIM8的计数器,同时输出两路频率、占空比以及脉冲数量(小于256个,高级定时器重复计数功能为8位)可调PWM波形。 Tim1 参数配置 Tim8参数配置 未同步输出…

CC2530 GPIO口输出配置说明

第一章 原理图分析 CC2530核心板上带有两颗晶振:第一颗频率为32MHZ,第二颗频率为32.768KHZ CC250正常运行的时候,需要一个高频的时钟信号和一个低频的时钟信号。 高频时钟信号,主要供给CPU,保证程序的运行。 低频时钟信号,主要供给看门狗、睡眠定时器等片上外设。 按…

【强化学习】常用算法之一 “TRPO”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

StorageGRID——开放式的 S3 对象存储,可大规模管理非结构化数据

StorageGRID——开放式的 S3 对象存储&#xff0c;可大规模管理您的非结构化数据 专为混合多云体验打造的对象存储 StorageGRID 通过简化的平台为对象数据提供更强大的数据管理智能。由于 StorageGRID 利用 S3&#xff0c;因此可以轻松地连接混合云工作流&#xff0c;提供流畅…

C++ - 20230628

一. 思维导图 二. 练习 1) 总结类和结构体的区别 本身的访问级别不同struct是值类型&#xff0c;class是引用类型struct在栈&#xff0c;适合处理小型数据。class在堆区&#xff0c;适合处理大型逻辑和数据。 2) 定义一个矩形类&#xff08;Rectangle&#xff09;&#xff…