美文网首页
数据类型之函数基础

数据类型之函数基础

作者: 梦回98 | 来源:发表于2019-07-07 23:55 被阅读0次

1 概述

函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。
1.1函数的声明
JavaScript 有三种声明函数的方法。
(1)function 命令
function命令声明的代码区块,就是一个函数。function命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。

 function print(s) {
   console.log(s);
 }

上面的代码命名了一个print函数,以后使用print()这种形式,就可以调用相应的代码。这叫做函数的声明(Function Declaration)。
(2)函数表达式
除了用function命令声明函数,还可以采用变量赋值的写法。

var print = function(s) {
 console.log(s);
};

这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式(Function Expression),因为赋值语句的等号右侧只能放表达式。
采用函数表达式声明函数时,function命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。

var print = function x(){
  console.log(typeof x);
};

// function

上面代码在函数表达式中,加入了函数名x。这个x只在函数体内部可用,指代函数表达式本身,其他地方都不可用。
这种写法的用处有两个,一是可以在函数体内部调用自身,二是方便除错(除错工具显示函数调用栈时,将显示函数名,而不再显示这里是一个匿名函数)。因此,下面的形式声明函数也非常常见。

 var f = function f() {};

需要注意的是,函数的表达式需要在语句的结尾加上分号,表示语句结束。而函数的声明在结尾的大括号后面不用加分号。总的来说,这两种声明函数的方式,差别很细微,可以近似认为是等价的。
(3)Function 构造函数
第三种声明函数的方式是Function构造函数。

var add = new Function(
 'x',
 'y',
'return x + y'
);

// 等同于

function add(x, y) {
return x + y;
}

上面代码中,Function构造函数接受三个参数,除了最后一个参数是add函数的“函数体”,其他参数都是add函数的参数。
你可以传递任意数量的参数给Function构造函数,只有最后一个参数会被当做函数体,如果只有一个参数,该参数就是函数体。

var foo = new Function(
'return "hello world"'
);

// 等同于

function foo() {
return 'hello world';
}

Function构造函数可以不使用new命令,返回结果完全一样。
总的来说,这种声明函数的方式非常不直观,几乎无人使用。
1.2 函数的重复声明
如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。

function f() {
 console.log(1);
}
f() // 2

function f() {
console.log(2);
}

f() // 2

面代码中,后一次的函数声明覆盖了前面一次。而且,由于函数名的提升,前一次声明在任何时候都是无效的,这一点要特别注意。

相关文章

  • R语言基础--数据类型-总结

    R语言基础--数据类型-总结 1、R语言基础--数据类型之向量 2、R语言基础--数据类型之因子 3、R语言基础-...

  • python入门套路

    Python基础 基础数据类型 bool string list tuple dictionary 基础函数 he...

  • ES6文集的目录

    基础 变量的解构赋值扩展运算符箭头函数export与import 数据类型 引用数据类型 ES6的数组数组之Arr...

  • 数据类型之函数基础

    1 概述 函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。1.1函数的声明Jav...

  • 3.Python基础数据类型之int

    Python基础数据类型之int intint() 函数用于将一个字符串或数字转换为整型。 函数语法int(x, ...

  • 4.Python基础数据类型之bool

    Python基础数据类型之bool bool(布尔值)bool() 函数用于将给定参数转换为布尔类型,如果没有参数...

  • java中函数是值传递还是引用传递

    1. 参数为基础数据类型时 函数参数相当于函数内部局部变量,当参数为基础数据类型时,为内部局部变量赋值,所以内外变...

  • python基础

    基础 基本数据类型:intfloatstrbool,类型转换:int()float()str() if函数

  • (七)数据类型之函数基础

    1 概述 1.1函数的声明 JavaScript 有三种声明函数的方法。 (1)function 命令 funct...

  • java

    数据类型分为:8大基础数据类型和3大引用数据类型。 基础数据类型和引用数据类型的区别: 1,基本数据类型变量声明之...

网友评论

      本文标题:数据类型之函数基础

      本文链接:https://www.haomeiwen.com/subject/jsewhctx.html