麋鹿鲁哟 麋鹿鲁哟
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
    • JavaScript 基础
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 面试题库

    • HTML
    • CSS
    • jQuery
    • Vue
    • 零碎
  • 面试心得

    • 杂言碎语
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub

麋鹿鲁哟

前端小菜鸡(✪ω✪)
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
    • JavaScript 基础
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 面试题库

    • HTML
    • CSS
    • jQuery
    • Vue
    • 零碎
  • 面试心得

    • 杂言碎语
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub
  • 简介
  • 变量
  • 数据类型
  • 运算符
  • 流程语句
  • 数组
  • 函数
    • 1. 定义方法
    • 2. 调用方法
    • 3.方法
      • apply
      • call
      • toString
    • 4. arguments 对象
    • 5. 函数参数
    • 6. 指针标识
      • 6.1 this
      • 6.2 callee
      • 6.3 prototype
      • 6.4 constructor
    • 7. 箭头函数 (ES6)
    • 8. 闭包
  • 字符串函数
  • 正则表达式
  • DOM 基本操作
  • Window 对象
  • JS 对象
  • JSON
  • Cookie
  • JavaScript 基础
麋鹿鲁哟
2020-07-20

函数

# 1. 定义方法

1. 静态方法

function 函数名([虚参列表]){
  函数体;
  [return[函数返回值;]]
}
1
2
3
4

2. 动态匿名方法

var 函数名 = new function(["虚参列表"],"函数体")
1

3. 直接量方法

函数名 = function([虚参列表]){函数体;}
1

# 2. 调用方法

2.1 直接调用

函数名(实参列表)
1

2.2 链接中调用

<a href="javascript:函数名()">a标签</a>
1

2.3 在事件中调用

事件类型 = "函数名()"
1

2.4 递归调用

在函数体内部调用函数自身

function 函数名(){
  代码
  函数名();
}
1
2
3
4

# 3.方法

# apply

将函数作为对象的方法来调用,将参数以数组形式传递给该方法

语法

function.apply(thisObj,[arg1,arg2,....argN])

# call

将函数作为对象的方法来调用,将指定参数传递给该方法

语法

function.call(thisObj, arg1,arg2,...argN)

var foo = {
  value: 1
};
function bar() {
  console.log(this.value);
}
bar.call(foo); // 1
//call 改变了 this 的指向,指向到 foo
//bar 函数执行了
1
2
3
4
5
6
7
8
9

# toString

返回函数的字符串表示

# 4. arguments 对象

arguments是一个对应于传递给函数的参数的类数组对象。

arguments对象是所有(非箭头)函数中都可用的局部变量。

属性

4.1 length

获取函数实参的长度

4.2 arguments.callee

返回当前正在指向的函数

严格模式下,无法使用。

function test() {
  console.log(arguments.callee) 
}
test();  //fn test
1
2
3
4

4.3 caler

返回调用当前正在执行函数的函数名

# 5. 函数参数

参数类型

5.1 形参

定义函数时使用的参数,接收调用该函数时传递的参数

5.2 实参

调用函数时传递给函数的实际参数

特性

  1. 参数个数没有限制;

实参 < 形参: 多余形参 = undefined

实参 > 形参: 多余形参被忽略

  1. 参数的数据类型没有限制;

  2. 通过 arguments 对象访问参数数组

  3. 参数始终按值传递

**基本类型:**传值

**引用类型:**传址

# 6. 指针标识

# 6.1 this

指向当前操作对象

# 6.2 callee

指向参数集合所属函数

# 6.3 prototype

指向函数附带的原型对象

# 6.4 constructor

指向创建该对象的构造函数

# 7. 箭头函数 (ES6)

和普通函数的区别

  1. 不绑定this,arguments
  2. 更简化的代码语法。

不绑定this

箭头函数的 this 始终未定义的 this

不绑定arguments

如果你在箭头函数中使用arguments参数不能得到想要的内容。

function(){
    console.log('hello')
}
//写成箭头函数后如下:
()=> conosle.log('hello')
1
2
3
4
5

# 8. 闭包

JavaScript 变量属于本地或全局作用域。

全局变量能够通过闭包实现局部(私有)。

闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。

直观的说就是形成一个不销毁的栈环境。

var add = (function () {
    var counter = 0;
    return function () {return counter += 1;}
})();

console.log(add());  // 1
console.log(add());  // 2
console.log(add());  // 3
1
2
3
4
5
6
7
8

变量 add 的赋值是自调用函数的返回值。

这个自调用函数只运行一次。它设置计数器为零(0),并返回函数表达式。

这样 add 成为了函数。最“精彩的”部分是它能够访问父作用域中的计数器。

这被称为 JavaScript 闭包。它使函数拥有“私有”变量成为可能。

计数器被这个匿名函数的作用域保护,并且只能使用 add 函数来修改。

闭包指的是有权访问父作用域的函数,即使在父函数关闭之后。

编辑
上次更新: 2021/04/12, 9:04:00
数组
字符串函数

← 数组 字符串函数 →

最近更新
01
《聪明人使用方格笔记本》
07-28
02
《穷爸爸富爸爸》
07-28
03
《小狗钱钱》
07-28
更多文章>
Theme by Vdoing | Copyright © 2019-2023 麋鹿鲁哟 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式