静态类型和动态类型以及强类型和弱类型
动态类型和静态类型
动态类型指的是变量在被声明时他的类型还不确定,在给变量赋值的时候,才会从值推断出该变量的类型,同时可以随意改变变量的值,其值可以是任何类型的
拿 javascript 来看
var a // 此时还不确定 a 的类型
a = 1 // a 为 Boolean 类型
a = 'hello' // 可以随便修改其值,a 变成了 String 类型
静态类型指的是指在编译阶段,变量被声明时候其类型就被确定了,在代码运行时,也只能给该变量赋值该类型的值
拿 java 来看
String a // a 的类型为 String
a = "hello" // 没问题
a = 1 // 编译出错,a 必须为 String
强类型和弱类型
强类型和弱类型的区别是对类型检查的严格程度
强类型是指对类型检查很严格,在编译阶段就做类型检查,不接受任何的隐式类型转换,必须得显示的做强制类型转换
拿 java 来说
if ("hello") // 抛出类型错误,此处应该接收一个 Boolean 类型的值
1 + '1' // 编译出错
弱类型是指对于类型的检查很弱,不做类型检查,并且接受隐式的类型转换
拿 javascript 来说
if (1) // 不会报错,隐式的将 Number 类型转换成 Boolean 类型
1 - 's' // 不会报错,返回 NaN
该博客版权归饶英俊(Royin)所有,严禁抄袭,欢迎转载。如有反馈或建议等可通过邮箱联系我
本文链接:https://raoyingjun.github.io/2021/10/26/%E9%9D%99%E6%80%81%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E4%BB%A5%E5%8F%8A%E5%BC%BA%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%BC%B1%E7%B1%BB%E5%9E%8B/