JavaScript数据类型

JavaScript中的数据类型包括以下几种

1.原始数据类型 (Primitive data types):

  1. 字符串 (String)
  2. 数字 (Number)
  3. 布尔值 (Boolean)
  4. 1.空 (null)
  5. 未定义 (undefined)
  6. Symbol (ES6新增)

2.复杂数据类型 (Complex data types):

  1. 对象 (Object)
  2. 数组 (Array)
  3. 函数 (Function)
  4. 正则表达式 (RegExp)
  5. 日期 (Date)

字符串类型(String)

字符串类型可以存储各种字符,一般使用双引号,单引号和反单引号。

var strOne = "Hello World"; //双引号
var strTwo = 'Hello World'; // 单引号
var strThree = `Hello World`; // 反单引号

// 其中使用反单引号的是被称为模板字符串,在字符串中嵌入${},可以在${}执行js代码。
var str = `我有${3+3}个苹果`;
console.log(str); // 返回 我有6个苹果

数字类型(Number)

数字类型用于存储整数和小数,极大或极小的数字可以通过科学(指数)计数法定义。

var numOne = 114514;
var numTwo = 114.514;
var numThree = 123e5; // 12300000
var numFour = 123e-5; // 0.00123

布尔值(Boolean)

布尔值主要是用于判断使用,通过true或false进行定义。

var ok = true;
var no = false;

当对数据进行判断的时候就是通过布尔值进行表示。

console.log(1 < 2); // 返回 true
console.log(1 > 2); // 返回 false
console.log(1 == 2); // 返回 false
console.log(1 === 2); // 返回 false
console.log(1 == '2'); // 返回 false
console.log(1 === '2'); // 返回 false

null和undefined

null是指这个值为空,undefined表示没有值,在意思上两个是差不多,但是从实际来操作,如果暂时不知道某个值或者不知道是什么数据类型,又或者想将某个值置空,就使用null。而undefined是在执行中出现的,多出现与未定义的数据类型或不存在的值。null不全等于undefined。

var dataOne = null;
var dataTwo = {}; // 定义一个空的对象
console.log(dataOne); // 返回 null
console.log(dataTwo.data); // 对象里面不存在data这个值返回 undefined

console.log(null === null); // 返回 true
console.log(undefined === undefined); // 返回 true
console.log(undefined === null); // 返回 false

唯一的标识符Symbol

Symbol(符号)是 ECMAScript 6 (ES6)引入的一种新的数据类型。Symbol是原始数据类型,表示唯一的标识符。Symbol具有唯一性(每个Symbol值都是独一无二的,不同的Symbol值永远不相等),不可变性(Symbol值一旦被创建,就不能被修改)。

Symbol可以用作对象的属性名,这样可以确保属性名的唯一性。相比于字符串作为属性名,Symbol作为属性名的主要好处在于避免了命名冲突的风险。

const s1 = Symbol();
const s2 = Symbol();

const obj = {
  [s1]: 'value1',
  [s2]: 'value2'
};

console.log(obj[s1]); // 输出 'value1'
console.log(obj[s2]); // 输出 'value2'

Symbol还可以接受一个可选的描述字符串作为参数,用于描述该Symbol的用途或含义。这个描述字符串不会影响Symbol的唯一性,仅用于调试目的。例如:

const s = Symbol('My Symbol');
console.log(s); // 输出 Symbol(My Symbol)

除了静态创建Symbol值,还可以使用Symbol.for()方法创建全局共享的Symbol值,这样可以在不同的地方获取到同一个Symbol值。例如:

const s1 = Symbol.for('sharedSymbol');
const s2 = Symbol.for('sharedSymbol');

console.log(s1 === s2); // 输出 true

Symbol也提供了一些内置的静态属性和方法,如Symbol.iterator、Symbol.toPrimitive等,可以用于实现特定的语言和运算符行为。需要注意的是,由于Symbol的唯一性和不可变性,它不能被隐式转换成字符串或数字类型,需要使用toString()或valueOf()等方法进行显式转换。Symbol作为一种新的数据类型,主要用于定义对象的唯一属性名,以及在特定场景下实现特定的语言功能。

