码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript基础--函数声明,函数的作用域链

时间:2016-07-19 18:27:20      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

函数声明和函数表达式区别

函数声明是通过 function 函数名(){}来声明一个函数

函数表达式是通过声明一个变量,然后赋值函数。

两者区别是,在程序执行前,会先获取函数声明声明的函数,获取变量的声明,这里变量的声明只是先开辟一个空间,然后给了个名字,之后到该变量名赋值的时候,才有值,也就是说,在未得到该变量的赋值前,使用该变量会得到undefined。

而无论你把函数放在放在程序中的开头或者结尾,函数的执行语句都能正常执行。

fn();//输出   fn
console.log(fn2);// undefined 声明了,没有值,自动赋值undefined
function fn(){console.log(‘fn‘)}//函数声明
var fn2 = function(){console.log(‘fn2‘)};//函数表达式
fn2();//输出  fn2

变量的声明前置和函数的声明前置

上面那个问题有回答。

arguments 是什么?

arguments是函数内部的一个对象,对应着传进来的参数,是一个类数组对象,没有操作数组的方法。

每个传进来的参数对应着arguments[0],arguments[1],有先后顺序之分。

比如function fn(name,age){

console.log(arguments[0];);

console.log(arguments[1];);

}

javascript中函数的重载?

在javascript中没有函数重载,因为相同的函数名字,如果定义的参数个数不一样,后出现的会覆盖先出现的。

所以,通过内部访问arguments可以不用管传进来多少个参数,尽管访问就可以了,但是传进来的参数有先后之分。

什么是立即执行函数表达式,作用是什么?

 

函数的作用域链是什么?

JavaScript基础--函数声明,函数的作用域链

标签:

原文地址:http://www.cnblogs.com/cyrziwo/p/5685628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!