二、基本语法
定义函数有两种方式,一种是函数表达式,一种是函数声明
function fun(arguments){
//.....
}
var fun=function(arguments){
//......
}
三、变量提升
通过函数声明的函数,才存在变量提升,函数表达式不存在变量提升。
sayhi('zhangsan');
function sayhi(name)
{
alert('name:'+name);
}
//不会报错,存在变量提升
//执行顺序
//function sayhi(name)
//{
//alert('name:'+name);
//}
//sathi('zhangsan');
sayhello('lisi');
var syhello=function(name){
alert('name'+name);
}
//报错,sayhello is not a function
四、块级作用域
js中不存在块级作用域,存在函数作用域
for(var i=0;i<10;i++){}
console.log(i);//不会报错10
//原因:变量提升
es6的let语法,可以解决变量提升
for(let i=0;i<10;i++){}
console.log(i)//i is not defined
五,函数调用和递归调用