什么时候可以使用管道运算符进行条件参数? - JavaScript

时间:2012-08-17 16:27:05

标签: javascript jquery null operator-keyword pipeline

我的代码中有以下行:

var cart = $("#dynamo_shop_window .dynamo_content tbody .shop_cart").html();

但是,如果页面上没有匹配的元素,我希望cart的值为空字符串,即:

!$("#dynamo_shop_window .dynamo_content tbody .shop_cart").size();

如果是这种情况,var cart = null;,根据Chrome的开发者工具,无论如何都是如此。

为了给它提供空字符串值,我有什么理由在上面的代码之后使用cart = cart !== null ? cart : '';而不是用以下代码替换上面的代码:

var cart = $("#dynamo_shop_window .dynamo_content tbody .shop_cart").html() || '';

.html()永远不会返回0或任何其他false相关陈述。

3 个答案:

答案 0 :(得分:2)

不,不是真的。只要左侧有 falsey 值,双管操作符就会向右侧移动,因此undefinednull,{{1}之一},NaN0

如果在所有这些情况下,您希望""cart:那就去吧。使用""

答案 1 :(得分:1)

var cartVal = ($(".shop_cart").html().length > 0) ? $.trim($(".shop_cart").html()) : "";

答案 2 :(得分:-1)

如果我理解你的问题,这也会这样做:

var cart = "";
if($("#dynamo_shop_window .dynamo_content tbody .shop_cart")){
    cart = $("#dynamo_shop_window .dynamo_content tbody .shop_cart").html();
}