Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189354
  • 博文数量: 92
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-04 21:12
文章分类
文章存档

2013年(92)

我的朋友

分类: 信息化

2013-04-19 02:36:25

原文:JavaScript quirk 2: two “non-values” – undefined and null 译文:「译」JavaScript 的乖僻 2:两个「空值」:undefined 和 null 译者:SingleSeeker 此文是?javascript 的 12 个乖僻(quirks)?系列的第二篇。 谢谢?@SingleSeeker?对本文的翻译。 以下是正文: 关于“空  值”或“空引用”,大多数编程言语只需一个值。比方,在 Java 顶用的是?null。 但是在 Javascript 中却有两个格外的值:undefined?和?null。 他们基本上是相同,但用法上却略有些不相同。 在这个?系列教程?的结尾,我会解释一下在 ECMAScript 6 中的一些改动。 undefined?是被言语本身所分配的。 如果一个变量还没有被初始化,那么它的值便是?undefined: > var foo;
> foo
undefined
 同理,当缺失参数时 JavaScript 会分配一个?undefined: > function id(x) { return x }
> id()
undefined
 null?是被开发者用来明确指出某个值是缺失的, 例如,关于?JSON.stringify(): > console.log(JSON.stringify({ first: 'Jane' }, null, 4))
{
    "first": "Jane"
}
 校检:一个变量能否有值? 如果你想知道变量?v?能否有值,正常情况下,你需要一同查验?undefined?与?null。 走运的是两个值都是?false 型。 因此,只用一个区分,就可以一同查验这两项能否为真: if (v) {
    // v 有值
} else {
    // v 没有值
}
 在本?系列?的第 5 有些——关于函数参数的处置——你将会看到更多的上面校检比方。 有一点要注意的是:这个检查也会把?false,-0,? 0,?NaN?与 '' 当成“空值”。 如果这不是你想要的,那么就不能运用上面的校检方法了。 你有两个选择。 有些人建议运用不等于(!=)来校检 v 既不是?undefined?或?null: if (v != null) {
    // v 有值
} else {
    // v 没有值
}
 不过,这要求你要了解?!=?认为?null?只等于它自己或是?undefined。 我喜爱用更有可读性的?!==: if (v !== undefined   
阅读(782) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~