1.函数的概念

在JS中,可能会定义非常多的相同代码或者功能相似的代码 这些代码可能需要大量重复的使用。这个时候我们就可以使用JS中的函数。

函数是封装了一段可以被重复使用的代码块。目的 就是让大量代码重复使用。

实例

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
alert("Hello World!");
}
</script>
</head> <body>
<button onclick="myFunction()">点击这里</button>
</body>
</html>

定义了一个button 当button被点击的时候 执行myFunction()函数 提示用户一些信息

2.函数的使用

JavaScript 函数语法

函数就是包裹在花括号中的代码块 前面使用了关键字function:

例如:

function myFunction() {
这里是要执行的代码块
}

function 声明函数的关键字 全部小写

函数不调用 自己不执行

当函数被调用的时候 会执行函数內的代码块

可以在某件事发生时直接调用函数(比如当用户点击按钮时) 并且可由JavaScript在任何位置调用

JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

调用带参数的函数

在调用函数时,您可以向其传递值,这些值被称为参数。
这些参数可以在函数中使用。
您可以发送任意多的参数,由逗号 (,) 分隔:

myFunction(argument1,argument2)

当你声明函数的时候 请把参数变作变量来声明

function myFunction(var1,var2)
{
这里是要执行的代码
}

变量和参数必须以一致的顺序出现 第一个变量就是第一个被传递的参数的给定的值 依次类推

如果实参的个数和形参的个数一直 则正常输入结果

如果实参和形参的个数不一致,如果多于形参个数 去形参个数的实参

如果实参的个数小于形参的个数 那就是一个其中的参数存在undefined  如果是数字类型的返回NaN

实例:

<body>
<button onclick="myFunction('tian','CEO')">点我啊</button>
<script> function myFunction(name,job) {
alert("welcome" +name +", the" +job);
} </script>
</body>

带有返回值的函数
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。

如果有return 返回的是值  如果没有return会返回undefined

function myFunction()
{
var x=5;
return x;
}

上面的函数会返回值 5。
注释:整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。
函数调用将被返回值取代:

var myVar=myFunction();

myVar 变量的值是 5,也就是函数 "myFunction()" 所返回的值。
即使不把它保存为变量,您也可以使用返回值:

document.getElementById("demo").innerHTML=myFunction();

"demo" 元素的 innerHTML 将成为 5,也就是函数 "myFunction()" 所返回的值。
您可以使返回值基于传递到函数中的参数:

实例
计算两个数字的乘积,并返回结果:

function myFunction(a,b)
{
return a*b;
} document.getElementById("demo").innerHTML=myFunction(4,3);

"demo" 元素的 innerHTML 将是:12

在您仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:

function myFunction(a,b)
{
if (a>b)
{
return;
}
x=a+b
}

如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和。

局部的JavaScript 变量

在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。

全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

JavaScript变量的生存期

JavaScript变量的生命期从他们被声明的时间开始

局部变量会在函数运行以后被删除

全局变量会在页面被关闭后被删除。


向未声明的JavaScript 变量来分配值。

如果 你把值分配给尚未声明的变量 该变量将自动作为全局变量声明

carname="Volvo";

将声明一个全局变量carname 就算是他在函数內执行。

arguments 的使用

当我们不确定有多少个参数传递的时候,可以使用arguments来获取。在js中 arguments实际上是当前函数的一个内置对象 所有函数都内置了一个

arguments对象。arguments对象存储了传递的所有实参。

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//arguments展示形式是一个伪数组 因此可以进行遍历 伪数组具有以下特点
//具有length属性 可以按照索引访问存储 不能使用push pop等方法
function fn() {
console.log(arguments);//里面存储了传递的所有实参
}
fn(1, 2, 3);
</script>
</head>

函数可以调用另一个函数

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
function fn1() {
console.log(11);
} function fn2() {
fn1()
}
</script>
</head>

