前端开发那些事儿

Javascript常见问题(二)

2021-06-20  本文已影响0人  small_zeo
1. js舍入误差
console.log(0.1 + 0.2) // 0.30000000000000004

解决方案:
方案1. parseFloat((0.1 + 0.2).toFiexed(2)) // 0.3
方案2

function add(num1, num2) {
  var m = Math.pow(10, 2)
  reture (num1 * m + num2 * m) / m
}
console.log(0.1 + 0.2) // 0.3
2. 如何优化for循环
for(var i = 0, len = arr.length; i < len; i++) { 
      // 避免每次循环都计算arr.length 
}
3. 常见内置对象

可在火狐控制台中查看各种内置对象的使用方法,能够熟练操作使用

  1. 三种包装对象: String、Number、Boolean
var str = 'hhh' 
// var str = new String('hhh') 实际内部函数已经包装好各种方法属性提供直接使用
image.png
  1. 其他常用的标准内置对象: Array、Date、Function、Object


    image.png
4. 深入理解栈和队列
  1. 什么是栈和队列
    栈是一种后进先出的数据结构,也就是说最新添加的项最早被移除(Last-In-First-Out, 后进先出)
    队列数据结构的访问规则是FIFO(First-In-First-Out),队列在列表的末端天家乡,从列表的前端移除项

2.push、pop、unshift、shift
数组是集成了栈和队列的规则
数组对栈的访问形式:
开头出入栈

var arr = [1, 2]
arr.push(3)  // 入栈  [1, 2, 3]
arr.pop() // 出栈 [1, 2]

结尾出入栈

var arr = [1, 2]
arr.unshift(3)  // 入栈 [3, 1, 2]
arr.shift() // 出栈 [1, 2]

结尾出入栈不影响原有的数据位置索引,效率高
开头出入栈影响原有的数据位置索引,效率低

上一篇下一篇

猜你喜欢

热点阅读