JS堆、栈&EventLoop

  |  
 阅读次数

JS内存机制

  • 栈内存(stack)
    • 基础数据类型[Number, String, Boolean, Null, Undefined, Symbol]
    • function 函数
    • 数据在 栈内存 储存/使用 类似数据结构 中 堆栈数据结构, 遵循后进先出/先进后出
  • 堆内存(heap)
    • 引用数据类型[Array, Object, Map, Set, …]
    • 访问:从栈中获取了该对象的地址引用(或者地址指针)

浏览器事件机制(EventLoop)

  • 所有同步任务都在主线程上执行, 形成一个执行栈
  • 主线程外, 存在一个 任务队列. 异步任务运行出结果, 任务队列放置事件
  • 执行栈 同步任务执行完毕, 系统读取任务队列, 并放入 执行栈
  • 主线程从 任务队列读取事件, 过程循环不断(EventLoop)

队列=>宏任务/微任务

概念:微任务和宏任务都是属于队列,而不是放在栈中

  • 宏任务(task)
    • 新建 任务队列
  • 微任务(Microtasks)
    • 在当前队列执行任务,减小性能开销

总结

  • 栈:
    • 存储 基础数据类型
    • 按值访问
    • 存储的值大小固定
    • 由系统自动分配内存空间
    • 空间小, 运行效率高
    • 先进后出, 后进先出
    • 栈中 DOM, ajax, setTimeout 依次进入队列,栈中代码执行完毕,再将队列事件放入执行栈
    • 宏任务/微任务
  • 堆:
    • 存储 引用数据类型
    • 按引用访问
    • 存储的值 大小不定,可动态调整
    • 主要用来存放 对象
    • 空间大 运行效率相对较低
    • 无序存储,可根据引用直接获取

高效沟通

  |  
 阅读次数

认知篇[情商沟通底层逻辑]

沟通中一定要避免的方式

如何不经意夸人达到自己的沟通目的

实践篇[开口掌握说话主动权]

不露痕迹地跨到对方心坎里

如何制造悬念,迅速拉近距离

顺势巧妙的夸人

初次见面如何寒暄,才能真诚不尴尬

摆脱距离感,像朋友一样聊天

尴尬冷场,如何自嘲缓解气氛

利用心理学效应,快速拉近距离

赞美时,如何让对方感觉发自肺腑

3招让对方坦然接受你的请求

沟通时出其不意给人惊喜

学会利用“第三者”,让对方迅速成为自己人

五个细节,让朋友越聊越走心

如何投其所好,旁敲侧击得到你想要的信息

  • 具象化
  • 从否到肯
  • 4个细节
  • 主动寒暄
  • 置换角度
  • 对比法
  • 得失效应
  • 似否实肯
  • 信任刺激
  • 独辟蹊径
  • 间接赞美
  • 随手记
  • 察觉需求

进阶篇[关键时刻打破沟通僵局]

“说完就后悔”,如何快速反应

亲密关系中,如何巧妙不矫情地夸赞对方

拒绝假大空,拒绝套路式沟通

好好说话,拒绝”语言微暴力”

好好利用冲突,为你们的关系加点香料

学会反思,靠说话赢得最重要的人

  • 弱化批评
  • 恋情密码
  • 去伪存真
  • 反观诸己
  • 就事论事
  • 七问诸君

#

编译原理

  |  
 阅读次数

编译原理 – 陈意云

前言

编译器 构造 一般原理、基本设计方法、主要实现技术
编译器技术近年来 主要进展在面向 新型计算机体系结构 的优化 方面。 例如 并行化、低功耗.

特点

高可信软件

Vue-开发技巧

  |  
 阅读次数

Vue开发技巧

状态共享

vue.js 2.6 新增加的 Observable API

长列表性能优化

object.defineProperty对数据进行劫持
object.freeze方法来冻结一个对象
只是冻结 值,引用不会被冻结,当我们需要 reactive数据的时候,我们可以重新给 变量赋值。

去除多余的样式

purgecss

作用域插槽

属性事件传递

函数式组件

监听组件的生命周期