数组越界是什么?数组越界的作用?js代码提升?

1. 数组越界是什么?


数组越界 :  通常指的是数值超出了 JavaScript 能够精确表示的整数范围。
换言之 , 数组索引是从0开始的 , 所以它的范围就是0 ~ arr.length -1 , 当如果超出了这个返回就会数组越界 , 从而抛出 underfined 
 

2.数组越界有什么应用场景?或者说数据越界什么时候会触发?
 

function sizeHandle(KB) {
  let arr = ['KB' , 'MB' , 'GB']
  let index = 0
  while (KB >= 1024 ) {
    KB /= 1024
    index ++
    
  }
  return KB.toFixed(2) + arr[index]
}


sizeHandle(1025)                     // 输出 1.00 MB

sizeHandle(1025 * 1024)              // 输出 1.00 GB 

sizeHandle(1025 * 1024 * 1024)       // 输出 1.00 underfined   此时就发生了数据越界

3.如何解决? 
   让其永远都在数值范围中即可! 
 

function sizeHandle(KB) {
  let arr = ['KB' , 'MB' , 'GB']
  let index = 0
  while (KB > 1024 && index < arr.length - 1) {
    KB /= 1024
    index ++
    
  }
  return KB.toFixed(2) + arr[index]
}

sizeHandle(1025)                     // 输出 1.00 MB

sizeHandle(1025 * 1024)              // 输出 1.00 GB 

sizeHandle(1025 * 1024 * 1024)       // 输出 1024.00 GB

拓 下面的代码也能实现相同的功能且不会数据越界 但是太呆了哈哈哈
 

function sizeHandle(KB){
  let result = '';
    if (kb < 1024) {
        result = kb + ' KB';
    } else if (kb < 1024 * 1024) {
        result = (kb / 1024).toFixed(2) + ' MB';
    } else if (kb < 1024 * 1024 * 1024) {
        result = (kb / 1024 / 1024).toFixed(2) + ' GB';
    } 
    return result;
}

sizeHandle(1025)                     // 输出 1.00 MB

sizeHandle(1025 * 1024)              // 输出 1.00 GB 

sizeHandle(1025 * 1024 * 1024)       // 输出 1024.00 GB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值