Lawguancong / Daily-Charging-Learning

0 stars 0 forks source link

普通函数定义方式 #5

Open Lawguancong opened 3 years ago

Lawguancong commented 3 years ago

区别

1.函数声明必须包含名称,函数表达式可以省略名称。 2.函数声明有位置限制,不能出现在条件语句、循环语句或其他语句中,而函数表达式没有位置限制,可以出现在语句中实现动态编程。 3.函数声明会先于函数表达式被提升至作用域的顶部,因此用函数声明创建的函数可以在声明之前被调用,而函数表达式必须在表达式之后才能被调用

函数声明式

可以变量提前

function a(){}
typeof a; // function

typeof b; // function
function b(){}

函数表达式

不能变量提前 -> undefined

var c = function (){};
typeof c; // function

typeof d; // undefined
var d = function (){};

注意表达式右边为 undefined

var e = function f(){};
typeof e; // "function"
typeof f; // "undefined"

函数构造式

不能变量提前 -> undefined

var  test = new Function('name','alert("hello,"+name)');     
//最末尾的是函数体,其前面的都是参数
//函数调用
test('world');
typeof fun1; //undefined
var  fun1 = new Function('name','alert("hello,"+name)');   

var  fun2 = new Function('name','alert("hello,"+name)');   
typeof fun2; //function