JavaScript数据类型

一、原始类型

JavaScript中的原始类型是不可变的数据类型,它们直接存储在栈内存中。

1. Undefined类型

javascript 复制代码
let notDefined;
console.log(notDefined); // undefined
console.log(typeof notDefined); // "undefined"

// 未声明的变量与undefined的区别
// console.log(neverDeclared); // ReferenceError

2. Null类型

javascript 复制代码
let emptyValue = null;
console.log(emptyValue); // null
console.log(typeof emptyValue); // "object" (这是JavaScript的历史遗留问题)

// null与undefined的区别
console.log(null == undefined); // true
console.log(null === undefined); // false

3. Boolean类型

javascript 复制代码
let isActive = true;
let isCompleted = false;

//  truthy和falsy值
console.log(Boolean('')); // false
console.log(Boolean('hello')); // true
console.log(Boolean(0)); // false
console.log(Boolean(1)); // true

4. Number类型

ini 复制代码
let integer = 42;
let float = 3.14;
let scientific = 2.5e3; // 2500
let hex = 0xFF; // 255
let binary = 0b1010; // 10
let octal = 0o744; // 484

// 特殊数值
let infinity = Infinity;
let negativeInfinity = -Infinity;
let notANumber = NaN;

console.log(typeof NaN); // "number"

5. BigInt类型

ini 复制代码
// 超过Number安全整数范围的数字
const bigNumber = 9007199254740991n;
const huge = BigInt(123456789012345678901234567890);

console.log(bigNumber + 1n); // 9007199254740992n

6. String类型

ini 复制代码
let singleQuote = 'Hello';
let doubleQuote = "World";
let templateLiteral = `Hello ${doubleQuote}`;

console.log(templateLiteral); // "Hello World"

// 字符串方法
let message = "JavaScript数据类型";
console.log(message.length); // 11
console.log(message.includes('数据类型')); // true

7. Symbol类型

ini 复制代码
const uniqueKey = Symbol('description');
const anotherKey = Symbol('description');

console.log(uniqueKey === anotherKey); // false

// 全局Symbol注册表
const globalSymbol = Symbol.for('globalKey');
const sameGlobalSymbol = Symbol.for('globalKey');
console.log(globalSymbol === sameGlobalSymbol); // true

二、引用数据类型

1.Object类型

对象是JavaScript中最复杂的数据类型,用于存储键值对集合。

javascript 复制代码
// 对象字面量
let person = {
    name: '张三',
    age: 25,
    isStudent: true,
    greet: function() {
        return `你好,我是${this.name}`;
    }
};

console.log(person.name); // "张三"
console.log(person.greet()); // "你好,我是张三"

// 动态添加属性
person.country = '中国';
delete person.isStudent;

2.Array类型

数组是特殊的对象,用于存储有序的数据集合。

javascript 复制代码
let numbers = [1, 2, 3, 4, 5];
let mixed = [1, 'hello', true, { name: '李四' }];

// 数组方法
numbers.push(6); // 末尾添加
numbers.pop();   // 末尾删除
numbers.unshift(0); // 开头添加
numbers.shift(); // 开头删除

// 遍历数组
numbers.forEach((item, index) => {
    console.log(`索引${index}: ${item}`);
});

3.Function类型

函数在JavaScript中也是一等公民,可以作为参数传递和返回值。

javascript 复制代码
// 函数声明
function add(a, b) {
    return a + b;
}

// 函数表达式
const multiply = function(a, b) {
    return a * b;
};

// 箭头函数
const divide = (a, b) => a / b;

// 高阶函数
function createCalculator(operation) {
    return function(a, b) {
        return operation(a, b);
    };
}
相关推荐
非凡ghost3 小时前
WinMute(自动锁屏静音软件) 中文绿色版
前端·javascript·后端
over6974 小时前
JavaScript变量声明:var、let、const的完整指南
javascript
十年_H4 小时前
Cesium自定义着色器:分量修改与完全赋值
javascript·cesium
Zyx20074 小时前
从零学 JavaScript:彻底搞懂 var、let、const(上篇)——告别变量提升的坑
javascript
gustt4 小时前
JS 变量那些坑:从 var 到 let/const 的终极解密
前端·javascript
十年_H4 小时前
Cesium自定义着色器-模式
javascript·cesium
shuaijie05184 小时前
表格单元格输入框转换-其一
javascript·elementui
Z_B_L4 小时前
问题记录--elementui中el-form初始化表单resetFields()方法使用时出现的问题
前端·javascript·vue.js·elementui·1024程序员节
柳鲲鹏5 小时前
多种方法:OpenCV中修改像素RGB值
前端·javascript·opencv·1024程序员节