在网页里面的写javascript的疑问: alert(name)会弹出对话框,内容为空 alert(age)时没反应

name和age都没有声明,谁能给个合理的解释,谢谢alert(name)和alert(age)是独个测试的,这里放一起说是比较他们独自运行后结果不一样,alert(na... name和age都没有声明,谁能给个合理的解释,谢谢
alert(name)和alert(age)是独个测试的,这里放一起说是比较他们独自运行后结果不一样,alert(name)会弹出窗口,根本没报错
展开
 我来答
forzhp
推荐于2017-10-15 · TA获得超过1411个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:422万
展开全部
因为window.name是空字符串,window.age是undefined,所以你alert(age)会报错,alert(name)会出对话框

你需要弄明白三个概念:
1:什么是undefined?javascript的undefined其实有两个概念,一种就是报错的时候说某个变量undefined,这个时候它是形容词,说某个变量没定义,还有一种就是javascript的一个顶级对象,他就是一个object,跟字符串,数字一样,这个时候它是名词

2:alert什么时候会报错呢?并不是你传递一个参数等于undefined(名词)它就报错,而是你传给它一个undefined(形容词)参数它才报错,比如下面两种情况都不会报错:
alert(undefined);
var a = undefined;alert(a);
在这两句中其实undefined都是通过一个声明过的变量作为一个代表传递个alert的,第一句是隐藏变量,你不知道它的名字,是机器替你创建的,第二句就是a变量,alert首先找到变量,然后变量指向undefined对象,不会打乱javascript运行机制,所以把可以把undefined打印出来
但是如果你从来没声明过一个变量,比如直接写个alert(age);而age这个变量从来没出现过,它也不是当前运行域中的默认变量,alert处理age的时候就看不懂它,更不会通过它找到undefined对象

3:javascript的变量都是在自己的scope内才有效,最外层的scope就是window,你平时看到的全局变量其实全都是寄存在window对象下面,alert(name)其实调用的是alert(window.name),它不会报错是因为window有name成员,只不过它是个空字符串而已,而age不同,window.age根本不存在,所以就会导致运行期错误
xi8km9
2017-10-15 · TA获得超过1086个赞
知道小有建树答主
回答量:688
采纳率:50%
帮助的人:717万
展开全部
name是window上的一个属性, 所以即使你没声明使用它也不会报错.
这个属性表示该window所在窗口的名称, 默认为空字符串.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柏新星
2011-05-12 · TA获得超过131个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:155万
展开全部
alert(name)会弹出对话框,内容为空 估计是name 是空指针
至于你说的age。。我不知道 你尽量用debug跑一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜行杀者
2011-05-13 · TA获得超过306个赞
知道答主
回答量:194
采纳率:100%
帮助的人:0
展开全部
name应该是找到一个属性上去了.
age没申明是空指针,会报错的,看浏览器有个右下脚黄色三角感叹号.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a411765821
2011-05-12 · 超过33用户采纳过TA的回答
知道答主
回答量:292
采纳率:0%
帮助的人:112万
展开全部
还有哦,alert(true) 跟alert(false),alert(unll)也可以也可以弹出东东来哦! 刚测试了一下,发现alert()也有窗口弹出来!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式