简单来说,运行时是指一段代码,直接扔进浏览器里能运行,例如JS是运行时语言;编译时是指一段代码不能直接在浏览器里跑,需要先经过编译器编译,再放到浏览器里才能运行,例如TS是编译时语言。
编译时
编译时的错误就叫编译时错误,这个过程中做的啥类型检查也就叫编译时类型检查,或静态类型检查(所谓静态就是没把代码放内存中运行起来,而只是把代码当作文本来扫描下)。所以有时一些人说编译时还分配内存啥的肯定是错误的说法。
运行时
所谓运行时就是代码跑起来了,被装载到内存中去了(你的代码保存在磁盘上没装入内存之前是个死家伙,只有跑到内存中才变成活的)。而运行时类型检查就与前面讲的编译时类型检查(或者静态类型检查)不一样,不是简单的扫描代码,而是在内存中做些操作,做些判断。