Javascript数据类型
动态类型
Javascript之所以被称为"动态类型",是因为它不像其他某些语言一样,定以后就被限制为某一数据类型
八种数据类型
-
Number类型
Number类型代表整数(1、100、1000...)和浮点数值(0.1、0.01、0.001...)
Number类型还包括"特殊数值"(它们并不是数字)
- Infinity
- -Infinity
- NaN
-
BigInt
Number类型无法表示大于 (253-1)(即 9007199254740991),或小于 -(253-1) 的整数
当我们需要很大数字的时候, 可以使用BigInt(最近添加到javascript中)表示任意长度的整数
尾部的"n"表示这是一个BigInt类型
const bigInt = 1234567890123456789012345678901234567890n;
-
String
字符串表现形式
javascript中的字符串必须括在引号里
let str = "hello world!"
let str2 = "我是吴彦祖"
其余表现形式
let str = "hello world!"
let str2 = "我是吴彦祖"
反引号可以在字符串中使用变量/表达式
let date = '周三';
console.log(`今天是${date}`); // 今天是周三
console.log(`结果是${1+2}`)
-
Boolean
包含两个值: true / false
可以作为比较的结果:
let isTrue = 4 > 1;
alert(isTrye) // true
-
"null"值
特殊的 null 值不属于上述任何一种类型
Javascript中的null仅仅代表"无"、"空"、 "值未知"的特殊值
-
"undefined" 值
undefined 的含义是 未被赋值
let age;
console.log(age); // undefined
-
"object 类型和 symbol 类型"
object类型是一个特殊的类型 其他所有的数据类型称为"原始类型", 因为它们的值只包含一个单独的内容。而object用来存储数据集合和更复杂的实体。
symbol暂且不论。
-
typeof 运算符
语法形式:
console.log(typeof (a));
console.log(typeof a);
返回数据类型:
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
typeof Math // "object" (1)
typeof null // "object" (2)
typeof alert // "function" (3)
- (1) Math是一个object
- (2) typeof null 返回"object"是一个官方承认的错误。null是一个特殊的类型, 不是object
- (3) typeof会对函数区分对待,如果是一个函数, 会返回"function"