JS函数的初步
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS函数初步</title>
</head>
<body>
<script type="text/javascript">
/*
1.JS中的函数:
等同于java语言中的方法,函数也是一段可以被重复利用的代码片段。
函数一般都可以完成某个特定的功能。
2.回顾java中的方法:
[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
3.JS中的变量是一种弱类型的,那么函数应该怎么定义呢?
语法格式:
第一种方式:
function 函数名(形式参数列表){
函数体
}
第二种方式:
函数名 = function(形式参数){
函数体
}
JS中的函数不需要指定返回值类型。什么类型都行。
*/
function sum(a,b){
//a,b 都是局部变量.他们都是形参(a,b 都是变量名,变量名随意。)
alert(a + b);
}
//函数必须调用才能执行/
//sum(10, 20);
//定义函数sayHello
sayHello = function(username){
alert("hello" + username);
}
//调用函数
//sayHello("zhangsan");
</script>
<input type="button" value="hello" onclick="sayHello('javk')" />
<input type="button" value="计算10和20的和" onclick="sum(10,20)" />
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS函数初步</title>
</head>
<body>
<script type="text/javascript">
/*
java中的方法有重载机制,JS的函数能重载吗?
JS当中的函数在调用的时候,参加的类型没有限制,并且参数的个数也没有限制,JS就是这么随意(弱类型)。
重载的含义:
方法名或函数名一样,形参不同(个数、类型、顺序)
*/
function sum(a,b){
return a + b;
}
//调出函数sum
var retValue = sum(1,2);
alert(retValue);
var retValue2 = sum('jack'); // jack赋值给a变量,b变量没有赋值系统默认赋值undefined
alert(retValue2); //jackundefined
var retValue3 = sum();
alert(retValue3);// NaN (NaN是一个具体存在的值,该值表示不是数字。)
var retValue4 = sum(1,2,3);
alert(retValue4);// 3
// 在JS当中,函数的名字不能重复,当函数名重复的时候,后声明的函数会将之前的同名函数覆盖.
function test1(username){
alert('test1')
}
function test1(){
alert('test test')
}
test1("list");//执行第二个
</script>
</body>
</html>
JS的局部变量和全局变量
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS的局部变亮和全局变量</title>
</head>
<body>
<script type="text/javascript">
/*
全局变量:
在函数体之外声明的变量属于全局变量,全局变量的生命周期是:
浏览器打开时声明,浏览器关闭时销毁,尽量少用。因为全局变量会一直在浏览器的内存当中,耗费内存空间。
能使用局部变量尽量使用局部变量。
局部变量:
在函数体当中声明的变量,包括一个函数的形参都属于局部变量,
局部变量的声明周期是:函数开始执行时局部变量的内存空间开辟,函数结束之后,局部变量内存空间释放。
局部变量生命周期较短。
*/
var i = 100;
function accessI(){
//访问的是全局变量
alert("i = " + i);
}
accessI();
//全局变量
var username = "jack";
function accessusername(){
//局部变量
var username="lisi";
//就近原则,访问局部变量
alert("username = " + username)
}
//调用函数
accessusername();
//访问全局变量
alert("username = " + username);
function accessAge(){
var age = 20;
alert("年龄 = " + age);
}
accessAge();
//报错
//alert("age=" + age);
//以下语法是很奇怪的
function myfunction(){
//在这里没有使用var的时候,这个变量无论在哪里声明都是全局变量
myname = "asdf";
}
//访问函数
myfunction();
alert("myname = " + myname); //myname = asdf
</script>
</body>
</html>