React Native 打包IOS应用

在开发RN应用的时候,一般情况下我们使用官方提供的开发模式:依赖本地启动的Node服务,加载本地远程jsbundle文件,可以很方便的做到开发实时热更新。但在某些情况下,我们希望脱离本地Node服务的依赖,将jsbundle文件打包到RN应用中,应该如何做呢?

继续阅读…

火山草原自驾扎营流水账

上周五参加了米户外火山草原自驾扎营活动,这已经是我第二次在外扎营了,第一次扎营是今年五一参加的库布齐沙漠活动。本次活动主要内容就是吃喝玩乐,整体行程不算累,要说累就是坐在车里太久,好在我们会在服务区休息。

继续阅读…

面试题之-深拷贝

深拷贝是前端面试题中经常用来考察前端开发工程师能力的一个题目,该题目会涉及如下考点:

  • JS基本数据类型和引用数据类型概念
  • 函数递归
  • while循环
  • 外部对象
  • 循环引用
  • 拷贝原型链属性
  • 拷贝特殊对象类型
  • 拷贝不可枚举属性
  • 拷贝Symbol属性

继续阅读…

JavaScript 内存管理机制

每种编程语言都有它的内存管理机制,比如C语言底层一般有内存管理接口malloc()free()。JavaScript是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放,释放的过程称为垃圾回收。正因为这种自动“释放”内存的机制,让JavaScript开发者错误的认为他们可以不用关心内存管理,实际上包括我自己在实际的JS项目开发中也很少关注其内存管理问题。

继续阅读…

面试题之-扁平化数组

面试中经常会遇到一道扁平化数组的题目:写一个函数,将输入数组 [1, [2, [3, [4]], 5]] 转化为 [1, 2, 3, 4, 5]的形式。

一开始,我以为是通过此题来考察递归的使用,后来仔细一想,事情远远不止这么简单,本文试着通过几种方式的实现,来理解此题可能要考察的内容。

继续阅读…

Vue.nextTick()异步更新方法解析

Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环“tick”中,Vue 刷新队列并执行实际 (已去重的) 工作。Vue 在内部对异步队列尝试使用原生的 Promise.thenMutationObserversetImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代替。

继续阅读…