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. 常见内置对象
可在火狐控制台中查看各种内置对象的使用方法,能够熟练操作使用
- 三种包装对象: String、Number、Boolean
var str = 'hhh'
// var str = new String('hhh') 实际内部函数已经包装好各种方法属性提供直接使用

-
其他常用的标准内置对象: Array、Date、Function、Object
image.png
4. 深入理解栈和队列
- 什么是栈和队列
栈是一种后进先出的数据结构,也就是说最新添加的项最早被移除(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]
结尾出入栈不影响原有的数据位置索引,效率高
开头出入栈影响原有的数据位置索引,效率低
网友评论