猿问

关于JS 新人自学有两个小细节的问题

1.书本例题,对一个数组遍历,输出数组里的所有值。答案是这样的:


if (image.length>0){

    for (var x=0; x<image.length; x++){

      //code

    }

}

而我没有写判断语句直接做的循环,因为我想如果image长度是0自然会跳过循环:


for (var x=0; x<image.length; x++){

  //code

}

输出结果是一样的。但是这样做可以么?以后会不会造成什么错误?


2.书本例题,对英文名字重新排版,名字首写字母大写,姓全部大写。名字被split的成数组。

名字的处理上答案是这样的:


name[0] = name[0],slice(0,1).toUpperCase()+name[0].slice(1).toLowerCase();

我写的答案是这样的:


name[0] = name[0][0].toUpperCase()+name[0].slice(1).toLowerCase();

两个得到的结果是一样的。但是这样做可以么?以后会不会造成什么错误?


谢谢您花费时间回答我的问题。谢谢


守着一只汪
浏览 468回答 2
2回答

陪伴而非守候

第一个 你写的只是多出来一个x=0的变量第二个 如果是空字符串会报错,通过下标获取的方法在低版本ie不兼容也会报错

噜噜哒

第一题if判断类型是否有length属性 并且不为空! 然后再决定是否去循环数组 避免不必要的代码执行而你写法也可以 只不过少了一层判断 它直接去循环 如果有值就循环 无值就跳出 而且多了var x变量缓存 意义不同第二题&nbsp;你是通过字符串的索引去改变首字母的大写 写法没问题例题是通过slice截取字符去操作首字母大写 结果相同 方法不同 没什么问题不会造成错误
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答