区分JavaScript中的undefined,null和NaN

区分JavaScript中的undefined,null和NaN 


先看看下面语句的运行结果: 

 1: var a; 

 2: alert(a); //显示"undefined"

 3: alert(typeof a); //显示"undefined"

 4: alert(b); //显示"undefined"

以上说明a的值和类型都是'underfined'


 1: var a = null

 2: alert(a); //显示"null"

 3: alert(typeof a); //显示"object"

以上说明赋值为null的变量,值为null,类型为object


 1: var b;

 2: alert(null==b); // 显示"true"

 3: alert(null == undefined); //显示"true "

以上说明undefinednull是相等的


 1: var a1; //值和类型都是'underfined'

 2: var a2 = null//值为null,类型为object

 3: alert(a1 == a2); //显示"true"

以上两例说明nullunderfind很相似,至少undefinednull是相等的。


 1: alert(100 + null); //显示"100"

 2: alert(100 + undefined); //显示"NaN" 

以上说明nullunderfind虽然很相似,但还是有小区别的,嘿嘿!


underfined: 未知的变量名,或未赋值的变量。
null: 特殊的object
NaN: 特殊的number


 1: alert(typeof(undefined));//显示 'undefined'

 2: alert(typeof(null));//显示 'object'

 3: alert(typeof(""));//显示 'string'

 4: alert(typeof(0));//显示 'number'

 5: alert(typeof(false));//显示 'boolean'

 6: 

 7: var a7 = NaN;

 8: var a8 = undefined; 

 9: 

 10: alert(typeof a7); //显示"number"

 11: alert(typeof a8); //显示"undefined"

以上说明NaN是一种特殊的number,和nullundefined都不会相等。

 

函数参数没有和为空的判断

先看看下面的例子:

 1: Test = function(a)

 2: {

 3: alert(typeof a); 

 4: } 

 5:  

 6: Test(); //没传参数,运行结果为"underfined"

 7: Test(null); //传了空参数,运行结果为"object", 如果要使用a.length等,就会报错,因为对象为空!

正确的参数检查是:

 1: Test = function(v)

 2: {

 3: if (v !== null && typeof v != 'undefined'

 4: {

 5: //使用v的属性,例如v.length, v.property

 6: // if (v.offsetX != undefined) 

 7: // if ( value == undefined )

 8: }

 9: }

当然,也可以用 if(v) 来简化编码,可以检查v没给定和vnull的情况,但要注意,如果传入一个booleantruefalse,用ifv)就意味着 if( v == true),代码逻辑可能不是你想要的结果!


补充:

var  a1;         // a1的值为undefined
var  a2  =   null ;
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与任何值都不相等,与自己也不相等。



内容概要:本文介绍了DeepSeek在职场中的应用,从提示语技巧到多场景应用,涵盖了DeepSeek的基础模型(V3)、深度思考模型(R1)及其联网搜索功能。文中详细描述了DeepSeek的模型对比,包括操作规范、结果导向、路径灵活性、响应模式风险特征等方面。此外,还探讨了DeepSeek在制作可视化图表、PPT、海报、视频以及批量生成新媒体文案等具体应用场景中的使用方法技巧。最后,文章展示了DeepSeek在市场调查、AI应用开发等方面的应用实例,强调了其在人机协同共生领域的潜力。 适用人群:适用于希望提升工作效率创新能力的职场人士,特别是从事数据分析、内容创作、市场营销、AI开发等领域的专业人士。 使用场景及目标:①通过DeepSeek的基础模型(V3)深度思考模型(R1)进行高效的任务处理复杂推理;②利用DeepSeek制作可视化图表、PPT、海报视频,提高内容创作的质量效率;③通过DeepSeek进行市场调查AI应用开发,优化业务流程并推动创新。 其他说明:DeepSeek不仅提供了强大的AI工具,还强调了人机协同的重要性。用户在使用过程中应注意操作规范,结合实际需求选择合适的模型,并充分利用DeepSeek的各项功能来实现高效的职场应用。文中还提到了多个国际竞赛中的获奖情况,展示了DeepSeek团队在AI领域的卓越实力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值