《JS》里面 if语句一定要加花括号吗?

JavaScript022

《JS》里面 if语句一定要加花括号吗?,第1张

判断结果只有一句是可以不写花括号

function aaa(a,b){

if (b==0) return 0除数为0 就直接返回0

return a/b

}

在绝大多数编程语言中,如果if、for、while等语句的内容中仅有一条语句,可以省略花括号。

在这里,for循环没有花括号,所以,其等价于:

for(i = 0 i < arr1.length i++){

    for(j = 0 j < arr1[i].length j++){

        alert(arr1[i][j])

    }

}

alert(arr1[1])

也就是说,第一个for循环的循环体只有一个for循环,而这个for循环也没有花括号,所以这个for循环的循环体只有一个alert(arr1[i][j]),另外一条语句alert(arr1[1])不是两个for循环的循环体,要在两个循环都执行完毕后才会执行到。

不要被代码的缩进给迷惑了。同时提醒,良好的编码习惯应该不管循环体有几条语句,都加上花括号,以免引起和这里类似的错误。

JavaScript中小括号有五种语义,中括号有四种语义,而大括号也有四种语义。小括号:语义1,函数声明时参数表(形参)语义2,和一些语句联合使用以达到某些限定作用(if、for等)语义3,和new一起使用用来传值(实参)语义4,作为函数或对象方法的调用运算符(如果定义了参数也可与语义3一样传实参)语义5,强制表达式运算(常用有eval解析JSON和匿名函数自执行)中括号:语义1,声明数组语义2,取数组成员语义3,定义对象成员(可以不遵循标识符规则,可以以数字开头定义标识符)语义4,取对象成员大括号:语义1,组织复合语句,这是最常见的语义2,对象直接量声明(赋值对象)语义3,声明函数或函数直接量赋值语义4,结构化异常处理的语法符号(try...catch语句)