JavaScript函数学习笔记

函数

  • JavaScript 函数是被设计为执行特定任务的代码块。
  • JavaScript 函数会在某代码调用它时被执行。(定义一次,多次调用)
  • JavaScript函数是参数化的

函数参数(Function parameters)是在函数定义中所列的名称。
函数参数(Function arguments)是当调用函数时由函数接收的真实的值。
在函数中,参数是局部变量。
调用时会为形参提供实参的值

函数返回

当 JavaScript 到达 return 语句,函数将停止执行。
如果函数被某条语句调用,JavaScript 将在调用语句之后“返回”执行代码。
函数通常会计算出返回值。这个返回值会返回给调用者

函数是对象

JavaScript 中的 typeof 运算符会为函数返回 “function”。
但是最好是把 JavaScript 函数描述为对象。
JavaScript 函数都有属性和方法。
arguments.length 会返回函数被调用时收到的参数数目

函数定义

JS中的函数:把一段需要重复使用的代码,用function语法包起来,方便重复调用,分块和简化代码。复杂一点的,也会加入封装、抽象、分类等思想。

  • 方式一: function 方法名(){ //要执行的代码 }

  • 方式二:ES6中声明方式箭头函数,()=>{}

  • 方式三:匿名函数,将函数存到变量里 var func = function(){};

函数表达式

JavaScript 函数也可以使用表达式来定义。
函数表达式可以在变量中存储

var x = function (a, b) {
   return a * b};

把函数存到变量,或将函数存到数组的对应位置里等,调用时通过变量或数组对应位置进行调用。调用时需要写括号。

  • 表达式定义的函数无法进行变量提升
  • 表达式定义函数的函数名只能在函数体内部调用函数

箭头函数

箭头函数允许使用简短的语法来编写函数表达式。
您不需要 function 关键字、return 关键字和花括号。
箭头函数没有自己的 this。它们不适合定义对象方法。
箭头函数未被提升。它们必须在使用前进行定义。
使用 const 比使用 var 更安全,因为函数表达式始终是常量值。
如果函数是单个语句,则只能省略 return 关键字和大括号。

const x = (x, y) => x * y;
const x = (x, y) => {
    return x * y };

Function() 构造器

正如在之前的例子中看到的,JavaScript 函数是通过 function 关键词定义的。
函数也可以通过名为 Function() 的内建 JavaScript 函数构造器来定义。

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);

函数命名

任何合法的javascript标识符都可以作为函数的名称。
约定俗成的内容:(非ECMAScript语法,但是为了便于开发者理解和识别,约定的函数命名规范。)
命名方法: 小驼峰式命名法,第一个单词外其余单词首字母大写
命名规范: 前缀应该为动词
命名建议: 常用动词约定

动词含义
can 判断是否可执行某个动作
has 判断是否含有某个值
is 判断是否为某个值
get 获取某个值
set 设置某个值
load 加载某些数据

函数参数

JavaScript 函数不会对参数值进行任何检查。
函数参数在内部表现为一个数组

函数参数(parameter)指的是在函数定义中列出的名称。
函数参数(argument)指的是传递到函数或由函数接收到的真实值。

JavaScript 函数定义不会为参数(parameter)规定数据类型。
JavaScript 函数不会对所传递的参数(argument)实行类型检查。
JavaScript 函数不会检查所接收参数(argument)的数量。

参数默认

如果调用参数时省略了参数(少于被声明的数量),则丢失的值被设置为:undefined。
有时这是可以接受的,但是有时最好给参数指定默认值
如果函数调用的参数太多(超过声明),则可以使用 arguments 对象来达到这些参数

function f1(name,age){
   
            name = name||"User";
            age = age?age:0;
            console.log(name,age);
        }//es5
        f1();
        f1("Tom")
        function f2(name = "User",age = 0){
   
            console.log(name,age);
        }//es6
        f2();
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值