undefined-关于javascript的一个问题

问题描述

关于javascript的一个问题

var a =123;

function f()
{

alert(a);

var a =1;

alert(a);

}

f();

这段代码为什么第一个 alert出来的是 undefined???

解决方案

 var a =123;
function f() {
alert(a); //这个a是函数f内的A不是全局变量,js在同一个域内,会把所有var要申明的变量先申明了。
var a =1;
alert(a);
} f();

所以上面代码也就相当于
var a =123;
function f() {
var a;
alert(a); //这个a是函数f内的A不是全局变量,js在同一个域内,会把所有var要申明的变量先申明了。
a =1;
alert(a);
} f();

解决方案二:

因为你在同一个作用域当中又定义了一个a
你访问的不是全局的a
因为局部a之前没初始化,就没有定义了。
var a =123; function f() { alert(a); } f();
这就不会报错了。

解决方案三:

http://www.cnblogs.com/yuzhongwusan/archive/2012/03/09/2387489.html
http://www.360doc.com/content/11/1003/12/6963129_153080771.shtml

解决方案四:

把function f()里var a的var删掉就正常了 Lz想测试什么?
变量的作用域?试一下传参?

 var a =123;function f(a) { alert(a); var a =1; alert(a); } f(a);

解决方案五:

因为局部a之前没初始化,就没有定义了。

解决方案六:

变量申明提前,但是还没有赋值

时间: 2024-09-29 14:33:06

undefined-关于javascript的一个问题的相关文章

javascript-请问html页面如何和JavaScript共用一个变量

问题描述 请问html页面如何和JavaScript共用一个变量 在同一个页面内html代码如下: <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }"> 页面下面JavaScript代码: if(changed == undefined) { this.message = ['你未进行任

javascript引擎-用javascript编写一个登陆的页面,求代码 ,急求!!

问题描述 用javascript编写一个登陆的页面,求代码 ,急求!! 像是这样的:function request(paras){//获取url参数 var url=location.href; var paraString=url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj={}; for (i=0; j=paraString[i]; i++)paraObj[j.sub

前端-javascript写一个九宫格运行出错

问题描述 javascript写一个九宫格运行出错 用循环判断胜负的时候在win[h].length处报错,Uncaught TypeError: Cannot read property 'length' of undefined,请高手解答一下,感激不尽. 解决方案 开发"> 应该是这里写错了吧 解决方案二: length是数组类型的属性,你的元素类型不确定时直接用就会报错. 修正内层for 循环j访问数组元素的代码如下:在for循环中 var var arr_i=new Array(

JavaScript 检查一个 JSON 对象中是否对存指这下的 Key

JavaScript 检查一个 JSON 对象中是否对存指定的 Key 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Actually, checking for undefined-ness

html javascript: 用JavaScript判断一个html元素是否存在的几种方法

用javascript判断一个html元素是否存在的五种方法:   1. 判断表单元素是否存在 if("periodPerMonth" in document.theForm){ return true; }else{ return false; } 2. 判断页面元素是否存在 if(document.getElementById("XXX")){ //存在 } 3. 判断表单元素是否存在 if(document.theForm.periodPerMonth){ /

JavaScript需要一个新名字

JavaScript - 我喜爱的一种程序设计语言,但这个名字起得实在够烂.这个程序事实上与Java没有任何关系.这点我可以确定.既然ECMA正在致力于设计JavaScript的下一个版本(代码名为ES4),那么就应该给JavaScript取一个新的名字. 怎样才能起一个响亮的名字呢?虽然我不是起名专家,但有些原则还是显而易见的.首先,名字要独特又好记的(即可与其它事物名相区别).同时,也不要和已经注册的知名品牌重名.如果你将你的程序设计语言命名为Coca-Cola 1.0,那么等待你的只有法庭

javascript实现一个数值加法函数

  这篇文章主要介绍了javascript实现一个数值加法函数,十分的简单实用,方便大家理解javascript,有需要的小伙伴可以参考下. 废话不多说,直接奉上代码 JS ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

JavaScript获取一个范围内日期的方法

  本文实例讲述了JavaScript获取一个范围内日期的方法.分享给大家供大家参考.具体分析如下: 指定开始和结束时间,范围该范围内的所有日期放入数组 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Date.prototype.addDays = function(days) { var dat = new Date(this.valueOf()); dat.setDate(dat.getDate() + days); return dat; }; function g

JavaScript创建一个object对象并操作对象属性的用法

 这篇文章主要介绍了JavaScript创建一个object对象并操作对象属性的用法,实例分析了javascript使用object类定义对象及属性的用法,需要的朋友可以参考下     本文实例讲述了JavaScript创建一个object对象并操作对象属性的用法.分享给大家供大家参考.具体分析如下: 下面的JS代码创建了一个myMovie对象,并给对象title和director属性赋值,通过Object定义对象,其属性可以不用定义,直接调用即可,非常简单. ? 1 2 3 4 5 6 <sc