undefined和Undefined

tengerye 2013-11-06 05:05:20
1.刚开始学js,能否讲述undefined和Undefined的区别。
2.代码如下:
if( carname == null)
{
alert("1");
}

if( carname == Undefined)
{
alert("2");
}

if( null== undefined )
{
alert("3");
}

if( 'undefined' in window )
{
alert("4");
}

结果在chrome里点击button之后就只能出现1.求问是怎么回事?
答对第一个20分,答对第二个60分。先谢谢各位大大了。
...全文
508 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2013-11-11
  • 打赏
  • 举报
回复
引用 22 楼 tengerye 的回复:
[quote=引用 20 楼 u011461314 的回复:] 据我判断,搂住是不是吃饱了,没事干。 1,那不是异常,那是错误。任何语言,遇到错误,难道会继续进行下去吗? 2.只要值是undefined,他就是Undefined类型。Undefined类型一般很多地方都会叫undefined类型。
嗯,我知道了,就是js有错误,浏览器只是停止执行而不会提示错误。 但是到底有没有Undefined这种类型呢?为什么有回复说没有这种类型。而且我用typeof做实验,结果也是undefined而不是Undefined?[/quote] 我终于明白你的 意思了 undefined 在js中 属于一个状态判断对象 当一个变量没有定义 那么他就匹配 undefined 注意 他和null是有区别的 为什么有 undefined 如下: 在面向对象的程序中 实际对象 和 变量 是2个分离的关系 比如 "123" 这是一个 string 类型的对象 var str; 声明了一个变量 var str = "123"; 声明了变量str 指向了对象"123"(细节可能不完全是这样 但是逻辑上就是这样) 怎么指向的?也就是 怎么程序内部知道 str 指向 “123” 变量 str 保存在 栈上 他包含一个数字的值 对象 "123" 保存在 堆上 他有一个地址(看成内存存放该对象的起始值) 当 str 的 数字值 等于 对象 "123" 的地址值 的时候 那么 str就是引用了对象 "123" 操作 str 在程序内部就是操作 "123" 那么现在 str 有了但是没有指向 "123" 或者说没有指向任何对象 ( var str = null; ) 这个时候 str 就是 等于 null 或者说 str这个变量 指向了 null 但是 如果 str 不存在 栈上 也就是 这个变量没有 声明过 那么 typeof str 就是 'undefined' 同理 typeof Undefined 也是 'undefined'(因为当前没有声明过 Undefined变量 ) 你不要管 Undefined 和 undefined 看起来是不是很像 很像不代表他们有直接关联
tengerye 2013-11-11
  • 打赏
  • 举报
回复
引用 23 楼 KK3K2005 的回复:
[quote=引用 22 楼 tengerye 的回复:] [quote=引用 20 楼 u011461314 的回复:] 据我判断,搂住是不是吃饱了,没事干。 1,那不是异常,那是错误。任何语言,遇到错误,难道会继续进行下去吗? 2.只要值是undefined,他就是Undefined类型。Undefined类型一般很多地方都会叫undefined类型。
嗯,我知道了,就是js有错误,浏览器只是停止执行而不会提示错误。 但是到底有没有Undefined这种类型呢?为什么有回复说没有这种类型。而且我用typeof做实验,结果也是undefined而不是Undefined?[/quote] 我终于明白你的 意思了 undefined 在js中 属于一个状态判断对象 当一个变量没有定义 那么他就匹配 undefined 注意 他和null是有区别的 为什么有 undefined 如下: 在面向对象的程序中 实际对象 和 变量 是2个分离的关系 比如 "123" 这是一个 string 类型的对象 var str; 声明了一个变量 var str = "123"; 声明了变量str 指向了对象"123"(细节可能不完全是这样 但是逻辑上就是这样) 怎么指向的?也就是 怎么程序内部知道 str 指向 “123” 变量 str 保存在 栈上 他包含一个数字的值 对象 "123" 保存在 堆上 他有一个地址(看成内存存放该对象的起始值) 当 str 的 数字值 等于 对象 "123" 的地址值 的时候 那么 str就是引用了对象 "123" 操作 str 在程序内部就是操作 "123" 那么现在 str 有了但是没有指向 "123" 或者说没有指向任何对象 ( var str = null; ) 这个时候 str 就是 等于 null 或者说 str这个变量 指向了 null 但是 如果 str 不存在 栈上 也就是 这个变量没有 声明过 那么 typeof str 就是 'undefined' 同理 typeof Undefined 也是 'undefined'(因为当前没有声明过 Undefined变量 ) 你不要管 Undefined 和 undefined 看起来是不是很像 很像不代表他们有直接关联 [/quote] 谢谢大神,我感觉比较明白了,原来根本没有Undefined。我看好多回复竟然告诉我这是一种类型,搞的我纠结了一个周末,谢谢了。
tengerye 2013-11-10
  • 打赏
  • 举报
