javascript中的编码风格

javascript中的编码风格,javascript,coding-style,Javascript,Coding Style,我对您关于以下代码的意见感兴趣: this.skipAdmCharge = function (tot) { if (FR.rynTag.hasOwnProperty('prodfix')) { var prodfix = FR.rynTag.prodfix; for (var prop in prodfix) {

我对您关于以下代码的意见感兴趣:

            this.skipAdmCharge = function (tot) {
                if (FR.rynTag.hasOwnProperty('prodfix')) {
                    var prodfix = FR.rynTag.prodfix;
                    for (var prop in prodfix) {
                        if (prodfix.hasOwnProperty(prop)) {
                            if (prodfix[prop].key === 'ADM') {
                                tot.amt -= prodfix[prop].price * prodfix[prop].quantity
                            }
                        }
                    }
                }
            }
下面这个:

            this.skipAdmCharge = function (tot) {
                var prodfix = FR.rynTag.prodfix;
                if (prodfix) {
                    for (var prop in prodfix)
                        if (prop && (prop.key === 'ADM'))
                           tot.amt -= prop.price * prop.quantity
                }
            }
你认为哪个更好?如果是,为什么


谢谢大家!

两者都没有多余的支票

如果(prodfix.hasOwnProperty(prop))不是必需的,则第一个
的示例
在第二种情况下,
if(prop&
不需要

 this.skipAdmCharge = function (tot) {
    try {
        var prodfix = FR.rynTag.prodfix;
        if (prodfix) {
            for (var prop in prodfix)
                if (prop.key === 'ADM'))
                    tot.amt -= prop.price * prop.quantity
        }
    } catch (e) {
        console.log("failed to calculate total amount in skipAdmCharge" + e.message);
    }
}

注:我对JavaScript也是新手!

两者都很少有不需要的检查

如果(prodfix.hasOwnProperty(prop))
不是必需的,则第一个
的示例
在第二种情况下,
if(prop&
不需要

 this.skipAdmCharge = function (tot) {
    try {
        var prodfix = FR.rynTag.prodfix;
        if (prodfix) {
            for (var prop in prodfix)
                if (prop.key === 'ADM'))
                    tot.amt -= prop.price * prop.quantity
        }
    } catch (e) {
        console.log("failed to calculate total amount in skipAdmCharge" + e.message);
    }
}

PS:我也是JavaScript新手!

这不是“风格”的问题;这是一个给定问题在给定上下文中的正确性问题。不知道上下文就不可能给出答案。因为他们不这么做,所以这个例子有点误导。我投票将这个问题作为离题题来结束,因为关于工作程序的评论适合codereview.stackexchange.com。@Pointy我认为OP指的是缺少大括号(不确定)@dystroy可能,但(对我来说)最显著的区别是第二个代码示例中缺少
.hasOwnProperty()
测试。这不是“风格”的问题;这是一个给定问题在给定上下文中的正确性问题。不知道上下文就不可能给出答案。因为他们不这么做,所以这个例子有点误导。我投票将这个问题作为离题题来结束,因为关于工作程序的评论适合codereview.stackexchange.com。@Pointy我认为OP指的是缺少大括号(不确定)@dystroy,但最显著的区别(对我来说)是缺少第二个代码示例中的
.hasOwnProperty()
测试。