一般把script标签内的js代码,放到body结束标签的前面。
函数
function 函数名(参数名){ 要执行的代码 }
//声名函数, 函数只有在调用时才会被执行
function fin(){
alert("胖胖");
}
//调用函数,这个函数名后的小括号就是调用函数的意思
alert(fin); //打印整个函数
fin(); //调用函数
//函数的小括号中可以有参数
// 参数可以分为两种:形参 与 实参
function show(str1,str2){ //str1 ,str2就是形参
alert(str1); //打印 胖胖
alert(str2); //打印 一点也不胖
alert(str1+str2);
}
show("胖胖","一点也不胖"); //调用时传的参就叫实参
//可以定义一个函数,然后把它做为一个值赋值一个变量;
var fin = function(){
alert("胖胖");
};
alert(fin);
fin();
//一样可以传参
var fin = function(num1,num2){
var sum = num1 + num2;
alert(sum);
};
fin(1,3);
return的使用
//return的第一个作用,可以返回函数的值;
function show(num1,num2){
var sum = num1+num2;
return sum; //在这里把sum给返回出来;
}
alert( show(3,9) ); //函数执行完成之后,这里会得到函数返回的值;
var num = show(3,9);
alert(num);
//return的第二个作用,可以终止函数的执行;
function fin(){
for(var i = 0; i < 5; i++){
alert("i的值:"+i);
break;
}
alert("11111");
return "OK"; //这里执行完return后,下面两句代码不会执行;
alert("22222");
alert("33333");
}
fin();
alert(fin());
function fin(){
alert("胖胖");
return undefined; //函数在最后面都会有一个默认的返回值,这个值就是undefined;
}
alert( fin() ); //这里会打印一个undeinfed;
arguments
//arguments 对象的作用:相当一个容器,传进来的实参都会保存到这个对象中来,没有定义形参时也是一样;
//每一个函数都有这个对象
function show(){
// alert(arguments);
alert(arguments.length);
alert(arguments[0]);
alert(arguments[1]);
}
show(1,5);
函数的类型
function show(){}
alert(typeof show); //打印是一个function;
对象
//对象的第一种创建方法,可以通过对象直接量创建;
var obj = {
"name":"小明",//这里必须是双引号,单引号不行。
"age":25,
"sex":"男",
count:function(){
var sum = 0;
for(var i = 0; i < arguments.length; i++){
sum += arguments[i];
}
alert(sum);
},
clothing:{
color:"red",
width:"100",
height:"100"
}
};
alert( obj.age );
alert( obj.name );
alert( obj["name"] ); //获取属性值的第二种方法
alert( obj.count(1,5) );
alert(obj.clothing.color);
alert(obj.color); //obj这个对象上没有color这个属性,但是访问这个属性时也不会报错。而是返回undefined;
//修改对象的属性值;
obj.age = 21;
alert(obj["age"]);
//添加;
obj.abc = 312;
alert(obj["abc"]);
//删除属性;
delete obj.abc;
alert(obj["abc"]);
函数的分类和函数参数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Keywords" content="关键字,关键词">
<meta name="Description" content="描述和简介">
<title>Title</title>
<style type="text/css">
*{margin:0;padding:0;}
body,ul,li,ol,dl,dd,p,h1,h2,h3,h4,h5,h6{ margin:0;}
a{text-decoration:none;}
img{border:none;}
ol,ul{list-style:none;}
</style>
</head>
<body>
<!--
函数的分类
1: 是否有名字: 有名函数 匿名函数
2: 能否直接加括号执行: 函数定义 函数表达式
1: 函数定义 和 函数表达式的区别
函数表达式能在大括号后面分号之前加小括号执行,函数定义这样子做的话是不可以执行的
函数表达式加特殊符号可以自执行 + - ~ !
函数定义加()处理之后 可以再加括号自执行
参数:
1 形参: 形参在小括号当中,命名规则和变量一样(字母 数字 _ $ 不能以数字开头)
2 实参: 函数执行时,真实传入的数据,可以是任意数据类型
3 参数的个数可以有多个,没有限制,且实参的个数可以比形参的个数多
x = 10 , y = 1
2x + 3x + 4y =
4 参数的个数不确定的时候,可以用不定参来做 arguments
5 当参数是有名函数时,名字不能四处加括号执行,也不能在形参函数中加括号执行
定义过程包括: 函数的参数
定义过程中,形参不仅只是定义,还会和实参进行对应赋值
形参相当于var了一个变量
-->
<div id="box"></div>
<script>
Fn();
function Fn(){
alert(1);
};
document.onclick = function (){
alert(2);
};
function Fn(){
alert(1);
};
Fn();
var An = function (){
alert(2);
};
An();
Fn();
function Fn(){
alert(1);
};
//函数定义加()处理之后 可以再加括号自执行
(function Fn(){
alert(1);
})();
//函数表达式能在大括号后面分号之前加小括号执行
var An = function (){
alert(2);
}();
+function (){
alert(3);
}();
-function (){
alert(4);
}();
~function (){
alert(5);
}();
!function (){
alert(6);
}();
Fn(2,3,5,6,7,1,1);//实参
function Fn(a,b,c,d,e){ //形参
alert(a+b+c+d+e);
};
Fn1(function An(){alert(1);});
function Fn1(x){
//alert(x);
x();
};
var a = function b(){
alert(1);
//b();
};
a();
sum(function (){alert(1);});
function sum(x){
x();
};
Fn(1,2,3,4);
function Fn(a,b,c,d){
alert(a+b+c+d);
};
//不定参求和 arguments
sum(1,3,7,4,1,1,1,1,1,100,120);
function sum(){
var x = 0;//定义一个变量接收和
//console.log(arguments);
for(var i = 0; i < arguments.length; i++){
x += arguments[i];
};
console.log(x);
};
</script>
</body>
</html>