javascript函数基础之函数声明、提升、重复、删除实例详解

伊谢尔伦
Lepaskan: 2017-07-25 09:50:45
asal
1626 orang telah melayarinya

函数声明语句

  使用function关键字,后跟一组参数以及函数体

function funcname([arg1 [,arg2 [...,argn]]]){
    statement;
}
Salin selepas log masuk

  funcname是要声明的函数名称的标识符。函数名之后的圆括号中是参数列表,参数之间使用逗号分隔。当调用函数时,这些标识符则指代传入函数的实参

  [注意]function语句里的花括号是必需的,这和while循环和其他一些语句所使用的语句块是不同的,即使函数体内只包含一条语句,仍然必须使用花括号将其括起来

function test()//SyntaxError: Unexpected end of input
function test(){};//不报错
while(true);//不报错
Salin selepas log masuk

提升

  在作用域系列博文的第三篇中,提到过函数声明提升(hoisting),函数名称和函数体都提升

foo();
function foo(){
    console.log(1);//1
}
Salin selepas log masuk

  上面这个代码片段之所以能够在控制台输出1,就是因为foo()函数声明进行了提升,如下所示:

function foo(){
    console.log(1);
}
foo();
Salin selepas log masuk

重复

  变量的重复声明是无用的,但函数的重复声明会覆盖前面的声明(无论是变量还是函数声明)

//变量的重复声明无用var a = 1;
var a;
console.log(a);//1
Salin selepas log masuk
//由于函数声明提升优先于变量声明提升,所以变量的声明无作用
var a;
function a(){
    console.log(1);
}
a();//1
Salin selepas log masuk
//后面的函数声明会覆盖前面的函数声明
a();//2
function a(){
    console.log(1);
}
function a(){
    console.log(2);
}
Salin selepas log masuk

  所以,应该避免在同一作用域中重复声明

删除

  和变量声明一样,函数声明语句创建的变量无法删除

function foo(){
    console.log(1);
}
delete foo;//false
console.log(foo());//1
Salin selepas log masuk

Atas ialah kandungan terperinci javascript函数基础之函数声明、提升、重复、删除实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!