0
点赞
收藏
分享

微信扫一扫

【JavaScript】数据类型


效果展示

【JavaScript】数据类型_javascript

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>数据类型</title>
</head>
<body>
<script>// 我们可以将任何类型的值存入变量。例如,一个变量可以在前一刻是个字符串,下一刻就存储一个数字:
// 没有错误
let message = "hello";
message = 123456;
alert(message);
/*
允许这种操作的编程语言,例如 JavaScript,被称为“动态类型”(dynamically typed)的编程语言,
意思是虽然编程语言中有不同的数据类型,但是你定义的变量并不会在定义后,被限制为某一数据类型。
*/


// Number 类型
/*
1. number 类型代表整数和浮点数。
2. 数字可以有很多操作,比如,乘法 *、除法 /、加法 +、减法 - 等等。
3. 除了常规的数字,还包括所谓的“特殊数值(“special numeric values”)”也属于这种类型:Infinity、-Infinity 和 NaN。
*/

// Infinity 代表数学概念中的 无穷大 ∞。是一个比任何数字都大的特殊值。
alert(1 / 0); // Infinity
alert(Infinity); // Infinity

// NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
alert("not a number" / 2); // NaN,这样的除法是错误的
// NaN 是粘性的。任何对 NaN 的进一步操作都会返回 NaN:
alert("not a number" / 2 + 5); // NaN
// 所以,如果在数学表达式中有一个 NaN,会被传播到最终结果

// BigInt 类型
/*
在 JavaScript 中,“number” 类型无法表示大于 (253-1)(即 9007199254740991),或小于 -(253-1) 的整数。这是其内部表示形式导致的技术限制。
在大多数情况下,这个范围就足够了,但有时我们需要很大的数字,例如用于加密或微秒精度的时间戳。
BigInt 类型是最近被添加到 JavaScript 语言中的,用于表示任意长度的整数。
可以通过将 n 附加到整数字段的末尾来创建 BigInt 值。
*/
// 尾部的 "n" 表示这是一个 BigInt 类型
const bigInt = 1234567890123456789012345678901234567890n;
alert(bigInt);


// String 类型
/*
在 JavaScript 中,有三种包含字符串的方式。

双引号:"Hello".
单引号:'Hello'.
反引号:`Hello`.
双引号和单引号都是“简单”引用,在 JavaScript 中两者几乎没有什么差别。

反引号是 功能扩展 引号。它们允许我们通过将变量和表达式包装在 ${…} 中,来将它们嵌入到字符串中。
*/

let name = "John";

// 嵌入一个变量
alert(`Hello, ${name}!`); // Hello, John!

/*
${…} 内的表达式会被计算,计算结果会成为字符串的一部分。
可以在 ${…} 内放置任何东西:诸如名为 name 的变量,或者诸如 1 + 2 的算数表达式,或者其他一些更复杂的。
*/
// 嵌入一个表达式
alert(`the result is ${ 1 + 2 }`); // the result is 3

/*
JavaScript 中没有 character 类型。
在一些语言中,单个字符有一个特殊的 “character” 类型,在 C 语言和 Java 语言中被称为 “char”。
在 JavaScript 中没有这种类型。只有一种 string 类型,一个字符串可以包含零个(为空)、一个或多个字符。
*/


// Boolean 类型(逻辑类型)
let nameFieldChecked = true; // yes, name field is checked
let ageFieldChecked = false; // no, age field is not checked

let isGreater = 4 > 1;
alert(isGreater); // true(比较的结果是 "yes")

// “null” 值
// 特殊的 null 值不属于上述任何一种类型。
// 相比较于其他编程语言,JavaScript 中的 null 不是一个“对不存在的 object 的引用”或者 “null 指针”。
// JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。



// “undefined” 值
// 特殊值 undefined 和 null 一样自成类型。undefined 的含义是 未被赋值。
// 如果一个变量已被声明,但未被赋值,那么它的值就是 undefined:

let age;
alert(age); // 弹出 "undefined"
// 从技术上讲, 可以显式地将 undefined 赋值给变量,不建议。

// object 类型和 symbol 类型
// object 类型是一个特殊的类型。
// 其他所有的数据类型都被称为“原始类型”,因为它们的值只包含一个单独的内容(字符串、数字或者其他)。
// 相反,object 则用于储存数据集合和更复杂的实体。

// typeof 运算符
/*
typeof 运算符返回参数的类型。
1. 当我们想要分别处理不同类型值的时候,或者想快速进行数据类型检验时,非常有用。
2. 它支持两种语法形式:
作为运算符:typeof x。
函数形式:typeof(x)。
换言之,有括号和没有括号,得到的结果是一样的。
3. 对 typeof x 的调用会以字符串的形式返回数据类型。
*/
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)

/**
最后三行可能需要额外的说明:

Math 是一个提供数学运算的内建 object。我们会在 数字类型 一节中学习它。此处仅作为一个 object 的示例。
typeof null 的结果是 "object"。这是官方承认的 typeof 的行为上的错误,这个问题来自于 JavaScript 语言的早期,并为了兼容性而保留了下来。
null 绝对不是一个 object。null 有自己的类型,它是一个特殊值。
typeof alert 的结果是 "function",因为 alert 在 JavaScript 语言中是一个函数。
我们会在下一章学习函数,那时我们会了解到,在 JavaScript 语言中没有一个特别的 “function” 类型。函数隶属于 object 类型。
但是 typeof 会对函数区分对待,并返回 "function"。这也是来自于 JavaScript 语言早期的问题。
从技术上讲,这种行为是不正确的,但在实际编程中却非常方便。
*/</script>
</body>
</html>


举报

相关推荐

0 条评论