Javascript的原生数据类型有 String, Number, Boolean, null, undefined, symbol, bigint 从它们的名字中就可以直接的了解到它们的意思,但要注意的是
let z这样来定义个变量的话那就是undefinedundefined:系统默认的“缺少值”(没赋值、没返回、没传参数)。null:人为指定的“空值”,表示“这里应该有东西,但我故意留空”。也就是说我们通常不会主动让一个变量变成undefined。只会遇到出现一个函数返回undefined的情况,然后对它进行特殊处理const username = "Kayn";
const age = 17;const GPA = 4.99;
const male = true;
const x = null;const y = undefined;let z;Javascript的数据类型是动态的,举个例子
let x = 10; // x 是 numberx = "hello"; // 现在 x 变成 stringx = true; // 现在 x 变成 boolean这样的好处在于有些地方我们就不需要转来转去了
比如说
let x = "5";console.log(x * 2); // 输出地结果将会是10如果在像是Java这样的静态类型语言,我们可能就需要
Integer.parseInt("5") * 2但这样有时也会出现问题,出现我们不想要的结果 比如
let x = "5";console.log(10 + x); // 结果为"105"而在Java中要是搞相似的操作不管是ide还是编译都直接报错了
实经情况中我们宁可多绕路也能犯错留下后患,尤其是在一个多人合作项目中。就像沟通中我们不能为了减少沟通时间就不把话说完一样。所以为了让Javascript更工程化,就有了Typescript
既然Javascript的变量是实时变动的,那么自然也就会有获取它的数据类型的需求。
这时候就会用到typeof这一运算符
typeof 123; // "number"typeof "hello"; // "string"typeof undefined; // "undefined"但比较有意思的是
typeof null; //"object"这可以理解为是javascript的历史遗留问题。具体的原因如下
0。null 的 type tag 也被误标为 0(和对象一样)。typeof null 会返回 "object"。
所以实际应用场景中要想判断一个变量是不是null得用下面这种方法let x = null;console.log(x === null); // true