世界不止0和1 还有...
目录
函数进阶
基础知识
函数是将复用的代码块封装起来的模块,在JS中函数还有其他语言所不具有的特性,接下来我们会详细掌握使用技巧。
1.声明定义
在JS中函数也是对象函数是Function
类的创建的实例,下面的例子可以方便理解函数是对象。
标准语法是使用函数声明来定义函数
对象字面量属性函数简写
全局函数会声明在window对象中,这不正确建议使用后面章节的模块处理
当我们定义了 screenX
函数后就覆盖了window.screenX方法
使用let/const
时不会压入window
2.匿名函数
函数是对象所以可以通过赋值来指向到函数对象的指针,当然指针也可以传递给其他变量,注意后面要以;
结束。下面使用函数表达式将 匿名函数
赋值给变量
标准声明的函数优先级更高,解析器会优先提取函数并放在代码树顶端,所以标准声明函数位置不限制,所以下面的代码可以正常执行。
标准声明优先级高于赋值声明
程序中使用匿名函数的情况非常普遍
3.立即执行
立即执行函数指函数定义时立即执行
可以用来定义私有作用域防止污染全局作用域
使用 let/const
有块作用域特性,所以使用以下方式也可以产生私有作用域
4.函数提升
函数也会提升到前面,优先级行于var
变量提高
变量函数定义不会被提升
5.形参实参
形参是在函数声明时设置的参数,实参指在调用函数时传递的值。
形参数量大于实参时,没有传参的形参值为 undefined
实参数量大于形参时,多于的实参将忽略并不会报错
当没传递参数时值为undefined
6.默认参数
下面通过计算年平均销售额来体验以往默认参数的处理方式
使用新版本默认参数方式如下
下面通过排序来体验新版默认参数的处理方式,下例中当不传递 type 参数时使用默认值 asc。