一、函数的几种定义方式
1、(常用)标准式
fanction demo1(){
console.log("hello demo1");
}
demo1();
2、使用fanction构造函数定义
var demo2 = new fanction('console.log("hello demo2")');
demo2();
3、(常用)使用表达式方式定义(匿名)
var demo3 = fanction(){
console.log("hello demo3");
}
demo3(); //与其他不同的是,demo3是变量,值是函数值
4、函数自调用定义(严格来说不属于定义,只是瞬间使用)
(fanction(){
console.log("hello demo3");
})(); //连定义带调用一次性完成
二、函数中的返回值
如果⼀个函数中有return ,那么这个函数就有返回值
如果⼀个函数中没有return,那么这个函数就没有返回值
如果⼀个函数中没有明确的返回值,那么调⽤的时候接收了,结果就是undefifined
(没有明确返回值:函数中没有return或函数中有return,但是return后⾯没有任何内容)
函数内容执⾏遇到return,则⽴刻执⾏返回,且下⾯的代码是不会被执⾏的
三、变量作用域
1、全局变量
在函数外使⽤var声明的变量就是全局变量,全局变量可以在⻚⾯的任何位置使⽤,即函数外和函数内都可以使用。
2、局部变量
在函数内使⽤var关键字定义的变量是局部变量,即函数内可以使用,函数外⽆法使用。
3、隐式全局变量
无论函数内或者函数外,没有使⽤var声明的变量,就叫隐式全局变量,在函数外可以获取到。
4、变量可否删除(使⽤delete)
全局变量是不能被删除的(使用var进行声明的)
隐式全局变量是可以被删除的(未使用var进行声明的)
四、声明提前
1、举例
console.log(a); //undefined
var a = 10;
console.log(a); //10
2、解释
正常运行,不会报错;
var a = 10;————此句实际是两部分:声明+赋值;
在程序执行之前,查找声明的变量,把变量的声明提前到程序顶部集中执行,赋值操作留在原地。