jsjs 对象添加属性和值为什么是undefined csdn

2013年4月 总版技术专家分月排行榜第一2013年3月 总版技术专家分月排行榜第一
2013年4月 .NET技术大版内专家分月排行榜第一2013年3月 .NET技术大版内专家分月排行榜第一
2013年4月 总版技术专家分月排行榜第一2013年3月 总版技术专家分月排行榜第一
2013年4月 .NET技术大版内专家分月排行榜第一2013年3月 .NET技术大版内专家分月排行榜第一
2013年4月 总版技术专家分月排行榜第一2013年3月 总版技术专家分月排行榜第一
2013年4月 .NET技术大版内专家分月排行榜第一2013年3月 .NET技术大版内专家分月排行榜第一
2013年4月 总版技术专家分月排行榜第一2013年3月 总版技术专家分月排行榜第一
2013年4月 .NET技术大版内专家分月排行榜第一2013年3月 .NET技术大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。2016年2月 总版技术专家分月排行榜第二2014年2月 总版技术专家分月排行榜第二2013年4月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2016年8月优秀小版主2016年7月优秀小版主优秀小版主2015年7月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2014年11月论坛优秀版主
2016年2月 总版技术专家分月排行榜第二2014年2月 总版技术专家分月排行榜第二2013年4月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2016年8月优秀小版主2016年7月优秀小版主优秀小版主2015年7月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2014年11月论坛优秀版主
2016年2月 总版技术专家分月排行榜第二2014年2月 总版技术专家分月排行榜第二2013年4月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2016年8月优秀小版主2016年7月优秀小版主优秀小版主2015年7月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2014年11月论坛优秀版主
本帖子已过去太久远了,不再提供回复功能。js中typeof用法详细介绍及NaN、 null 及 undefined 的区别 - 博客频道 - CSDN.NET
inyiyi的博客
分类:javascript
在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型。
typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: “number,” “string,” “boolean,” “object,” “function,” 和 “undefined.”我们可以使用typeof来获取一个变量是否存在,如if(typeof a!=”undefined”){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。
typeof 语法中的圆括号是可选项。
if(document.mylist.length != “undefined” ) {} 这个用法有误.
正确的是 if( typeof(document.mylist.length) != “undefined” ) {}
或 if( !isNaN(document.mylist.length) ) {}
typeof的运算数未定义,返回的就是 “undefined”.
运算数为数字 typeof(x) = “number”
字符串 typeof(x) = “string”
布尔值 typeof(x) = “boolean”
对象,数组和null typeof(x) = “object”
函数 typeof(x) = “function”
typeof 运算符返回一个用来表示表达式的数据类型的字符串。
可能的字符串有:”number”、”string”、”boolean”、”object”、”function” 和 “undefined”。
alert(typeof (123));//typeof(123)返回”number”
alert(typeof (“123″));//typeof(“123″)返回”string”
对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。
如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。
instanceof用于判断一个变量是否某个对象的实例,如var a=new Array();alert(a instanceof Array);会返回true,同时alert(a instanceof Object)也会返回这是因为Array是object的子类。
再如:function test(){};var a=new test();alert(a instanceof test)会返回true。
a instanceof Object 得到true并不是因为 Array是Object的子对象,而是因为 Array的prototype属性构造于Object,Array的父级是Function
NaN、 null 及 undefined 的区别
NaN:保留字(表明数据类型不是数字)
undefined:对象属性或方法不存在,或声明了变量但从未赋值。
即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对
其进行操作(当然赋值除外),会有”undefined”提示null 值指出一个变量中没有包含有效的数据。
产生 null 的原因是:对一个变量显式地赋值为 null。 包含 null 的表达式之间的任何操作。
Boolean 表达式
一个值为 true 或者 false 的表达式。
如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:所有的对象都被当作 true。 当且仅当字符串为空时,该字符串被当作 false。
null 和 undefined 被当作 false。
当且仅当数字为零时,该数字被当作 false。
字符串比较
两个字符序列之间的比较。
除非在进行比较操作的函数中指出,所有的字符串比较操作都是二进制的。
在英语中,二进制比较区分大小写;而文本比较则不区分。
数值表达式
数值表达式指的是任何值为数字的表达式。这种表达式的元素可以包括关键字、变量、文字和运算
符的任意组合,只要此组合能够生成一个数字。在特定的情况下,如果可以的话,字符串也可以被
转换为数字。
一种 JScript 函数,具有两个特殊的性质:由 new 运算符来调用此函数。 通过 this 关键字将新
创建对象的地址传递到此函数。 强列建议使用构造函数来初始化新的对象。
ASCII 字符集
美国标准信息交换编码 (ASCII) 的 7 位字符集,它被广泛地用来表示标准的美国键盘上的字母和符号。
ASCII 字符集与 ANSI 字符集中的头 128 个字符 (0–127) 完全相同。Automation 对象通过
Automation 接口可以被其他应用程序或编程工具使用的对象。
全球标准时间 (UTC)
全球标准时间指的是由世界时间标准设定的时间。原先也被称为格林威治标准
时间或者 GMT。
Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。
主要(基本)数据类型是:字符串 数值 布尔
复合(引用)数据类型是:对象 数组
特殊数据类型是:Null Undefined
null = = undefined
“NaN” = = NaN
NaN = = NaN
NaN != NaN
false = =0
true = = 2
undefined = = 0
null = = 0
“5” = = 5
1.类型分析:
js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
var a3 = 1;
var a4 = “Hello”;
var a5 = new Object();
var a7 = NaN;
alert(typeof a);
//显示”undefined”
alert(typeof a1); //显示”undefined”
alert(typeof a2); //显示”boolean”
alert(typeof a3); //显示”number”
alert(typeof a4); //显示”string”
alert(typeof a5); //显示”object”
alert(typeof a6); //显示”object”
alert(typeof a7); //显示”number”
alert(typeof a8); //显示”undefined”
从上面的代码中可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。
2.比较运算
//a1的值为undefined
var a3 = NaN;
alert(a1 == a2); //显示”true”
alert(a1 != a2); //显示”false”
alert(a1 == a3); //显示”false”
alert(a1 != a3); //显示”true”
alert(a2 == a3); //显示”false”
alert(a2 != a3); //显示”true”
alert(a3 == a3); //显示”false”
alert(a3 != a3); //显示”true”
从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。
Null 数据类型
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。
包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。
请注意,在 Jscript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。
Undefined 数据类型
如下情况使返回 undefined 值:
对象属性不存在,
声明了变量但从未赋值。
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x :
// 这种方法不起作用
if (x == undefined)
// 作某些操作
// 这个方法同样不起作用- 必须检查
// 字符串 “undefined”
if (typeof(x) == undefined)
// 作某些操作
// 这个方法有效
if (typeof(x) == “undefined”)
// 作某些操作
考虑将 undefined 值与null做比较。
针对上面的判断,如果变量 x 没有定义的话 if (x == undefined) {…}会抛出exception:变量x未定义,这句判断不会执行,可用try{…}catch(ex){…} 捕获。
不管x是否已经定义,使用 if (typeof(x) == undefined) 都会判断为 false。
someObject.prop ==
如下情况时,比较的结果为 true,
如果属性 someObject.prop 包含 null 值,
如果属性 someObject.prop 不存在。
要检查一个对象属性是否存在,可以使用新的 in 运算符:
if (“prop” in someObject)
// someObject 有属性 ‘prop’
在JavaScript中,null与undefined一度使人迷惑。下面的分析,有利于你更清晰的认知它(或者让你更迷惑):
- null是关键字;undefined是Global对象的一个属性
- null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值。试试下面的代码:
document.writeln(typeof null); //return object
document.writeln(typeof undefined); //return undefined
- 对象模型中,所有的对象都是Object或其子类的实例,但null对象例外:
document.writeln(null instanceof Object); //return false
- null“等值(==)”于undefined,但不“全等值(===)”于undefined:
document.writeln(null == undefined); //return true
document.writeln(null === undefined); //return false
- 运算时null与undefined都可以被类型转换为false,但不等值于false:
document.writeln(!null, !undefined); //return true,true
document.writeln(null==false); //return false
document.writeln(undefined==false); //return fals
排名:千里之外
(5)(7)(9)(26)(3)(0)(0)(1)(1)(1)(1)(1)(1)(1)(2)(1)(1)(1)(1)J2EE(81)
typeof()函数 返回的是字符串,有六种可能:&number&、&string&、&boolean&、&object&、&function&、&undefined&
js中undefined,null,NaN的区别
1.类型分析:
js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。
2.比较运算
var a1;&&&&&&&& //a1的值为undefined
var a3 = NaN;
alert(a1 == a2); //显示&true&
alert(a1 != a2); //显示&false&
alert(a1 == a3); //显示&false&
alert(a1 != a3); //显示&true&
alert(a2 == a3); //显示&false&
alert(a2 != a3); //显示&true&
alert(a3 == a3); //显示&false&
alert(a3 != a3); //显示&true&
从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。
提示和注释
提示:只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。
注释:null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1195167次
积分:15745
积分:15745
排名:第571名
原创:331篇
转载:645篇
评论:97条
(1)(4)(1)(2)(2)(2)(1)(14)(30)(30)(15)(2)(1)(4)(12)(8)(11)(46)(14)(16)(17)(33)(35)(34)(24)(12)(39)(87)(58)(20)(23)(22)(25)(12)(10)(15)(22)(31)(18)(34)(31)(19)(69)(57)(8)(1)(1)(1)(5)2014年7月 Web 开发大版内专家分月排行榜第三
2012年6月 Web 开发大版内专家分月排行榜第二2012年5月 Web 开发大版内专家分月排行榜第二2011年5月 PHP大版内专家分月排行榜第二2008年9月 硬件使用大版内专家分月排行榜第二
2012年7月 Web 开发大版内专家分月排行榜第三2011年8月 PHP大版内专家分月排行榜第三2011年8月 Web 开发大版内专家分月排行榜第三2011年7月 PHP大版内专家分月排行榜第三2011年4月 Web 开发大版内专家分月排行榜第三2008年9月 Windows专区大版内专家分月排行榜第三
2012年6月 Web 开发大版内专家分月排行榜第二2012年5月 Web 开发大版内专家分月排行榜第二2011年5月 PHP大版内专家分月排行榜第二2008年9月 硬件使用大版内专家分月排行榜第二
2012年7月 Web 开发大版内专家分月排行榜第三2011年8月 PHP大版内专家分月排行榜第三2011年8月 Web 开发大版内专家分月排行榜第三2011年7月 PHP大版内专家分月排行榜第三2011年4月 Web 开发大版内专家分月排行榜第三2008年9月 Windows专区大版内专家分月排行榜第三
2013年10月 Web 开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 js给json对象添加属性 的文章

 

随机推荐