首页 > 编程语言 >JavaScript的八种数据类型

JavaScript的八种数据类型

时间:2022-10-14 23:11:40浏览次数:42  
标签:console log Symbol JavaScript 数据类型 八种 Bigint typeof

一、JavaScript 的数据类型分为两大类:

1.1 基本数据类型:

stringnumberbooleanundefinednullsymbolbigint

1.1.1 Symbol

symbol 类型是 ES6 新增的一种数据类型,这种数据类型的特点就是没有重复的数据,作为 object 的 key 使用可以保证不会不会与其他属性名产生冲突,防止某一个 key 被不小心改写或覆盖。

数据通过 Symbol() 创建,可以接收一个字符串用来作为描述,便于区分。

同时使用 Symbol 作为 key 的话是无法使用普通遍历的方式获取到的,需要通过 Object.getOwnPropertySymbols(object) 才能获取到 object 对象中 key 值为 symbol 类型的 key

let key1 = Symbol('level')
let key2 = Symbol('deposit')
const people = {
    name: '小明',
    age: 20,
    [key1]: '优秀',
    [key2]: '一个小目标',
}

// 比较
console.log(key1) // Symbol(level)
console.log(people[key1])   // 优秀

let sybList = Object.getOwnPropertySymbols(people)
console.log(sybList);   // [Symbol(level), Symbol(deposit)]

for (const pro of sybList) {
    console.log(people[pro]);
    // 优秀
    // 一个小目标
}
1.1.2 Bigint

Bigint 是 ES11 新增的一种数据类型,这种数据类型的特点就是数据涵盖范围大,比 Number 数据类型支持的范围更大的整数值。

可以通过在整数后面增加一个 n 的方式定义,也可以调用函数 Bigint() 并传递一个整数或字符串

注意:

  • Bigint 不能和 Number 一起运算,必须转换为同一数据类型 ( Bigint 转换为 Number 可能会丢失精度 )
  • Bigint 不能使用 Math 对象中的方法
  • Bigint 和 Number 是宽松相等的
  • Bigint 和 Number 之间是可以比较的
let bigInt = 1n;
let num = 1;

console.log(typeof bigInt)   // bigint
console.log(typeof num)   // number

// console.log(bigInt + num)   // 报错

console.log(bigInt == num);   // true
console.log(bigInt === num);   // false
console.log(bigInt > 0);    // true

1.2 引用数据类型:

object (其中 array、function、data、Math等归属于object)

二、基本数据类型和引用数据类型的区别

基本数据类型是直接存放在栈中的简单数据段,占用的空间大小固定且较小
引用数据类型存放在堆内存中,占据空间大,在栈中存储指针,指向该数据在堆中的内存地址

三、类型检测

typeof NaN   // number
typeof undefined   // undefined
typeof null   // object
typeof

function a() {}   // function
typeof []   // object
console.log(true + 1)   // 2
console.log(!null) //   true

标签:console,log,Symbol,JavaScript,数据类型,八种,Bigint,typeof
From: https://www.cnblogs.com/bkzj/p/16792271.html

相关文章

  • JavaScript 值类型与引用类型
    JS数据类型JS有两种数据类型分别为值类型,引用类型值类型:Number、String、Boolean、Null、Undefined、Symbol(ES6);引用类型:Object;值类型值类型存放在栈中,可以直接按值......
  • Redis的五大数据类型+三大特殊类型
    String(字符串类型)String是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value。String类型是二进制安全的,意思是redis的string可以包含任何数......
  • JavaScript
    1、什么是JavaScript1.1、概述JavaScript是一门世界上最流行的脚本语言Java、JavaScript(10天开发出来)一个合格的后端人员,必须要精通JavaScript1.2、历史ECMAScript它......
  • JavaScript中的 || 与 &&的使用
    一、使用描述1、||和&&  以前在js逻辑代码中,常常会用到类似于三元运算的||逻辑运算符。//如果this.redirect为真,就使用它,不然就使用"/"this.$router.replace(thi......
  • python数据类型之列表(二)
    列表基础详见:https://www.cnblogs.com/gaofeng-01/p/16788576.html列表相关题目 1、列表去重#①利用集合没有重复元素的特性,通过set()方法lst1=['a','dc','ab......
  • Design Patterns in JavaScript Constructor, Factory, & Abstract Factory Creationa
    <html><body><h1>DesignPatternsinJavaScriptConstructor,Factory,&AbstractFactoryCreationalPatterns</h1><scripttype="text/javas......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构师redis数据类型的不同使用场景
    目录redis数据类型的不同使用场景数据使用场景String类型存储商品数量。用户信息。分布式锁。hash类型存用户信息。存储对象信息。list类型秒杀set类型某日用户签到情况。......
  • javascript缩短今天的时间为时分秒格式
    我们的需求是,今天的日期只显示HH:mm:ss,这种时分秒格式看下面两个函数//今天零点functiongetTordayZero(){returnnewDate(newDate().toLocaleDateString())......
  • JavaScript简单特效:页面背景颜色在线改变
    基于JavaScript以及canvas实现输入颜色预览以及背景颜色变为输入颜色值的效果。输入框中默认值为黑色,下方画布显示该颜色。通过输入新的颜色值后,点击【显示颜色】按钮,画......
  • 前端成神之路-JavaScript高级第04天
    JavaScript高级第04天1.正则表达式概述1.1什么是正则表达式正则表达式(RegularExpression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。正则表......