编程语言特性

482 阅读1分钟

类型检查

静态类型

一个变量声明时其类型就是明确的,而且声明过后其类型不能发生变化

需要在编译阶段做类型检查

###动态类型

变量的类型在运行时才会明确,而且变量的类型随时可以改变

类型安全

强类型

  • 在语言层面函数的实参类型必须和形参类型完全相同
  • 不允许任意隐式类型转换

弱类型

  • 在语言层面不会限制实参类型
  • 允许任意隐式类型转换

image.png

JavaScript

动态的弱类型语言。没有编译环节(动态类型语言,不需要在编译阶段进行类型检查)

弱类型#问题

  • 弱类型的异常问题需要等到运行时才能够被发现
  • 类型不明确导致函数功能出现问题
  • 多人开发,君子约定存在隐患

强类型#优势

  • 问题更早暴露(编译阶段)
  • 代码更智能,编码更准确(强类型智能提示)
  • 重构更牢靠
  • 减少代码层面不必要的类型判断