回复
引用 20 楼 u011461314 的回复:
据我判断,搂住是不是吃饱了,没事干。 1,那不是异常,那是错误。任何语言,遇到错误,难道会继续进行下去吗? 2.只要值是undefined,他就是Undefined类型。Undefined类型一般很多地方都会叫undefined类型。
嗯,我知道了,就是js有错误,浏览器只是停止执行而不会提示错误。 但是到底有没有Undefined这种类型呢?为什么有回复说没有这种类型。而且我用typeof做实验,结果也是undefined而不是Undefined?
tengerye 2013-11-09
  • 打赏
  • 举报
回复
引用 20 楼 u011461314 的回复:
据我判断,搂住是不是吃饱了,没事干。 1,那不是异常,那是错误。任何语言,遇到错误,难道会继续进行下去吗? 2.只要值是undefined,他就是Undefined类型。Undefined类型一般很多地方都会叫undefined类型。
但是js 是大小写敏感的,不能随便写的啊。
zhjdg 2013-11-09
  • 打赏
  • 举报
回复
据我判断,搂住是不是吃饱了,没事干。 1,那不是异常,那是错误。任何语言,遇到错误,难道会继续进行下去吗? 2.只要值是undefined,他就是Undefined类型。Undefined类型一般很多地方都会叫undefined类型。
tengerye 2013-11-09
  • 打赏
  • 举报
回复
经过我实验,我似乎好像有点明白了,请各位大神指正: 1.浏览器如果遇到错误的javascript代码就会停止执行,而不会像后台一样会弹出个异常什么的;(我又有个疑问,上次看一篇文章说浏览器解释js代码是阻塞的,那么如果有异常的话,后面所有的其它部分就不会加载了对吧?) 2.没有Undefined这种东西,因为我做实验发现alert(typeof undefined) 得到的结果是undefined.(但是为什么“未知数”又说有这个原生类型?能否清楚的解释一下?) 大家放心,如果分不够我会加分的。
tengerye 2013-11-09
  • 打赏
  • 举报
回复
引用 17 楼 KK3K2005 的回复:
[quote=引用 14 楼 tengerye 的回复:] [quote=引用 13 楼 danica7773 的回复:] Undefined只是一種數據類型,當某個變量的數據類型是Undefined,它的默認且惟一的值就是undefined。 在JS中,我們要使用某個變量的時候,往往要判斷變量是否存在并且是否被賦值,那么如果這個變量的值為undefined時,那么我們知道了,這個變量的數據類型是Undefined,它不存在或沒有被賦值。 因此Undefined在JS中,只是一個名詞概念,來表示一種數據類型,真正在程序中使用到的是它的值undefined。
既然Undefined是数据类型的话,但是为什么 Undefined u;编译器提示我有错呢?[/quote] 耐心耐心啊 你问的问题书上都有 只是你没有耐心 免费教你一招 现在 把 你看的书上的 所有和 undefined , Undefined相关的内容全部打一遍 手打一遍 类似 Undefined u; 也一样 所有 声明变量的内容 全部自己手打一遍 打好的内容 整理进文档 然后在看还有问题吗 [/quote] 谢谢这位大大,只是基本没有时间学,只有半个礼拜学习时间然后就要马上开工。而且小弟刚到,什么都不熟。以前做的是后台,现在全都要做,真是头大。我根本没有看书,只是拿着w3cshool的在线教程看。然后有问题就上来问了。先谢谢您了。
KK3K2005 2013-11-09
  • 打赏
  • 举报
回复
引用 14 楼 tengerye 的回复:
[quote=引用 13 楼 danica7773 的回复:] Undefined只是一種數據類型,當某個變量的數據類型是Undefined,它的默認且惟一的值就是undefined。 在JS中,我們要使用某個變量的時候,往往要判斷變量是否存在并且是否被賦值,那么如果這個變量的值為undefined時,那么我們知道了,這個變量的數據類型是Undefined,它不存在或沒有被賦值。 因此Undefined在JS中,只是一個名詞概念,來表示一種數據類型,真正在程序中使用到的是它的值undefined。
既然Undefined是数据类型的话,但是为什么 Undefined u;编译器提示我有错呢?[/quote] 耐心耐心啊 你问的问题书上都有 只是你没有耐心 免费教你一招 现在 把 你看的书上的 所有和 undefined , Undefined相关的内容全部打一遍 手打一遍 类似 Undefined u; 也一样 所有 声明变量的内容 全部自己手打一遍 打好的内容 整理进文档 然后在看还有问题吗
打字员 2013-11-08
  • 打赏
  • 举报
