理解js中的:Null、undefined、""、0、false
理解js中的:Null、undefined、""、0、false
2010-01-02 05:54
1、undefined、null、""、0、false这五个值在if语句中做判断,都会执行false分支 2、??? undefined和null比较特殊, ??? 虽然null的类型是object,但是null不具有任何对象的特性, ??? 就是说我们并不能执行null.toString()、null.constructor等对象实例的默认调用。 ??? 所以从这个意义上来说,null和undefined有最大的相似性。 ??? ★★看看null == undefined的结果(true)也就更加能说明这点。 ??? 不过相似归相似,还是有区别的, ??? 就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。 3.""、0和false虽然在if语句表现为"假值",可它们都是有意义数据,只是被作为了"空值"或"假值" 因为:★★"".toString(),(0).toString()和false.toString()都是合法的可执行表达式。
4.当尝试读取不存在的对象属性时也会返回 undefined。 提示:只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。 注释:null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。
?
<html> <head> ??? <TITLE>解决Null 和 undefined 等问题</TITLE> ??? <script type="text/javascript"> ???? ??? var str="How are you doing today?" ???? ??? document.write(str.split(" ") + "<br />") ??? document.write(str.split("") + "<br />") ??? document.write(str.split(" ",3)) ???? /** ??? * 这里有一题目:JS中,如何判断一个对象的值是不是NULL? ??? * ??????? 解: ??????? if(!obj||obj=='null'||typeof(object)=="undefined"))??? ????????? {??? ??????????????????? alert('NULL');??? ???????????? ????????? }??? ?????????? ????? ????? ????? ????? ??? //============================================================================= ??? //各种类型 ??? //_____________________________________________________________________________ ??? document.write("<br>"); ??? document.write("各种类型:"); ??? document.write("<br>"); ??? if(null == undefined){document.write("<br><br> null == undefined 为ture<br>")} ??? if(typeof(undefined) == 'undefined')document.write("typeof(undefined) == 'undefined'为true<br>"); ??? if(typeof(null) == 'object'){document.write("typeof(null) == 'object'为ture<br>")} ??? if(typeof("") == 'string')document.write("typeof(\"\") == 'string'为true<br>") ??? if(typeof(0) == 'number'){document.write("typeof(0) == 'number'为true<br>")} ??? if(typeof(false) == 'boolean'){document.write("typeof(false) == 'boolean'为true<br><br>")} ??? /* ??? 以上段运行结果: ??? null == undefined 为ture ??? typeof(undefined) == 'undefined'为true ??? typeof(null) == 'object'为ture ??? typeof("") == 'string'为true ??? typeof(0) == 'number'为true ??? typeof(false) == 'boolean'为true ??? */
??? //=============================================== ??? //测试何时if(判断条件为false) ??? //______________________________________________ ??? document.write("<br>"); ??? document.write("测试何时if(判断条件为false)"); ??? document.write("<br>"); ??? if(null){document.write("if(null)<br>")} ??? if(undefined){document.write("if(undefined)<br>")} ??? if(""){document.write('if("")<br>')} ??? if("123"){document.write('if("123")<br>')} ??? if(0){document.write('if(0)<br>')} ??? if(1){document.write("if(1)<br>")} ??? if(true){document.write("if(true)<br>")} ??? if(false){document.write('f(false)<br>')} ??? // if(){} ??? /* ??? 以上段运行结果: ??? if("123") ??? if(1) ??? if(true) ???? ??? 结论: ??? ★★★★★★undefined、null、""、0、false这五个值在if语句中做判断,都会执行false分支 ??? */
??? //======================================================= ??? //undefined和null与“算数”运算符 ??? //_______________________________________________________ ???? ??? document.write("<br>"); ??? document.write("undefined和null与“算数”运算符"); ??? document.write("<br>"); ??? document.write(10 + null+"<br>"); ??? document.write(10 + undefined); ??? document.wri
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|