- 构造函数创建
var fun = new Function("console.log('hello world');");
- 函数声明
function fun(形参1,形参2){
console.log(形参1+形参2);
}
- 匿名函数
var fun = function(形参1,形参2){
console.log(形参1+形参2);
}
三种方法都是创建了一个名为fun
的函数。
b会打印出5,原因是在函数作用域中创建变量b
的时候没有使用var
关键词,系统默认为创建了window.b
属性,即为全局变量,所以可以打印出后续赋值的5.
function fun(str, n) {
var printStr = "";
if (n < 0) {
console.log(str);
} else {
for (var i = 0; i < n; i++) {
printStr += str;
}
}
console.log(printStr);
}
fun("hello", 3);
- 根据变量提升和函数提升原理,结果应为:
undefined
2
- 分别是
function
,number
。其中第一个var初始化被提前,之后是函数覆盖原来定义;第二个var初始化也被提前,但在原有位置(即函数后)还有一个赋值语句,又将foo变量转换为number类型。
function multiplicationCalculator() {
var result = 1;
for (var i = 0; i < arguments.length; i++) {
result *= arguments[i];
}
return result;
}
var a = multiplicationCalculator(3, 6); // 18
var b = multiplicationCalculator(3, 6, 2); // 36
var c = multiplicationCalculator(1, 2, 5, 6); // 60
console.log(a);
console.log(b);
console.log(c);
function add(firstNum) {
return function(secondNum) {
return function(thirdNum) {
return result = firstNum + thirdNum + secondNum;
}
}
}
var a = add(2)(3)(4);
console.log(a);
网友评论