一、数值

定义:表示整数、浮点数以及特殊数值(如InfinityNaN

特点

  • 所有数字均以64位双精度浮点数存储
  • 支持十进制、十六进制(0xFF)、二进制(0b1010)和八进制(0o777)表示
  • 包含特殊值:Infinity(无穷大)、-InfinityNaN(非数字)

示例展示:

// 基本示例
const age = 25;               // 整数
const price = 99.95;          // 浮点数
const hex = 0x2F;             // 十六进制47
const scientific = 2.5e6;     // 科学计数法2500000

// 特殊值
console.log(1 / 0);           // Infinity
console.log(Math.sqrt(-1));   // NaN

具体操作:

1、创建一个名为css-study的文件夹并使用VSCode打开,再创建一个名为4-1.JavaScript常用数据类型-数值.html


二、字符串

定义:表示文本数据,由0个或多个16位Unicode字符组成

特点

  • 可用单引号('')、双引号("")或反引号(``````)定义
  • 支持转义字符(如\n换行)
  • 模板字符串(反引号)支持多行文本和插值表达式(${}

示例展示:

const name = "Alice";                  // 双引号
const msg = 'Hello\nWorld';            // 单引号+转义
const html = `
  <div class="box">
    ${name}的年龄:${age}
  </div>
`; // 模板字符串

// 常见操作
console.log(name.length);      // 5(长度)
console.log(msg[0]);           // "H"(索引访问)

三、布尔值

定义:表示逻辑真/假的两种状态

特点

  • 仅有两个值:truefalse
  • 常用于条件判断和逻辑运算
  • 其他类型可通过Boolean()转换为布尔值

示例展示:

const isAdult = age >= 18;     // true
const hasError = false;

// 逻辑运算
console.log(true && false);    // false(逻辑与)
console.log(true || false);    // true(逻辑或)
console.log(!true);            // false(逻辑非)

四、数组(Array)

定义:有序的元素集合,通过索引访问

特点

  • 可存储混合数据类型
  • 动态长度,自动扩容
  • 提供丰富的方法:push()map()filter()

示例展示:

const fruits = ["苹果", "香蕉", 3];  // 混合类型
const matrix = [[1,2], [3,4]];      // 多维数组

// 常用操作
fruits.push("橙子");              // 添加元素
console.log(fruits[0]);           // "苹果"
console.log(fruits.length);       // 4(当前长度)

五、对象(Object)

定义:键值对的集合,表示复杂实体

特点

  • 键(属性名)为字符串类型
  • 值可以是任意数据类型
  • 使用点符号(.)或方括号([])访问属性
const user = {
  name: "Bob",
  age: 30,
  isAdmin: true,
  sayHi() {
    console.log(`你好,我是${this.name}`);
  }
};

// 属性操作
console.log(user.age);          // 30
user.email = "bob@example.com"; // 添加属性
user.sayHi();                   // 调用方法

六、undefined和null

undefined

  • 变量声明但未赋值时的默认值
  • 函数无返回值时默认返回undefined

null

  • 表示明确的"空值"
  • 需显式赋值,常用于重置变量
let testVar;                    // undefined
console.log(testVar);           // undefined

const empty = null;             // 显式空值
const obj = { name: null };     // 属性设为空

// 类型区别
console.log(typeof undefined);  // "undefined"
console.log(typeof null);       // "object"(历史遗留)

undefined和null的区别:

  • undefined是缺少值的默认状态,声明变量但是没有赋值
  • null用来显示指定变量为空的状态,重置变量或者释放某个对象的引用

七、获取数据类型typeof

作用:返回变量或值的类型字符串

特点

  • 对原始类型有效,对数组/对象返回"object"
  • typeof null返回"object"(设计缺陷)
  • 精确判断需结合Array.isArray()instanceof
console.log(typeof 42);         // "number"
console.log(typeof "text");     // "string"
console.log(typeof true);       // "boolean"
console.log(typeof [1,2]);      // "object"
console.log(typeof {a:1});      // "object"
console.log(typeof null);       // "object"
console.log(typeof undefined);  // "undefined"

// 精确判断
console.log(Array.isArray([])); // true
console.log(null === null);     // true

八、综合使用

1、创建一个名为css-study的文件夹并使用VSCode打开,再创建一个名为4.JavaScript常用数据类型-综合使用.html

<!DOCTYPE html>
<html>
    <script>
        // 定义数值
        let myNumber = 10;
        const myFloat = 3.14;
        // 定义字符串
        let myString = "Hello World!"
        // 定义布尔值
        let isTrue = true
        let isFalse = false
        // 定义对象
        let myInfo = {
            name: "zq",
            age: 18,
            city: "beijing",
            QQ: "12345678"
        }
        // 定义数组
        let myArray = [ 1, 2, 3, 4]

        // 定义undefined
        let myUndefined;
        isFalse = null
        console.log(myUndefined, myArray)
        // 打印数值类型
        console.log("myNumber:", typeof(myNumber))
        // 打印myUndefined类型
        console.log("myUndefined:", typeof(myUndefined))
        // js遗留问题,属于js的设计错误,返回object,实际属于null
        console.log("isFalse null:", typeof(isFalse))

        // 对象取值
        console.log(myInfo.QQ)
        console.log(myInfo["age"])
        // 对象添加一个值
        myInfo["phone"] = 11111111
        console.log("myInfo:",myInfo)
        // 删除一个对象的值
        delete(myInfo.QQ)

        // 数组取值,数组的下标是从开始的,取值的方法是数组名[下标]
        console.log("数组的第一个值:",myArray[0])
        console.log("数组的第二个值:",myArray[1])
        // 数组末尾添加值
        myArray.push("a","b","c")
        // 数组开头添加值,遵循先进后出的原则
        myArray.unshift("x")
        myArray.unshift("y")
        // 输出名为myArray的数组的值
        console.log("myArray: ",myArray)
        // 删除数据-从后面进行删除
        myArray.pop()
        // 删除数据-从前面进行删除
        myArray.shift()
        console.log("删除后的myArray:",myArray)
        // 拼接数组
        console.log("拼接: ",myArray.join("-"))
        // 排序-正序
        console.log("排序后(正序):",myArray.sort())
        // 排序-倒序
        console.log("排序后(倒序):",myArray.reverse())
    </script>
</html>

2、双击【4.JavaScript常用数据类型-综合使用.html】后按F12,点击【控制台】可以展示相关输出内容信息

image-20250520102444627