美文网首页
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