美文网首页
01|JavaScript是一种动态的弱类型语言

01|JavaScript是一种动态的弱类型语言

作者: 雪燃归来 | 来源:发表于2020-05-16 16:48 被阅读0次
image.png

一、JavaScript与C++对比

javascript

class Person{
  constructor(x,y){
    this.x = x;
    this.y = y;
  }
}

function add(a,b){
  return a.x + b.y + b.y;
}
image.png
在程序运行时,动态计算属性偏移量
需要额外的空间存储属性名
所有对象的偏移量信息各存一份

C++

class C{
  public:
    int x;
    int y;
}
int add(C a, C b){
  return a.x + a.y + b.y
}
image.png
编译阶段确定属性的偏移量
用偏移量访问代替属性名访问
偏移量信息共享

二、静态类型和动态类型对比

静态类型语言 动态语言类型
对类型极度严格 对类型比较宽松
立即发现错误 Bug可能隐藏数月深圳数年
运行时性能好 运行时性能差
自文档化 可读性差

动态类型的语言支持者认为
性能是可以改善的(V8引擎),而语言的灵活性更重要
隐藏的错误可以通过单元测试发现
文档可以通过工具生成

三、语言类型象限

image.png

相关文章

网友评论

      本文标题:01|JavaScript是一种动态的弱类型语言

      本文链接:https://www.haomeiwen.com/subject/csplohtx.html