Javascript—②函数

本文介绍了JavaScript中的函数概念,包括默认函数的使用方法、自定义函数的创建及调用方式,并讲解了函数参数和返回值的相关知识。

新手Perfect教程之Javascript②教程—函数

前言:上回我们是从hello world开始的,本期将会讲“函数”

在学自定义函数之前,先了解几个已经定义好的函数:

1 alert();                   //弹出消息对话框函数(JavaScript默认函数)
2 prompt();               //弹出输入对话框函数(JavaScript默认函数)
3 document.write();   //写字符到<body>里(JavaScript默认函数,document是一个默认对象,以后会讲到)

但是,你弹出对话框得有对话框内容吧;你写字符得有字符的内容吧……

如何确认内容呢?

我们就用函数的参数来确定,比如说这个:

1 alert("这里是参数");

但是必须注意,如果参数是字符串,就必须加引号(单、双引号均可,只要是字符串在这一对引号中间即可)

假如要是在字符串参数里还需要进行第二层引用,就用不同于该参数的引号,比如说:

alert("Hi! This is a 'String'.")     //双引号中引用的用单引号

或者:

alert('Hi! This is another "String".');         //单引号中引用的用双引号

(提示:这两种都正确,本教程使用第一种)

 这是部分Javascript的默认函数,那么,如何自己创建函数呢?

用function(){}即可自己创建函数,比如说这个最简单的函数框架:

1 function test(){
2 //这里写执行函数后的代码
3 }

在上面的代码中,function后面的“test”是一个自定义的函数名,自定义函数名是有要求的:

1.可以使用大小写字母(A-Z,a-z)

2.可以使用数字(0-9)

3.不能出现其他特殊字符(&、*、#、@、!、~、/、\等)

4.不能出现中文!(这是重中之重!因为Javascript不能识别中文变量名!)

下面这是个无参数的函数:

1 function noVar() {
2 alert("Hello World!");
3 }

为什么说是上面的函数是无参数的函数?因为上面的函数的函数名noVar后面的括号里没有定义参数。

参数也是可以自定义的,要求同自定义函数名。

下面这是个有参数的函数(Javascript里用“+”来代表两个变量相加):

1 function haveVar(var1) {
2 alert("Welcome! Your name is " + var1);
3 }

怎么调用函数?

调用函数很简单,可以直接在<body>的onload参数里调用:

1 <body onload="haveVar(John)">
2 //...
3 //...
4 //...
5 </body>

或者通过<input type="button">制作的按钮调用:

1 <body>
2 //...
3 //...
4 <input type="button" onclick="haveVar(John)" value="按钮" />  //点击按钮后执行haveVar函数,参数为John
5 //...
6 //...
7 </body>

看到这里,可能有的童鞋就得问了,为什么调用带参数的函数时参数不加引号?

因为假如参数加了引号,那么浏览器看到onclick=时就不知道onclick的参数是   “haveVar(”   还是   “)”   还是   “John”   还是   “haveVar(John)”   了。

(注意:如果参数或一个变量没有被赋值任何数据,那么就是英文单词“undefined”(翻译:未定义的))

函数也可以是有返回值的,这样的话函数返回返回值后,整个调用函数的内容就会变成返回值(即哪里调用函数,哪里就把函数看成一个变量),比如说:

1 function haveVar(var1,var2) {
2 var equal = var1 + var2;            //计算var1+var2的值并存入equal变量中
3 return equal;           //返回equal变量内容
4 }

假如调用这个函数时参数写上:haveVar(7,3),那么就会返回10。

————————The End————————

下期预告:新手Perfect教程之Javascript—③对象

我们下期再见!

作者:wy14abcd

未经允许不得转载

内容概要:本文围绕EKF SLAM(扩展卡尔曼滤波同步定位与地图构建)的性能展开多项对比实验研究,重点分析在稀疏与稠密landmark环境下、预测与更新步骤同时进行与非同时进行的情况下的系统性能差异,并进一步探讨EKF SLAM在有色噪声干扰下的鲁棒性表现。实验考虑了不确定性因素的影响,旨在评估不同条件下算法的定位精度与地图构建质量,为实际应用中EKF SLAM的优化提供依据。文档还提及多智能体系统在遭受DoS攻击下的弹性控制研究,但核心内容聚焦于SLAM算法的性能测试与分析。; 适合人群:具备一定机器人学、状态估计或自动驾驶基础知识的科研人员及工程技术人员,尤其是从事SLAM算法研究或应用开发的硕士、博士研究生和相关领域研发人员。; 使用场景及目标:①用于比较EKF SLAM在不同landmark密度下的性能表现;②分析预测与更新机制同步与否对滤波器稳定性与精度的影响;③评估系统在有色噪声等非理想观测条件下的适应能力,提升实际部署中的可靠性。; 阅读建议:建议结合MATLAB仿真代码进行实验复现,重点关注状态协方差传播、观测更新频率与噪声模型设置等关键环节,深入理解EKF SLAM在复杂环境下的行为特性。稀疏 landmark 与稠密 landmark 下 EKF SLAM 性能对比实验,预测更新同时进行与非同时进行对比 EKF SLAM 性能对比实验,EKF SLAM 在有色噪声下性能实验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值