JavaScript(三)| 青训营笔记

79 阅读3分钟

JavaScript 数据类型、类型转换

数据类型

计算机程序可以处理大量的数据,为了方便数据的管理,将数据分成了不同的类型。JavaScript的数据类型整体分为两大类:

  • 基本数据类型:
    • number 数值型
    • string 字符串型
    • boolean 布尔型
    • undefined 未定义型
    • null 空类型
  • 引用数据类型:
    • object 对象

通过 typeof 关键字检测数据类型。

1. 数值类型(number)

JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 数据类型</title>
</head>
<body>
  
  <script> 
    let score = 100 // 正整数
    let price = 12.345 // 小数
    let temperature = -40 // 负数
  </script>
  
</body>
</html>

数字可以有很多操作,比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。

  • +:求和
  • -:求差
  • *:求积
  • /:求商
  • %:取模(取余数):开发中经常作为某个数字是否被整除

同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。

  • 乘、除、取余优先级相同
  • 加、减优先级相同
  • 乘、除、取余优先级大于加、减
  • 使用 () 可以提升优先级

2. 字符串类型(string)

通过单引号( '') 、双引号( "")或反引号包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。

  1. 无论单引号或是双引号必须成对使用
  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已
  3. 必要时可以使用转义符 \,输出单引号或双引号
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript - 数据类型</title>
</head>
<body>
  
  <script> 
    let user_name = '小明' // 使用单引号
    let gender = "男" // 使用双引号
    let str = '123' // 看上去是数字,但是用引号包裹了就成了字符串了
    let str1 = '' // 空字符串		
  </script>
  
</body>
</html>
  • 字符串拼接

+ 运算符可以实现字符串的拼接,数字相加,字符相连。

  • 模板字符串

内容拼接变量时,用 ${ } 包住变量。

3. 布尔类型(boolean)

表示肯定或否定时在计算机中对应的是布尔类型数据,它有两个固定的值 truefalse,表示肯定的数据用 true(真),表示否定的数据用 false(假)。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript - 数据类型</title>
</head>
<body>
  
  <script> 
    let isRed = true // 是
    isRed = false // 否

  </script>
</body>
</html>

4. 未定义类型(undefined)

未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少直接为某个变量赋值为 undefined

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript - 数据类型</title>
</head>
<body>
  
  <script> 
    let tmp;
  </script>
  
</body>
</html>

5. 空类型(unll)

JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值。

null 和 undefined 区别:

  • undefined 表示没有赋值
  • null 表示赋值了,但是内容为空

注:JavaScript 中变量的值决定了变量的数据类型。

类型转换

在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系。

隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

  • + 号两边只要有一个是字符串,都会把另外一个转成字符串
  • 除了 + 以外的算术运算符 比如 - * / 等都会把数据转成数字类型
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 隐式转换</title>
</head>
<body>
  <script> 
    let num = 13 // 数值
    let num2 = '2' // 字符串
    
    console.log(num + num2)
    // 结果为 132
    
    console.log(num - num2)
    // 结果为 11
    
  </script>
</body>
</html>

显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。

转换为数字型

  • Number(数据)
    • 转成数字类型
    • 如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字
    • NaN也是number类型的数据,代表非数字
  • parseInt(数据)
    • 只保留整数
  • parseFloat(数据)
    • 可以保留小数

转换为字符型

  • String(数据)
  • 变量.toString(进制)