undefined和Undefined
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分。先谢谢各位大大了。
------解决方案--------------------本帖最后由 showbo 于 2013-11-06 17:32:47 编辑
没有
Undefined这个预定义的变量,只有undefined
要注意区分大小写
知道这2个区别第二个就不用说了吧,报错了
------解决方案--------------------Undefined是一个原生类型,该类型只且只有一个值 undefined
可在ecmascript标准中找到具体说明
至于你这儿只alert出1的原因是代码出错
虽然标准中有Undefined这个类型,但浏览器却没定义或未公开这个变量,所以直接用会引起异常
------解决方案--------------------undefined表示变量不存在,或变量声明未赋值,或某个对象不存在的属性
Undefined表示的是JS的一种数据类型,它有惟一的值undefined
比如数据类型Boolean,它的值只可能是true或false。
如果你不事先声明一个叫Undefined的变量,那么
if( carname == Undefined) 这样写绝对是错的,因为它不像Boolean,String等(除了表示一种数据类型,它还是一种JS对象),它只是表示一种数据类型,当你引用的变量数据类型是Undefined时,那么这个变量的值就是undefined
------解决方案--------------------咋不会用调试器。
用alert这么低级。
var $b = Undefined; 是报错的。
------解决方案--------------------没有Undefined
------解决方案--------------------Undefined只是一種數據類型,當某個變量的數據類型是Undefined,它的默認且惟一的值就是undefined。
在JS中,我們要使用某個變量的時候,往往要判斷變量是否存在并且是否被賦值,那么如果這個變量的值為undefined時,那么我們知道了,這個變量的數據類型是Undefined,它不存在或沒有被賦值。
因此Undefined在JS中,只是一個名詞概念,來表示一種數據類型,真正在程序中使用到的是它的值undefined。
------解决方案--------------------判断变量是否定义是这样的:
if(typeof(carname)=='undefined')
alert("not exists");
------解决方案--------------------据我判断,搂住是不是吃饱了,没事干。
1,那不是异常,那是错误。任何语言,遇到错误,难道会继续进行下去吗?
2.只要值是undefined,他就是Undefined类型。Undefined类型一般很多地方都会叫undefined类型。
------解决方案--------------------
我终于明白你的 意思了
undefined 在js中 属于一个状态判断对象
当一个变量没有定义 那么他就匹配 undefined
注意 他和null是有区别的
为什么有 undefined
如下:
在面向对象的程序中 实际对象 和 变量 是2个分离的关系
比如 "123" 这是一个 string 类型的对象
var str; 声明了一个变量
var str = "123"; 声明了变量str 指向了对象"123"(细节可能不完全是这样 但是逻辑上就是这样)
怎么指向的?也就是 怎么程序内部知道 str 指向 “123”
变量 str 保存在 栈上 他包含一个数字的值
对象 "123" 保存在 堆上 他有一个地址(看成内存存放该对象的起始值)