什么是参数?
参数就是JS的数据类型;如:数字、字符串、布尔、
函数、对象、未定义...
先举一个简单的例子:
function fn1(a,b){
alert(a+b);
}
fn1(100,'px');//第一个参数是函数中的a,第二个是b;
这里的a和b,可以是任何数据类型,参数可以根据自己的需求放N多个。
函数作为参数时:
1.参数为匿名函数时,直接调用;
例:
function fn3(fn){
fn()
};
fn3(function (){alert(a)}); //结果是a
2.参数为有名字的函数时,调用时不可以写小括号;
例:
function fn3(fn){
fn();
};
function fn4(){alert(4)};
fn3(fn4); //这里的参数就不可以写括号了。
传参的作用:
**重用代码:
1.尽量保证HTML代码结构一致,可以通过父级选取子
元素;
2.把核心主程序实现,用函数包起来;
3.把每组里不同的值找出来,通过传参实现;
作用域:在一个范围内,对数据进行读写操作;
域:空间、范围、区域....;
作用:读、写;
浏览器:
可以叫“JS解析器”运行JS步骤:
1."找一些东西":找var function 参数;
如:var a= 1;
找到a = 未定义;
注意:所有的变量,在正式运行代码之前,都提前赋了一个值:未定义;
如:fn1 = function fn1(){alert(2)}
注意:所有的函数,在正式运行代码之前,都是整个函数块;
说明:第一步的操作,就叫做JS的预解析;
预解析需要注意:
在预解析过程中,遇到重名的变量,只留下一个;
a.如遇到,变量和函数重名了,就只留下函数;
b.如遇到两个重名的函数,根据上下文关系,留下最后一个出现的函数;
2.逐行解读代码;
表达式:= 、 +、 -、 *、 /、 % 、++、 -- 、!、参数、 Number()....... 所有能够改变值的东西都叫表达式;
注意:表达式是可以修改预解析中的值;
-----------------穿插一道面试题----------------------
alert(a);
var a =1;
function a(){alert(2);}
alert(a);
var a =3;
alert(a);
function a(){alert(4);}
alert(a);
请问以上alert(a)弹出什么?
答案下章揭晓!~!