回复
Undefined只是一種數據類型,當某個變量的數據類型是Undefined,它的默認且惟一的值就是undefined。 在JS中,我們要使用某個變量的時候,往往要判斷變量是否存在并且是否被賦值,那么如果這個變量的值為undefined時,那么我們知道了,這個變量的數據類型是Undefined,它不存在或沒有被賦值。 因此Undefined在JS中,只是一個名詞概念,來表示一種數據類型,真正在程序中使用到的是它的值undefined。
tcmakebest 2013-11-08
  • 打赏
  • 举报
回复
判断变量是否定义是这样的: if(typeof(carname)=='undefined') alert("not exists");
tengerye 2013-11-08
  • 打赏
  • 举报
回复
各位大大帮帮忙,我搞清楚了马上揭帖。
tengerye 2013-11-08
  • 打赏
  • 举报
回复
引用 13 楼 danica7773 的回复:
Undefined只是一種數據類型,當某個變量的數據類型是Undefined,它的默認且惟一的值就是undefined。 在JS中,我們要使用某個變量的時候,往往要判斷變量是否存在并且是否被賦值,那么如果這個變量的值為undefined時,那么我們知道了,這個變量的數據類型是Undefined,它不存在或沒有被賦值。 因此Undefined在JS中,只是一個名詞概念,來表示一種數據類型,真正在程序中使用到的是它的值undefined。
既然Undefined是数据类型的话,但是为什么 Undefined u;编译器提示我有错呢?
tengerye 2013-11-07
  • 打赏
  • 举报
回复
为什么有的回答说Undefined是数据类型,又有的说不存在Undefined呢?哪位大大可以详细解释一下。我是在是新手,搞不懂。
凉粉zzz 2013-11-07
  • 打赏
  • 举报
回复
没有Undefined
tengerye 2013-11-06
  • 打赏
  • 举报
回复
引用 9 楼 u011461314 的回复:
咋不会用调试器。 用alert这么低级。 var $b = Undefined; 是报错的。
不好意思,我是新手。我用的是dw cc。请问调试器怎么用啊?
zhjdg 2013-11-06
  • 打赏
  • 举报
回复
咋不会用调试器。 用alert这么低级。 var $b = Undefined; 是报错的。
tengerye 2013-11-06
  • 打赏
  • 举报
回复
引用 7 楼 no200830740203 的回复:
JavaScript 数据类型 JavaScript undefined 属性 看一下w3c的课程吧 还是数据类型的区分
这上面说的太模糊了。
  • 打赏
  • 举报
回复
JavaScript 数据类型 JavaScript undefined 属性 看一下w3c的课程吧 还是数据类型的区分
tengerye 2013-11-06
  • 打赏
  • 举报
回复
引用 5 楼 danica7773 的回复:
undefined表示变量不存在,或变量声明未赋值,或某个对象不存在的属性 Undefined表示的是JS的一种数据类型,它有惟一的值undefined 比如数据类型Boolean,它的值只可能是true或false。 如果你不事先声明一个叫Undefined的变量,那么 if( carname == Undefined) 这样写绝对是错的,因为它不像Boolean,String等(除了表示一种数据类型,它还是一种JS对象),它只是表示一种数据类型,当你引用的变量数据类型是Undefined时,那么这个变量的值就是undefined
但是为什么 Undefined u;编译器提示我有错呢?
打字员 2013-11-06
  • 打赏
  • 举报
回复
undefined表示变量不存在,或变量声明未赋值,或某个对象不存在的属性 Undefined表示的是JS的一种数据类型,它有惟一的值undefined 比如数据类型Boolean,它的值只可能是true或false。 如果你不事先声明一个叫Undefined的变量,那么 if( carname == Undefined) 这样写绝对是错的,因为它不像Boolean,String等(除了表示一种数据类型,它还是一种JS对象),它只是表示一种数据类型,当你引用的变量数据类型是Undefined时,那么这个变量的值就是undefined
加载更多回复(4)

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