面试题答案
一键面试变量声明和类型检查方面主要区别
- JavaScript:是弱类型语言,变量声明时无需指定类型,变量类型在运行时根据赋值动态确定。类型检查相对宽松,不同类型值在运算等操作时可能发生隐式类型转换。
- TypeScript:是强类型语言,变量声明时可指定类型,类型检查在编译阶段进行。若变量赋值类型与声明类型不符,编译会报错,能提前发现类型相关错误。
示例
- JavaScript弱类型变量赋值:
let num;
num = 10; // 赋值数字
num = 'hello'; // 可重新赋值为字符串,无类型错误
- TypeScript强类型变量声明:
let num: number;
num = 10;
// num = 'hello'; // 这样会报错,因为类型不匹配,字符串不能赋值给number类型变量