说起函数,就不得不再提下JavaScript。
JavaScript
JavaScript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站点和 Web 应用程序之间的交互。
JavaScript组成
ECMAScript
描述了该语言的语法和基本对象;
什么才是 ECMAScript 呢?ECMA-262 标准(第 2 段)的描述如下:
“ECMAScript 可以为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的... ...”
DOM(Document Object Model)
描述了处理网页内容的方法和接口;
DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物。
BOM (Browser Object Model)
描述了与浏览器进行交互的方法和接口。
IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。
JavaScript是由ECMAScript、DOM、BOM 三部分组成,而 ECMAScript 则是它的语法核心。 而函数,则是 ECMAScript 的核心。今天我们不研究其他的,只是对其 函数 部分进行一个总结。
什么是函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
JavaScript 函数是被设计为执行特定任务的代码块。
JavaScript 函数会在某代码调用它时被执行。
分类
普通函数
语法
函数是由这样的方式进行声明的:关键字 function、函数名、一组参数,以及置于括号中的待执行代码。
函数的基本语法是这样的:
function functionName(arg0, arg1, ... argN) {
statements
}
//调用
functionName(arg0, arg1, ... argN)
⽆参函数
在定义函数时,如果函数名后⾯的 () 中没有定义参数,我们称为" ⽆参函数 "
有参函数
在定义函数时,如果函数名后⾯的 () 中定义了参数,我们称为" 有参函数 "
例:
// 无参函数
function myFunction() {
alert("Hello,JavaScript!!!")
}
// 函数的调用
myFunction()
// 有参函数
function sayHi(sName, sMessage) {
alert("Hello " + sName + sMessage);
}
// 函数的调用
sayHi('张三','好好学习')
// 有返回值函数
let speak = function (){
alert('好好学习')
}
speak()
箭头函数
ES6允许使用箭头(=>)定义函数,箭头函数提供了一种更加简洁的函数书写方式,箭头函数多用于匿名函数的定义。
let fn = (arg1,arg2,arg3) => {
return arg1+arg2+arg3;
}
alert(fn(1,2,1));
如果只有一个参数 省略小括号
let fn = num => {
return num * 10;
}
业务只有一行代码
let fn = num => num * 10;
this的指向
箭头函数中 this 的指向声明是 是所在作用域下的 this值
箭头函数时 不会改变this的指向
let fn = ()=>{
// 当前this表示的是window
console.log(this);
}
fn();
例:
let school = {
name:'xxx学校',
// getName: ()=>{
// // 当前this 表示的是window
// console.log(this)
// }
getName(){
let suvFun = ()=>{
// 当前this表示的是school对象
console.log(this);
}
suvFun();
}
}
school.getName();
箭头函数的注意点:
- 如果形参只有一个,则小括号可以省略;
- 函数体如果只有一条语句,则花括号可以省略,并省略return,函数的返回值为该条语句的执行结果;
- 箭头函数 this 指向声明时所在作用域下 this 的值;
- 箭头函数不能作为构造函数实例化;
- 不能使用 arguments;