强类型 & 弱类型 (针对类型转换是否)
静态类型 & 动态类型 (针对类型检查时机)
强类型 & 弱类型
- 强类型: 每个变量和对象都必须声明类型,他们是在编译的时候就确定类型,在执行时不可更改 (安全、效率高)
- 弱类型:执行的时候才确定类型
静态类型 & 动态类型
静态类型语言会在编译时进行类型检查,而动态语言 [eg: javascript]则是在运行时进行类型检查。
这就意味着,动态类型即使代码中包含了会在运行时组织脚本正常运行的错误类型,这段代码也可以通过编译。
- 静态检测的意义和好处
意义: 静态类型检测有利于构建大型应用
好处:
1、在大型应用中,静态类型检测能做到即使编写的代码没执行到,在编译阶段即可发现代码中类型不匹配。
(ps:普通js项目是没有编译的,因为javascript是解释型语言,是不需要编译的,浏览器直接解释代码。不需要编译,即不存在什么语法不语法的,直接运行时才发现语法错误)
编译 & 解释
编译: 将代码转换成机器语言,然后写成可执行文件;
解释:运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将原代码转换成二进制代码一供执行 【易移植】