JavaScript-基础篇-函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。JavaScript函数语法,函数就是包裹在花括号中的代码块,前面使用了关键词 function: 当调用该函数时,会执行函数内的代码。可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
函数的声明
- 定义式
1
2
3
4
5fun(); // this is a function.
function fun() {
console.log('this is a function.')
}
fun(); // this is a function. - 变量式为什么这里在声明前调用会报错 demo is not a function 呢?而上面定义式的fun();又能在之前调用?
1
2
3
4demo(); // 报错:demo is not a function
var demo = function () {
console.log('this is a function.')
}
javascript并不是严格的自上而下执行的语言 。JavaScript有个东西叫变量提升(hoisting),它会将当前作用域的所有变量的声明提升到程序的顶部。等价于1
2
3
4num = 1;
console.log(num);
var num;1
2
3
4var num;
num = 1;
console.log(num);
那我们再来看一个例子:
1 | console.log(num); // undefined |
那为什么这里会打印 undefined 呢?原因为 JavaScript会将变量的声明提升到顶部,可是赋值语句并不会提升。
所以上面demo()函数的声明,变量demo会被提升到顶部,但是变量的值并没有提升,所以变量式声明函数时,函数的调用应该在该表达式的后面:
1 | var demo = function () { |
我们再来说一个题外话:
1 | fun(); |
你觉得上面会报fun is not a function吗?不,其实它会输出 this is a function. 当函数声明与其他声明一起出现的时候,是以谁为准呢?答案就是,函数声明高于一切。
构造器式
1 | let constructor = new Function('name','age',"console.log(name + '的年龄为' + age);") |
函数的返回值
当 JavaScript 到达 return 语句,函数将停止执行。
如果函数被某条语句调用,JavaScript 将在调用语句之后“返回”执行代码。
在JavaScript中不管我们指没指定函数的返回值,函数都会返回一个值
指定返回值 -> 返回指定的值
未指定返回值 -> 返回undefined
我们来用代码来展示效果:
1 | var fun1 = function () { |
为何使用函数?
您能够对代码进行复用:只要定义一次代码,就可以多次使用它。
您能够多次向同一函数传递不同的参数,以产生不同的结果。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 孤鸿渺影博客!