update: Undefined 类型

This commit is contained in:
qianguyihao 2024-02-26 12:16:01 +08:00
parent fad2b106d0
commit ba7c72aafe
3 changed files with 76 additions and 33 deletions

View File

@ -48,7 +48,7 @@ name = 123; // 强制将变量 name 修改为 数字类型
### JS 中一共有八种数据类型 ### JS 中一共有八种数据类型
- **基本数据类型(值类型)**String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义、BigInt 大型数值、Symbol。 - **基本数据类型(值类型)**String 字符串、Boolean 布尔值、Number 数值、Undefined 未定义、BigInt 大型数值、Symbol。
- **引用数据类型(引用类型)**Object 对象。 - **引用数据类型(引用类型)**Object 对象。

View File

@ -4,13 +4,15 @@ title: 06-基本数据类型String 和 Boolean
<ArticleTopAd></ArticleTopAd> <ArticleTopAd></ArticleTopAd>
今天这篇文章,我们详细讲一下基本数据类型。
## String 字符串 ## String 字符串
### 语法 ### 语法
字符串型可以是引号中的任意文本,其语法为:双引号 `""` 或者单引号 `''` 如果在开发中需要使用文本,就可以用 String 字符串类来表示,比如姓名、商品简介等。
其语法为:双引号 `""` 或者单引号 `''`。引号中的内容都是文本。
来看个示例。下面的这些,都是字符串: 来看个示例。下面的这些,都是字符串:
@ -54,7 +56,19 @@ var str = 'hello"; // 报错Uncaught SyntaxError: Invalid or unexpected toke
### 转义字符 ### 转义字符
在字符串中我们可以使用`\`作为转义字符,当表示一些特殊符号时可以使用`\`进行转义。 假设现在有这样一个字符串——`千古'壹号"前端开发"`。
上面的字符串中,前端开发 这四个字是被双引号包围的, 千古 和 壹号 之间有一个单引号。难点就在于这个单引号。
如果你想在JS中定义上述字符串的话直接在代码中这样写是不行的会报错
```js
var str = '千古'壹号"前端开发"'; // 会报错
```
那要怎么办呢?这个时候,转移字符就派上用场了。
在字符串中我们可以使用`\`作为转义字符。如果你想表示一些特殊符号,可以使用`\`进行转义。
- `\"` 表示 `"` 双引号 - `\"` 表示 `"` 双引号
@ -75,16 +89,19 @@ var str = 'hello"; // 报错Uncaught SyntaxError: Invalid or unexpected toke
```javascript ```javascript
var str1 = '我说:"今天\t天气真不错"'; var str1 = '我说:"今天\t天气真不错"';
var str2 = '\\\\\\'; var str2 = '\\\\\\';
var str3 = '千古\'壹号"前端开发"';
console.log(str1); console.log(str1);
console.log(str2); console.log(str2);
console.log(str3);
``` ```
上方代码的打印结果: 上方代码的打印结果:
``` ```
我说:"今天 天气真不错!" 我说:"今天 天气真不错!"
\\\ \\\
千古'壹号"前端开发"
``` ```
### 获取字符串的长度 ### 获取字符串的长度
@ -297,11 +314,11 @@ document.body.innerHTML = myTemplate();
## 布尔值Boolean ## 布尔值Boolean
布尔型有两个值true 和 false。主要用来做逻辑判断 true 表示真false 表示假。 布尔型有两个值true 和 false。主要用来做逻辑判断 true 表示真false 表示假。布尔值直接使用就可以了,千万不要加引号。
布尔值直接使用就可以了,千万不要加引号 布尔英语Boolean是计算机科学中的逻辑数据类型以发明布尔代数的英国数学家**乔治·布尔**为名
代码: 代码举例
```javascript ```javascript
var a = true; var a = true;

View File

@ -4,44 +4,49 @@ title: 08-基本数据类型Null 和 Undefined
<ArticleTopAd></ArticleTopAd> <ArticleTopAd></ArticleTopAd>
很多其他的语言中,只有 null但 JS 语言中,既有 null又有 undefined。很多人会弄混由此觉得 JS 语言很麻烦。其实不然,学习完这篇文章后,你会发现 null 和 undefined 的区别很容易理解。 有些其他的语言中,只有 null但 JS 语言中,既有 undefined,又有 null。很多人会弄混,由此觉得 JS 语言很麻烦。其实不然,学习完本文后,你会发现 undefined 和 null 的区别很容易理解。
## Null空对象 ## Undefined未定义类型
null 专门用来定义一个**空对象**。例如:`let a = null`,又例如 `Object.create(null)`. Undefined类型的值只有一个就是 undefind。比如 `var a = undefined`
如果你想定义一个变量用来保存引用类型,但是还没想好放什么内容,这个时候,可以在初始化时将其设置为 null。你可以把 null 理解为:**null 虽然是一个单独的数据类型但null 相当于是一个 object只不过地址为空空指针而已**。 使用 typeof 检查一个 undefined 值时,会返回 undefined。
比如:
```js
let myObj = null;
cosole.log(typeof myObj); // 打印结果object
```
补充:
- Null 类型的值只有一个,就是 null。比如 `let a = null`
- 从语义上讲null表示一个空对象所以使用 typeof 检查一个 null 值时,会返回 object。
## undefined未定义类型
### case1变量已声明未赋值时 ### case1变量已声明未赋值时
**声明**了一个变量,但没有**赋值**,此时它的值就是 `undefined`。举例: **声明**了一个变量,但没有**赋值**,此时它的值就是 `undefined`。举例:
```js ```js
let name; var name;
console.log(name); // 打印结果undefined console.log(name); // 打印结果undefined
console.log(typeof name); // 打印结果undefined console.log(typeof name); // 打印结果undefined
``` ```
补充: 下面这两行代码是等价的:
```js
// 写法1
var name;
// 写法2。这种写法冗余了不推荐。
var name = undefined;
```
注意事项:
1、不要显式地将变量 赋值为 undefined不太规范。也就是说上面的写法2 是冗余的,增加了不必要的代码量,这种写法不太规范。
2、变量在定义时尽量做一下初始化赋值操作而不是只声明一个变量。上面的写法1就是属于只声明一个变量也不太推荐这种写法。
如果变量刚开始没有值我们可以将其赋值为空字符串、false、0、null 等值,这有利于代码书写的语义化。推荐的代码举例:
```js
var a = ''; // 字符串类型的变量,如果刚开始没有值,则可以初始化为空字符串
var b = false; // 布尔类型的变量,如果刚开始没有值,则可以考虑默认值为 false
var c = 0; // 字符串类型的变量,如果刚开始没有值,可以考虑默认值为 0
var d = null; // 空对象,可以初始化为 null
```
- Undefined 类型的值只有一个,就是 undefind。比如 `let a = undefined`
- 使用 typeof 检查一个 undefined 值时,会返回 undefined。
### case2变量未声明未定义 ### case2变量未声明未定义
@ -98,6 +103,27 @@ function foo(name = 'qianguyihao') {}
foo(); foo();
``` ```
## Null空对象
null 专门用来定义一个**空对象**。例如:`let a = null`,又例如 `Object.create(null)`.
如果你想定义一个变量用来保存引用类型,但是还没想好放什么内容,这个时候,可以在初始化时将其设置为 null。你可以把 null 理解为:**null 虽然是一个单独的数据类型但null 相当于是一个 object只不过地址为空空指针而已**。
比如:
```js
let myObj = null;
cosole.log(typeof myObj); // 打印结果object
```
补充:
- Null 类型的值只有一个,就是 null。比如 `let a = null`
- 从语义上讲null表示一个空对象所以使用 typeof 检查一个 null 值时,会返回 object。
## 其他区别 ## 其他区别
undefined 实际上是由 null 衍生出来的,所以`null == undefined`的结果为 true。 undefined 实际上是由 null 衍生出来的,所以`null == undefined`的结果为 true。