0

我知道,如果循环中的数据类型发生变化(例如数组中的一个元素是字符串,而其余元素是 int),js 的 JIT 编译器将取消优化暖代码或热代码。

但是我很少有我无法理解代码是否会被取消优化的场景

  • 相同的循环用于两个数组,其中一个数组包含字符串和其他整数。编译器会在此处取消优化代码还是创建两个副本?(我理解应该是两份)。
  • 如果是对象数组。考虑所有情况,例如
    • 被操纵的子属性是不同的类型。
    • 每个对象都有相同的子属性,但一个对象缺少一个属性。
      • 缺少的属性不在循环内进行操作。
      • 缺少的属性在循环内进行操作(处理空情况)。
    • 所有对象都有不同的属性(添加新属性,或使用属性位置完成操作)。
4

0 回答 0