JavaScript 中的数组有很多特性:存放不同类型元素、数组长度可变等等,这与数据结构中定义的数组结构或者C++、Java等语言中的数组不太一样,那么JS数组的这些特性底层是如何实现的呢,我们打开V8引擎的源码,从中寻找到了答案。V8中对数组做了一层封装,使其有两种实现方式:快数组和慢数组,快数组底层是连续内存,通过索引直接定位,慢数组底层是哈希表,通过计算哈希值来定位。两种实现方式各有特点,有各自的使用情况,也会相互转换。
一窥 nextTick
简而言之,vue
通过异步队列的方式控制DOM
更新,而 nextTick
则是在下一次 DOM
更新之后执行其回调函数。
javascript string、array常用API练习
在 freeCodeCamp 做了一些练习,因此来总结一下有关javascript中常用的有关字符串和数组处理的官方API。
MongoDB 基础命令语法
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
前端基础进阶10 详解面向对象、构造函数、原型与原型链
面向对象可以说是JavaScript中很重要的一个部分,也是很难理解的重点,我们先来看一看关于面向对象的一些基本功。
前端基础进阶09 记忆
函数可以将先前操作的结果记录在某个对象中,从而避免无谓的重复计算。这种优化被称之为 记忆(Memorization)
。JavaScript的数组和对象要实现这种优化是很方便的。
前端基础进阶08 柯里化
柯里化(Currying),也被翻译为“局部套用”,是把多参数函数转换为一系列单参数函数并进行调用的技术。函数也是值,从而我们可以用有趣的方式去操作函数值。柯里化允许我们把函数与传递给它的参数相结合,产生出一个新的函数。
前端基础进阶07 函数与函数式编程
纵观JavaScript中所有必须需要掌握的重点知识中,函数是我们在初学的时候最容易忽视的一个知识点。在学习的过程中,可能会有很多人、很多文章告诉你面向对象很重要,原型很重要,可是却很少有人告诉你,面向对象中所有的重点难点,几乎都与函数息息相关。所以大家一定要重视函数。
前端基础进阶06 Chrome开发者工具调试
在chrome的开发者工具中,通过断点调试,我们能够非常方便的一步一步的观察JavaScript的执行过程,直观感知函数调用栈,作用域链,变量对象,闭包,this等关键信息的变化。