-
javascript 局部变量输出undefined?5
请问下面的函数 a 输出什么? 为什么是这个值?var i = 3; function a(){ alert("i = " + i); var i = 5; } a();
2013年5月21日 23:18
4个答案 按时间排序 按投票排序
-
采纳的答案
var i = 3;
function a(){
alert("i = " + i);
var i = 5;
}
a();
因为javascript的变量提前声明特性 即如上代码等价于
var i = 3;
function a(){
var i;
alert("i = " + i); //此时就是undefined了
i = 5;
}
a();
说白了 变量声明都会在函数开头完成 不管你怎么写的2013年5月22日 07:37
-
这是因为javascript 内部变量和外部便量名字相同时,内部变量的级别高与外部变量的级别。再根据javascript的变量声明的hoisting机制,变量声明永远都会被提升至作用域的最顶端,所以alert 才会有一个undefined.
2013年5月22日 12:46
相关推荐
一、JavaScript scope 的划分标准是function函数块,不是以 if、while、for来划分的 [removed] function f1(){ alert("before for scope:"+i); //i未赋值(并不是没有声明!使用未声明变量或函数会导致...
1_2.htm 局部变量和全局变量。 1_3.htm JavaScript中的强制类型转换。 1_4.htm 在HTML中为JavaScript传递变量。 1_5.htm 在HTML中引用JavaScript的变量。 1_6.htm 比较undefined和"undefined"。 第2章(\2) 示例...
在javascript中根据变量作用的范围不同分为局部变量和全局变量,直接定义的变量是全局变量,全局变量可以被所有的脚本访问;在函数中定义的变量是局部变量,局部变量只在函数内有效。 如果全局变量和局部变量使用...
001-HTML中嵌入JavaScript代码的第一种方式 ...007-JS的局部变量和全局变量 007-JS的局部变量和全局变量 008-JS中的数据类型 014-null NaN undefined这三个值有什么区别 015-JS的常用事件-注册事件的两种方式
凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被...
javascript中,变量主要分为局部变量和全局变量两种,对应的作用域也是局部作用域和全局作用域。 1 局部变量和作用域 局部变量一般在函数体内部声明使用: function func(){ var i=12;//局部变量 ...... } 局部...
输出结果: undefined,undefined 3,3 3,3 3 如果你是搞c、java等语言的,可能你会不解,为何j、k这种局部变量可以被作用域外的代码访问呢? 如果JavaScript中用var声明的变量可视为局部变量,那么能访问到这个变量...
局部变量会在函数运行以后被删除,而全局变量会在页面关闭后被删除。 2.1.5 运算符 JavaScript的运算符包括一元运算符、算数运算符、比较运算符、逻辑运算符、赋值运算符等。一元运算符只有一个运算数的运算符,...
函数内部可以声明和访问全局变量,也可以声明局部变量(使用var关键字,函数的参数也是局部变量),但函数外部无法访问内部的局部变量: function test() { var a = 0; // 局部变量 b = 1; // 全局变量 } a = ?, b...
11.2 常量和局部变量271 11.3 解构赋值274 11.4 迭代276 11.5 函数简写285 11.6 多catch 从句285 11.7 E4X: ECMAScript for XML286 第12章 服务器端JavaScript290 12.1 用Rhino脚本化Java291 12.2...
11.2 常量和局部变量 11.3 解构赋值 11.4 迭代 11.5 函数简写 11.6 多catch 从句 11.7 E4X: ECMAScript for XML 第12章 服务器端JavaScript 12.1 用Rhino脚本化Java 12.2 用Node实现异步I/O 第二部分 客户端...
11.2 常量和局部变量 11.3 解构赋值 11.4 迭代 11.5 函数简写 11.6 多catch 从句 11.7 E4X: ECMAScript for XML 第12章 服务器端JavaScript 12.1 用Rhino脚本化Java 12.2 用Node实现异步I/O 第二部分 客户端...
11.2 常量和局部变量 271 11.3 解构赋值 274 11.4 迭代 276 11.5 函数简写 285 11.6 多catch 从句 285 11.7 e4x: ecmascript for xml 286 第12章 服务器端javascript 290 12.1 用rhino脚本化java 291 12.2 用node...
11.2 常量和局部变量 11.3 解构赋值 11.4 迭代 11.5 函数简写 11.6 多catch 从句 11.7 E4X: ECMAScript for XML 第12章 服务器端JavaScript 12.1 用Rhino脚本化Java 12.2 用Node实现异步I/O 第二部分 客户端...
11.2 常量和局部变量271 11.3 解构赋值274 11.4 迭代276 11.5 函数简写285 11.6 多catch 从句285 11.7 E4X: ECMAScript for XML286 第12章 服务器端JavaScript290 12.1 用Rhino脚本化Java291 12.2...
* JavaScript中的数据类型包括:Number、String、Boolean、Array、Object、Null、Undefined等。 三、JavaScript运算符 * 赋值运算符:=、+=、-=、\*=、/=、%=、、>>=、>>>=、&=、^=、|=、&&=、||= * 比较运算符:==...
源文件程序天下JAVASCRIPT实例自学手册 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 ...
1_2.htm 局部变量和全局变量。 1_3.htm JavaScript中的强制类型转换。 1_4.htm 在HTML中为JavaScript传递变量。 1_5.htm 在HTML中引用JavaScript的变量。 1_6.htm 比较undefined和"undefined"。 第2章(\...
* 局部变量:在函数或块级作用域中声明的变量。 * 作用域链:JavaScript 的作用域链机制。 对象 * 对象的创建:使用对象字面量、new Object() 等方式创建对象。 * 对象的属性:包括对象的数据属性和访问器属性。 *...