对象 (Object)

对象由大括号({})包围,并且每个键值对之间使用逗号(,)分隔。

const obj = { key1: "1", key2: "2" };

// 取值
console.log(obj.key1); // 输出 1
console.log(obj["key2"]); // 输出 2

数组 (Array)

数组(Array)是一种用来存储多个值的有序集合。在JavaScript中,数组可以包含任意类型的数据,包括原始数据类型和其他对象。通过索引可以对数组进行取值,数组的索引是从0开始。

const array = [1, 2, "张三", "李四"];

// 取值
console.log(array[0]); // 输出 1
console.log(array[1]); // 输出 2
console.log(array[2]); // 输出 张三
console.log(array[3]); // 输出 李四

函数 (Function)

函数是一种特殊的对象类型,通过使用函数可以将一段js代码进行封装,可以重复进行调用以实现精简代码量。可以向函数传入值,方便进行值的处理。

function functionName(parameters) {
  console.log(parameters);
}

functionName(12138);

正则表达式 (RegExp)

正则表达式是一种用于匹配和处理文本的强大工具。它可以用来查找、替换或提取字符串中符合特定模式的部分。

const pattern1 = /abc/; // 使用正则表达式字面量创建
const pattern2 = new RegExp('abc'); // 使用RegExp对象创建

日期 (Date)

JavaScript中的日期(Date)对象用于处理日期和时间。它允许你创建日期对象,获取和设置日期、时间以及执行各种与日期相关的操作。

要创建一个日期对象,可以使用 ​new Date()​构造函数。如果没有传递任何参数,将会创建一个表示当前日期和时间的对象。

下面是一些关于JavaScript日期对象常用的方法和属性:

获取日期和时间:

• ​​getFullYear()​:获取年份(四位数)
• ​​getMonth()​:获取月份(0-11,0表示1月)
• ​​getDate()​:获取月份中的某一天(1-31)
•​​ getDay()​:获取星期几(0-6,0表示星期日)
• ​​getHours()​:获取小时数(0-23)
•​​ getMinutes()​:获取分钟数(0-59)
• ​​getSeconds()​:获取秒数(0-59)

设置日期和时间:

• ​​setFullYear(year)​:设置年份
• ​​setMonth(month)​:设置月份
•​​ setDate(day)​:设置月份中的某一天
•​​ setHours(hour)​:设置小时数
• ​​setMinutes(minute)​:设置分钟数
•​​ setSeconds(second)​:设置秒数

获取时间戳:

•​​ getTime()​:返回从1970年1月1日午夜以来的毫秒数(时间戳)

格式化输出:

•​​ toLocaleString()​:返回日期和时间的本地化字符串表示
•​​ toString()​:返回日期和时间的字符串表示

需要注意的是,JavaScript中的日期对象的月份从0开始计数,所以0代表一月,1代表二月,以此类推。

以下是一个简单的示例代码,展示了如何使用JavaScript的日期(Date)对象:

var now = new Date();
console.log(now.toLocaleString()); // 输出: 当前日期和时间的本地化字符串表示
console.log(now.getFullYear()); // 输出: 当前年份
console.log(now.getMonth()); // 输出: 当前月份
console.log(now.getDate()); // 输出: 当前日期
console.log(now.getHours()); // 输出: 当前小时数
console.log(now.getMinutes()); // 输出: 当前分钟数
console.log(now.getSeconds()); // 输出: 当前秒数

这些数据类型可以通过typeof操作符来检测。例如:

console.log(typeof "Hello World"); // 返回 "string"
console.log(typeof 42); // 返回 "number"
console.log(typeof true); // 返回 "boolean"
console.log(typeof null); // 返回 "object" (注意是bug,实际上应该返回 "null")
console.log(typeof undefined); // 返回 "undefined"
console.log(typeof Symbol()); // 返回 "symbol"

console.log(typeof {}); // 返回 "object"
console.log(typeof []); // 返回 "object"
console.log(typeof function(){}); // 返回 "function"
console.log(typeof /test/); // 返回 "object"
console.log(typeof new Date()); // 返回 "object"
  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值