3.3 js函数

1.函数语法:

函数声明的方式:
function 函数名(参数1,参数2…){
//函数体;
}
函数调用:函数名(参数1,参数2…);

函数内不一定都指定返回值。

如果需要指定返回值,可用 return 跟上要返回的值来指定返回值。

位于return语句后面的代码在 return 语句所在的作用域下都不执行(如果 return 语句在一个函数体内,那么这个 return 语句所在的作用域便是这个函数体内)。

如果return语句后面没有跟返回值,那么返回值为undefined。适用于不需要返回值的场景中。



2.函数的参数

js中函数的参数跟别的语言函数的参数不同。

假如你定义了一个函数,有三个参数,在的调用这个函数的时候,你可以不传入参数,你也可以传入2个3个4个参数,

原因在于js中的函数的参数在内部是以一个数组(这个数组可能包含0个或者多个值)的形式表示的。

你可以通过arguments这个对象来访问函数的参数。arguments是一个数组对象。

如下面例子:

// js中函数的参数  arguments
function person(name,age,height){
    console.log("姓名" + arguments[0] + "年龄" + arguments[1] + "身高" + arguments[2]);
    console.log(arguments.length);
}
person("lijinwen",10,"180cm");
打印出如下值:
//  姓名lijinwen年龄10身高180cm
//  3

根据js函数的参数的这个特性,我们其实可以模仿函数的重载功能。即根据函数参数的个数不同,而得到不同的结果。但是这个并不是函数的重载。

// 模仿函数重载功能
function fun(){
    if(arguments.length == 2){
        console.log("两个参数");
    }else if(arguments.length == 3){
        console.log("三个参数");
    }
}
fun(1,2);//两个参数
fun(1,2,3);//三个参数


3.函数没有重载。如果两个同名的函数,那么后面的函数将覆盖前面的函数。

// 函数没有重载
function sum(a,b){
    console.log("两个参数");
}
function sum(a,b,c){
    console.log("三个参数");
}
sum(1,2);//三个参数
sum(1,2,3);//三个参数

我们原本想如果往函数中传入2个参数,则调用第一个函数打印出”两个参数”,如果3个参数,调用第二个函数打印出”三个参数”。
看上面的代码sum(1,2)有2个参数,结果打印出“三个参数”,那么可以断定它调用的是第二个函数。
由此证明,多个同名函数的情况下,最后一个函数将会覆盖上面的同名函数。这种又称作重载,因此 js 中函数没有重载。

时间: 2024-11-14 14:55:28

3.3 js函数的相关文章

JS函数大全 莫名其妙找到的

1 .document.write(""); 输出语句 2 .JS中的注释为// 3 .传统的HTML文档顺序是:document->html->(head,body) 4 .一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5 .得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6 .

JSF页面中使用js函数回调后台bean方法并获取返回值的方法

由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的,很可能会误导使用者. 相对来说,看国内的那些仅仅是翻译过来的文章或书籍不如直接看国外的官方文档或资料来的实在,在我讲述jsf页面中如何使用js调用后台bean方法之前,先给大家说几个国外的资料.在primefaces官方网站上,你可以搜索到几乎所有你需要的东西,primefaces官网为:http:

webBrowser调用外部js文件和js函数(转载)

原文链接:http://fy5388.blog.163.com/blog/static/56499537201012594314130/ webBrowser调用外部js文件和js函数 '第一种方法:webbrowser动态调用html和js代码,都是动态的:代码示例: webBrowser1.Navigate("about:blank");webBrowser1.Document.OpenNew(True);webBrowser1.Document.Write("<H

JavaScript入门:006—JS函数的定义

JS函数的声明.声明函数的格式如下: function 函数名(参数列表){ //函数语句: return 返回值; } 来看具体的函数声明.1.普通函数 <script type="text/javascript"> function ShowHint() { alert("普通函数"); } </script> 2.带参数的函数 <script type="text/javascript"> functio

一个奇怪的JS函数

今天在分析一个jQuery插件源码的时候,发现了一个奇怪的函数. // add leading zeros var pad = function(x){return (1e15+""+x).slice(-2)}; 首先1e15是什么意思? 也不是十六进制表示法. 不管三七21,直接F12打开命令窗口,执行下看看,结果是1后面有15个0. 原来1e15是科学计数法,表示1乘以10的15次方. var y=123e5; // 12300000 var z=123e-5; // 0.0012

Button的Click事件与js函数的两种不同顺序触发方式

先执行js,或者先执行Click事件,最近就遇到了这个问题,开始弄了两个按钮分别执行,那才叫一个蛋疼... 1.先执行js,再执行Button的Click函数 <asp:Button ID="btn_delete" runat="server" Text="提交" onclick="button1_Click"/> 前台js为 <script language="javascript"&g

点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数

页面跳转同时执行js代码$(function(){});url参数传递 标题的前半部分其实不必赘述,按钮也可以换成超链接.. 假设是需要在A页面上的一个按钮,点击后跳转到B页面,传一些参数后且并B页面的某个js函数可以执行~~ 关键在于如何跳转到目标页面之后并「接着」执行「目标页面的js函数」.原因是目标页面的某个js函数原来是需要点击该页面的按钮或超链接才能触发的,但现在需要在跳转到B页面后立即执行! 先不想是从A页面跳转到B页面,假设你想在B页面一打开就执行的话,是需要把代码逻辑写在$(fu

C#调用htmlfile组件,并执行js函数

前一篇我测试了vba调用htmlfile做反混淆,并执行js函数的代码.本文换成C#实现. 本文地址:http://www.cnblogs.com/Charltsing/p/CSharpEval.html 联系QQ:564955427 C#调用com组件需要使用CreateInstance,当然,我们也可以通过反编译vb.net里面的CreatObject来修改成C#代码.我从网上下载了一个 [SecurityPermission(SecurityAction.Demand, Unmanaged

ASP.NET后台调用前台JS函数的三种常见方法

第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun();"); 此方法只能在Onload中或者类似于onload的初始化过程中添加才有效.并且是先执行脚本函数,同时无法改变执行顺序. 第二种:使用Response.Write方法进行调用 例如,像我们经常会使用到的Response.Write("<scripttype='text/ja

js 函数的陷阱

function test(){ return "hello"; } alert(test);这个显示是变量test的值,它正好是个函数,这是第一个警告对话框显示的结果: function test(){ return "hello"; } alert(test()): 圆括号()告诉它执行函数test,并显示它的返回值,就像下面这样: hello: function addInput(name,value){ do something; } alert(addIn