提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

函数——在javascript中函数是一段可以被执行或调用任意次数的JavasScript代码,在数据类型中属于"function"。
语法:
function 函数名( ){语句}
语法:
var 函数名 = function( ){语句};
使用函数声明形式创建的函数function函数 (){ }它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数 使用函数表达式创建的函数,不会被提前声明,所以不能被提前调用
function fun1( [形参1,形参2,……形参n]){语句}
可以在函数的( )中来指定一个或多个形参,多个形参之间用,隔开,声明形参就相当于在函数内部声明了对应的变量,但并不赋值。
fun1 ( 实参1,实参2,……实参你);
在调用函数时,可以在( )指定实际参数,实参将会赋值给函数中对应的形参,浏览器不会检查,实参的数据类型以及个数,所以何种数据类型包括可以是函数,对象,或者多个,一个实参均可,多余实参不会被赋值,实参的数量少于形参的数量,则没有对应实参的形参将是 undefined,或者实参没有传递,形参也是undefined。
返回类型可以是任意数据类型,包括函数,以及对象。
return 后的值将会作为函数的执行结果返回,可以定义一个变量,来接收该结果,可以在调用函数时,设置一个变量,变量的值就是函数的执行结果
函数中return 后的语句都不会被执行 如果return语句不跟任何值就相当于返回一个undefined 如果函数中不写return,则也会返回undefined return后可以跟任何数据类型的值
- function sum(a,b,c ){
- var d=a + b + c;
- return d;
- alert("hello"); //函数中return 后的语句都不会被执行
- }
-
- var result = sum(1 , 2, 3 ); 后面半部分为调用函数
- console.log = ("result = " +result);
示例:(function( ){alert("我是一个立即函数~~~");}) ( );
就像如上例子,a( ) ( ) 可以理解为: a( )是 对象,只不过没有指定具体函数对象, 后面的()是调用函数
直接编写在script标签中的JS代码,都在全局作用域 全局作用域在页面打开时创建,在页面关闭时销毁 在全局作用域中有一个全局对象window,代表的是一个浏览器的窗口,由浏览器直接创建 在全局作用域中 所创建的变量都会作为window对象的属性保存 所创建的 函数都会作为window对象的方法保存 全局作用域中的变量都是全局变量,在页面的任意部分都可以访问
例如 var a=123;console.log(window.a); //也可以把该变量输出
调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁 每调用一次函数就会创建一个新的函数作用域,他们之间是互相独立的 在函数作用域中可以访问到全局作用域的变量,全局作用域中无法访问函数作用域的变量 当在函数作用域中操作一个变量时,它会先在自身作用域中寻找,如果有直接使用,如果没有则向上一级作用域中寻找,直到找到,如果在全局作用域中还没有找到,则会报错 ReferenceError 在函数中访问全局变量可以使用windown对象 在函数作用域也有声明提前的特性 ——使用var关键字声明的变量,会在函数中所有的代码执行之前被声明,只是没有被赋值,函数声明也会在函数中所有的代码执行前执行 在函数中不使用 var 声明的变量都会被作为全局变量
- var a=123;
- function fun(){
- alert(a);
- var a=456; //使用var 关键字声明的变量,在执行之前就已经被声明只是没有赋值,相当于在alert(a)之前有一句 var a; 所以会输出 undefined,未定义
- }
- fun();
- alert(a);
-
- 输出结果为: undefined
- 123