我怎么知道何时使用if或switch语句?

时间:2015-08-11 16:11:53

标签: javascript if-statement switch-statement

我想在我的网址参数上构建我的Example.o: file not recognized: File format not recognized对象。

data

我想检查它们是否先存在,然后相应地设置它。

我拥有的是否足够好?

我应该使用switch语句吗?

5 个答案:

答案 0 :(得分:4)

  

我拥有的是否足够好?

如果您希望缩短它,请在预期的属性名称上使用循环。

  

我应该使用switch语句吗?

没有。 // List - my custom class class RecordsList: NSObject { var listObj: List! init (inout list: List!) { self.listObj = list } func printData() { println(self.listObj.name) } } var listObject = List() listObject.name = "FirstValue" RL = RecordsList(&listObject) listObject.name = "SecondValue" RL.printData() // I expect: "SecondValue" // But result: FirstValue =( 语句的目的完全不同。

答案 1 :(得分:2)

由于您不断检查不同的密钥,因此切换语句在您的情况下无法正常工作。 Switch可以处理单个值,因此您可以根据courseContentId的值使用它来执行不同的操作:

switch(params.courseContentId ) {
    case undefined:
        code block
        break;
    case 10:
        code block
        break;
    default:
        default code block
}

答案 2 :(得分:2)

我不会使用switch或if,但这段代码会做同样的事情,只会更好:

var $data = {};
var params = {};
params.assessmentId = 11;

for (var n in params) {
    $data[n] = params[n]
}
console.log($data);

您只是将值从一个对象复制到另一个对象,因此您只需循环遍历它,$data对象将只接收params中设置的值。

答案 3 :(得分:1)

在您提供的示例中,您实际上并不需要所有switch语句。只需分配$ data属性即可。如果params中的某些内容未定义,则不会反映在$ data对象上。

PS。 switch语句对您没有任何帮助。 switch语句用于根据THE SAME变量的多个可能值分支代码。没有不同的。

答案 4 :(得分:1)

如果您只有这些案例,那么它看起来还不错!!但如果你有很多条件需要检查那么你会有一张支票, 跳转到下一个子句,检查,跳转到下一个子句等等。

另一方面,用"开关" JVM加载要比较的值并迭代值表以查找匹配,这在大多数情况下更快。

注意:switch语句并不总是比if语句快。它比if-else语句的长列表更好地扩展,因为switch可以基于所有值执行查找。但是,对于一个短暂的条件,它不会更快,可能会更慢。