了解typeof的用法

时间:2014-07-27 08:46:31

标签: wordpress typeof

我正在尝试解决wordpress中的问题并成为一个菜鸟,我在面对以下代码时感到困惑(粗体的最后一部分由typeof组成)。有人能用简单的英语向我解释一下吗?

<input id="et_pb_number" type="text" class="regular-text" value="<%= typeof( et_pb_number ) !== 'undefined' ?  et_pb_number : '' %>" />

根据我的理解,这是否意味着某些事情(假设javascript)将检查变量的类型(et_pb_number)并查看它是否未定义,然后接下来会发生什么?

如果我不想让它检查价值的类型,我该怎么办?

1 个答案:

答案 0 :(得分:0)

周围部分与typeof没有直接关系。这是Ternary Operator expression ? when-true : when-false

这两个完全一样:

// ternary form
var test = typeof( et_pb_number ) !== 'undefined' ?  et_pb_number : '';
console.log(test);


// if else block form
var test;
if (typeof et_pb_number !== 'undefined') {
    test = et_pb_number;
} else {
    test = "";
}
console.log(test);

Ternary运算符存在于许多编程语言中,并且在技术上可以完全像if / else一样使用 - 但要小心!这是(正如你自己经历过的)有时难以阅读。一种惯例是,使用它来根据某些条件返回一个或另一个(在您的示例中以这种方式使用它)。从某种意义上说:只有在除了返回一个值之外没有副作用的情况下,才应该(通常)使用它。

你可以在技术上完全做到这一点,但我不会推荐它(再次:出于可理解的原因。从技术上来说它很好):

// don't do this (unless you have a really really really good reason.
var someValue = true;
someValue ? $('body').html('Hello') : $('body').html('World')

这个例子将直接改变外部世界。