首页 > 技术文章 > JavaScript基础:定义函数时用var和不用var的区别

Excalibur-Zhou 2014-10-31 19:48 原文

首先看两种函数声明:

var square1 = function (x){

return x*x;

}

function square2(x){

return x*x;

}

两者看似不同,在大多数使用的时候也并无太大区别,但是第一种使用时有时会报错,如:

var r1=square1(x);

var r2=square2(x);

var square1 = function (x){

return x*x;

}

function square2(x){

return x*x;

}

javascript在执行到第一条代码时就会报错,square1 is not a function;

这是因为用var 通过函数表达式声音函数赋给变量的时候,变量声明提前,但是其值还是undefined;

而用function 声明的时候,整个函数体和值都提前了,所以不会报错!

推荐阅读