函数的第二种声明方式

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//第二种声明方式 匿名函数
var fun = function () {
console.log('我是函数表达式');
}
fun();
//fun 是变量名 不是函数名
//函数表达式方式声明方式跟变量神明方式差不多 只不过变量里面存的是值
//而函数表达式里面存的是函数。
//也可以传递参数
var fun1 = function (name) {
console.log(name);
}
fun1();
</script>
</head>

HTML 学习笔记 JavaScript (函数)的更多相关文章

  1. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  2. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  3. 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果

    学习笔记---Javascript事件Event.IE浏览器下的拖拽效果     1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcE ...

  4. matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...

  5. [JS学习笔记]Javascript事件阶段:捕获、目标、冒泡

    当你在浏览器上点击一个按钮时,点击的事件不仅仅发生在按钮上,同时点击的还有这个按钮的容器元素,甚至也点击了整个页面. 事件流 事件流描述了从页面接收事件的顺序,但在浏览器发展到第四代时,浏览器开发团队 ...

  6. swift学习笔记2——函数、闭包

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  7. HTML 学习笔记 JavaScript(面向对象)

    现在让我们继续跟着大神的脚步前进 学习一下JavaScript中的面向对象的思想,其实作为一个iOS开发者,对面向对象还是比较熟悉的,但是昨晚看了一下Js中的面向对象,妈蛋 一脸萌比啊.还好有大神.让 ...

  8. haskell学习笔记_函数

    一开始学习函数式编程语言就被告知函数式编程语言是一种“定义式”的语言,而不是一种命令式的语言,在学习haskell的函数语法时,此感觉更加强烈,haskell的函数定义倾向于一种类似C++里面的swi ...

  9. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

随机推荐

  1. Android Animation学习(四) ApiDemos解析:多属性动画

    Android Animation学习(四) ApiDemos解析:多属性动画 如果想同时改变多个属性,根据前面所学的,比较显而易见的一种思路是构造多个对象Animator , ( Animator可 ...

  2. iOS中sqlite版本号

    https://github.com/yapstudios/YapDatabase/wiki/SQLite-version-(bundled-with-OS) https://github.com/y ...

  3. svn黄色叹号解决

    客户端是TortoiseSVN的话,在该文件或文件夹上点右键,选择TortoiseSVN——revert

  4. 解决由OpenShift自带的APC加速器造成的代码无法及时生效的问题

    如果你在使用你的Openshift时出现了这样的问题,那就说明APC加速器导致了此故障 1.上传后的代码运行效果没有变化 2.Wordpress翻来覆去自己重复升级一个版本(←Wordpress在自嗨 ...

  5. RFID应用范围

    RFID应用范围 (1)物流: 物流过程中的货物追踪,信息自动采集,仓储应用,港口应用,邮政,快递 (2)零售: 商品的销售数据实时统计,补货,防盗 (3)制造业: 生产数据的实时监控,质量追踪,自动 ...

  6. sql server使用中遇到的问题记录

    一.sql server 不能连接远程服务器,但可以连接本地的数据库 我目前用的是sql server 2012 sp1,用着用着突然就不能连接远程服务器上的数据库了,崩溃了一天... 修复试了,卸载 ...

  7. ofbiz 本地化及邮件设置126邮箱

    ofibz登陆功能有通过电子邮件找会密码的功能,但找回密码功能需要配置一个发送email的邮箱账号和smtp服务器的配置,具体配置如下: 1:在ofbiz数据库的表product_store_emai ...

  8. 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知

    摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknow ...

  9. Python所有的错误都是从BaseException类派生的,常见的错误类型和继承关系

    https://docs.python.org/2/library/exceptions.html#exception-hierarchy BaseException +-- SystemExit + ...

  10. golang和vim-go安装配置

    一.Golang安装 1.下载golang安装包http://golangtc.com/download,我这里下载的是go1.6rc2.linux-amd64.tar.gz. 2.解压到安装目录,我 ...