自定义函数定义
1.函数通过function关键字创建,函数创建格式:
function 函数名称([参数,...]){ 代码段; return 返回值; }
注意事项:
- 函数名称不要包含特殊字符
- 函数名称最好含义明确
- 函数名称最好遵循驼峰标记法或者下划线法
- 函数名称严格区分大小写
- 函数名称如果重复会产生覆盖
- 函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数
- 函数通过return加返回值,如果没有return 默认返回undefined
- 函数不调用不执行
匿名函数
- 函数表达式可以存储在变量中,变量也可以作为一个函数使用
- 可以将匿名函数作为参数传递给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能
- 可以通过匿名函数来执行某些一次性的任务
通过Function()构造函数
通过内置JavaScrip函数构造器(Function)定义:
- var myFunction=new Function('a','b','return a+b');
- var myFunction=function(a,b){return a+b;};
注意:
- 以上两种方式是等价的
- 尽量避免使用new关键字
调用函数
- 作为一个函数调用:
- 通过函数名称()进行调用,如果有参数传递相应参数即可
- 在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window对象).所以函数会自动变为window对象的函数。也可以通过window.函数名称()进行调用
- 全局对象
- 当函数没有被自身的对象调用时,this的值就会变成全局对象。在web浏览器中全局对象是浏览器窗口window对。
- 函数作为全局对象调用,会使this的值称为全局对象。使用window对象作为一个变量容易造成程序崩溃
- 函数作为方法调用
- 可以将函数定义为对象的方法进行调用
- 使用构造函数调用函数
- 如果在函数调用前使用了new关键字,则调用了构造函数
- 作为回调函数调用函数
- call()
- apply()
参数
- 函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,某人设置为undefined
- 在调用函数时候如果传递参数超过了定义时参数,js会忽略掉多余参数
- js中不能直接写默认值,可以通过arguments对象来实现默认值效果
- 可以通过arguments对象实现可变参数的函数
- 通过值换地参数在函数体内对变量做修改不会影响变量本身
- 通过对象传递参数在函数体内对变量做更改会影响变量本身
变量的作用域
- 局部变量
- 在函数体内声明的变量,仅在函数体内可以用
- 全局变量
- 函数体外生命的变量,在变量声明开始到脚本结束都可以使用
- 注意
- 尽量控制全局变量的数量,容易引发bug
- 最高使用var语句来声明变量
javascrip全局函数
待续。。
特殊形式的函数
- 函数也是数据
- javascrip中的函数也是一种数据类型,只不过这种类型只有两个重要的特性
- 他们所包含的是代码
- 他们是可执行的
- javascrip中的函数也是一种数据类型,只不过这种类型只有两个重要的特性