If语句如何在Javascript中工作

时间:2015-04-23 22:44:55

标签: javascript jquery if-statement logic logical-operators

当用户进行购买时,我希望网站在我的收据页面上查找此Cookie,如果它存在,则该标记应为 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="2"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:weightSum="2" android:orientation="horizontal"> <ImageButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> <ImageButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:weightSum="2" android:orientation="horizontal"> <ImageButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> <ImageButton android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> </LinearLayout> </LinearLayout> 。如果Cookie不存在,则代码应为'FIREuni' : 'TRUE'。但我不知道天气我正在以正确的方式使用if语句。我对javascript很新,这可能是我的第一个代码,任何人都可以帮我告诉我哪里犯了错误?

'FIREuni' : 'FALSE'

4 个答案:

答案 0 :(得分:1)

看起来您正在使用条件(if / else),但是在设置FIREuni值方面存在一些语法错误。条件通过评估传递给它们的表达式来工作,如果表达式的计算结果是真实的(除了nullundefinedfalse''之外的其他任何东西都可以。 ,void 00)然后将执行后面的代码块,否则它将移至下一个else ifelse(如果它们存在)。< / p>

在对象外部设置值时,应使用=,而不是:。所以它应该是:

FIREuni = true;
条件下

FIREuni = false

答案 1 :(得分:0)

如果找不到cookie,看起来你的getCookie方法会返回null。在JS null和&#34;&#34;不是一回事。你应该检查是否(src!=== null)。

根据你的getCookie函数,你可能需要检查null,undefined和/或&#34;&#34;。

答案 2 :(得分:0)

根据您的最新评论:&#34; FIREuni是trackobject的对象[...]&#34;

我认为这样的事情是你正在寻找的:

var TrackObject;

function checkCookie() {
    var src = getCookie("src");

    if (src) {

        TrackObject = {

            FIREuni : true,

            'CJ' : {

                'CID': '12346',
                'TYPE': '7865',
                'OID': 'ORDERNUMBER',
                'CURRENCY':'USD',
                'DISCOUNT': '',
                'COUPON': '',

                PRODUCTLIST : [

                    {   'ITEM': 'item.variant.sku',
                        'AMT': 'OTOTAL',
                        'QTY': 'OTY'
                    },
                    {   'ITEM': 'item.variant.sku',
                        'AMT': 'OTOTAL',
                        'QTY': 'OTY'
                    }
                ]
            }};

    }
    else {

        TrackObject = {

            FIREuni : false,

            'UNI' : {

                'CID': '',
                'TYPE': '',
                'OID': '',
                'CURRENCY': '',
                'DISCOUNT': '',
                'COUPON': '',

                PRODUCTLIST : [

                    {   'ITEM': '',
                        'AMT': '',
                        'QTY': ''
                    }
                ]
            }
        };
    }
} 

答案 3 :(得分:-1)

似乎在您的代码中,FIREuni是一个全局变量,正在function checkCookie()内进行修改。如果您打开标记的某个地方,可以将其明确声明为var FIREuni;,或VAR FIREuni = false;var FIREuni = TRUE; depending on the default value you want it to have or if you want it to be null before any validation is done. About your specific question, the if is correct in your case, is just a matter of if(condition){ }其他{ }` 并且您的状况似乎来自另一个函数,该函数检查客户端计算机中是否设置了名为src的cookie。

我不建议您使用您正在使用的方法,尽管很好,但如果使用您正在使用的功能设置cookie,我将不会设置全局变量,但我会移动创建对象的整个代码(如果已设置或未设置),function getCookie(),然后,每当您需要检查cookie是否已设置时,调用此函数,如果对象已初始化,请保留为它是,如果它不做你应该做的任何事情,我的意思是,把它全部留空,或用用户的值初始化它。在我看来,这样会更有效率,并且不会使用令人困惑,耗时且有时不是良好做法的全局变量。