前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >05JavaScript函数

05JavaScript函数

作者头像
Dreamy.TZK
修改2020-04-10 18:02:00
3050
修改2020-04-10 18:02:00
举报
文章被收录于专栏:小康的自留地小康的自留地

函数声明

代码语言:javascript
复制
// 函数声明方式
function name() {
  // code
}
// 函数表达方式
var name = function () {
  // code
};

函数与变量同名时的问题

  1. 使用函数声明方式时 变量会覆盖函数,与顺序无关
代码语言:javascript
复制
var fn = "message";

function fn() {
  return 100;
}

console.log(fn); //输出message
fn();//报错 TypeError: fn is not a function
  1. 使用函数表达式方式时 函数会覆盖变量(变量先声明,函数后声明),与顺序有关。 简单来说就是变量的重复声明
代码语言:javascript
复制
var fn = "message";

var fn = function () {
  return 100;
};

console.log(fn); //输出 [Function: fn]

所以我们的得出结论:

  • 函数的声明方式和函数的表达式方式,在内存的结构上应该是不同的
  • 当使用函数声明方式时,变量名与函数名同名时,变量会覆盖函数

函数参数

传入参数数量的情况

  • 函数形参与实参个数相同 正常运行
  • 传入实参少于形参个数 不报错,但少传入的参数会变成undefined
  • 传入实参多余形参个数 不报错,多余的参数会舍弃
代码语言:javascript
复制
function test1(a, b) {
  console.log(a, b);
}
test1(1);

test1(1, 2, 3);

情况

参数a

参数b

参数c

结果

正常传入

传入

传入

不涉及

正常运行

少传入一个参数

传入

不传入

不涉及

正常运行,但b参数会称为undefined

多传入一个参数

传入

传入

传入

正常运行,但b参数会被舍弃掉。

利用JavaScript第二个特性(少传入不报错),我们可以在一个函数中实现多个不同的功能。

代码语言:javascript
复制
function test1(a, b) {
  console.log(a, b);
  if (b === undefined) {
    console.log("undefind");
  }
}

解决第三个问题:

因为不定义参数并不会导致函数报错,因此函数定义时可以不必声明形参,利用JavaScript提供的一个属性可以获得传入参数。

代码语言:javascript
复制
function test() {
  console.log(arguments.length); //输出 4
  console.log(arguments); // 输出 [Arguments] { '0': 1, '1': 2, '2': 3, '3': 4 }
  console.log(arguments[0]); //可以以数组方式进行取值 输出1
}
test(1, 2, 3, 4);

函数返回值的作用

  1. 函数返回值 也就是一个函数返回的东西
  2. 阻止代码执行 页面开发时,当return false时,阻止DOM事件的冒泡 return语句后所有的语句都不执行。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数声明
  • 函数与变量同名时的问题
  • 函数参数
  • 函数返回值的作用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档