0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈Javascript数据类型

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-09 16:43 次阅读

avaScript原始数据类型包括有objectnullundefinedbooleannumberstring

symbol从ES2015开始可用,bigint从ES2020开始可用。其中object是一个复杂的数据类型。

JavaScript是一种动态类型语言。这意味着变量不与类型相关联。换句话说,一个变量可以保存不同类型的值。

例如在下面的type.js文件中,counter变量初始化的值是120,之后被赋值为布尔值false ,然后又被赋值为字符串foo

let counter = 120; // counter is a number
counter = false;   // counter is now a boolean
counter = "foo";   // counter is now a string

如果你需要知道当前变量存储的值类型,可以使用javascript的typeof运算符,获得变量的数据类型。

let counter = 120;
console.log(typeof(counter)); // "number"


counter = false; 
console.log(typeof(counter)); // "boolean"


counter = "Hi";
console.log(typeof(counter)); // "string"

undefined 未定义

undefined类型是只有一个原始类型的值undefined。默认情况下,当一个变量被声明但未初始化时,它被赋值为undefined

在下面的示例中,我们在第一行声明一个变量counter。由于counter尚未初始化,因此为其分配的值是undefinedcounter的类型也是undefined

值得注意的是,当您使用尚未声明的变量时,typeof运算符也会返回undefined


let counter;
console.log(counter);        // undefined
console.log(typeof counter); // undefined

null 空类型

null类型是第二种原始数据类型,也只有一个值null

当你在浏览器的控制台运行代码typeof null时,代码将会返回一个对象。这是一个在Javascript的bug。

虽然有人曾经提出过修复此错误,但被拒绝。原因是修复此Bug会破坏许多现有站点。

在JavaScript数据类型null是等于undefined的,因为在Javascript的null值是等于布尔值falseundefined也是如此。


let obj = null;
console.log(typeof obj); // object
console.log(null == undefined); // true

number 数值类型

JavaScript使用用number类型来表示整数和浮点数。下面的语句声明一个变量并用一个整数初始化它的值。要表示浮点数,请包含一个小数点,后跟至少一个数字。

如果数字看起来是整数,例如代码let price = 200.00;,JavaScript会自动将浮点数转换为整数。

原因是Javascript总是希望使用更少的内存,因为浮点值使用的内存是整数值的两倍。

如果要获取数值类型的范围,可以打开浏览器控制台运行代码Number.MIN_VALUE获取最小值和运行代码Number.MAX_VALUE获取最大值。


let num = 100;
let price= 12.5;
let discount = 0.05;

NaN 非数值类型

NaN代表非数值。它是一个特殊的数值,表示一个无效的数字。当强制转换字符串为值时,它会返回NaN

NaN有两个特点。第一特点是所有与NaN的运算都会返回NaN ,例如代码console.log(NaN/2);

第二个特点是NaN不等于任何值,包括它自己本省,例如代码console.log(NaN == NaN);

console.log('a'/2); // NaN;
console.log(NaN/2); // NaN
console.log(NaN == NaN); // false

string 字符串类型

在JavaScript,字符串是零个或多个字符的序列。字符串文字以单引号 '或双引号 " 开始和结束。

以双引号开头的字符串必须以双引号结尾。同样,以单引号开头的字符串也必须以单引号结尾。

如果要在字符串中使用单引号或双引号,则需要使用反斜杠对其进行转义。例如代码let message = 'I\\'m also a valid string';

JavaScript字符串是不可变的。这意味着它一旦创建就无法修改。但是,您可以从现有字符串创建新字符串。

string.js例子中首先,声明str变量并将其初始化为'JavaScript'。其次,使用加号运算符组合'JavaScript'' String',使其值成功为'Javascript String'

在幕后,JavaScript引擎创建一个新字符串来保存'JavaScript String'并销毁原始字符串'JavaScript''String'

let str = 'JavaScript';
str = str + ' String';

boolean 布尔类型

布尔值类型有两个字面值,分别是truefalse。下面的示例声明了两个保存布尔值的变量。

JavaScript允许将其他类型的值转换为布尔值的truefalse。要将另一种数据类型的值转换为布尔值,请使用Boolean()函数。

确切的说Boolean()不是函数,它是一个对象,用于创建布尔值,Boolean接受一个参数,并将指定的参数转换为布尔值。


let inProgress = true;
let completed = false;


console.log(typeof completed); // boolean
console.log(Boolean('Hi'));// true
console.log(Boolean(''));  // false


console.log(Boolean(20));  // true
console.log(Boolean(Infinity));  // true
console.log(Boolean(0));  // false


console.log(Boolean({foo: 100}));  // true on non-empty object
console.log(Boolean(null));// false

symbol 符号类型

JavaScript在ES6中添加了一个原始类型符号symbol。与其他原始类型不同,symbol符号类型没有文字形式。

要创建符号,请调用函数Symbol,每次调用符号函数都会创建一个新的唯一值。

symbol值可以作为对象属性的标识符,通常使用它来创建对象的私有属性与方法数据类型仅有的目的。


let s1 = Symbol();
console.log(Symbol() == Symbol()); // false

bigint 类型

**BigInt 是一种内置对象,它提供了一种方法来表示大于2 ^53^ –1的整数。这原本是 Javascript中可以用Number表示的最大数字。 BigInt**可以表示任意大的整数。

它在某些方面类似于Number,但是也有几个不同点,不能用于Math对象中的方法。

不能和任何Number实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,因为BigInt变量在转换成Number变量时可能会丢失精度。

要创建bigint数字可以在一个整数的后面加追加字母n ,例如10n,或者调用函数 BigInt()并传递一个整数值或着是字符串的数字。

如果传递的是字符串的数字, BigInt() 将会强制转换字符串类型为数值。


const theBiggestInt = 9007199254740991n;


const alsoHuge = BigInt(9007199254740991);

object 对象类型

在JavaScript,对象是属性的集合,每个属性都定义为键值对。对象的属性名称可以是任何字符串或者符号symbol的值。

如果属性名称不是有效标识符,您可以在属性名称周围使用引号。例如,如果对象的属性名称是full-name,则必须将其放在引号中。

对象的属性不仅可以保存简单值,也可以保存复杂的数据类型对象。


let contact = {
    firstName: 'web',
    lastName: 'myfreax',
    'full-name':'web@myfreax'
    email: 'web@myfreax.com',
    phone: '408555-9999',
    address: {
        building: '4000',
        street: 'North 1st street',
        city: 'San Jose',
        state: 'CA',
        country: 'USA'
    }
}

要访问对象的属性,您可以使用点符号. 或者类似数组的符号[]。当要访问属性嵌套的对象时,也可以继续使用点符号.访问嵌套的属性。

如果你访问一个不存在的属性,你会得到一个未定义的值。

console.log(contact.firstName);
console.log(contact.lastName);
console.log(contact.age); // undefined
console.log(contact['phone']); // '(408)-555-9999'
console.log(contact['email']); // 'web@myfreax'
console.log(contact['address']['building']); // '4000'
console.log(contact.address.building); // '4000'

结论

JavaScript的基本类型是numberstringbooleannullundefinedsymbol以及bigint和复杂类型对象object

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • javascript
    +关注

    关注

    0

    文章

    511

    浏览量

    53406
  • 数据类型
    +关注

    关注

    0

    文章

    228

    浏览量

    13499
  • undefined
    +关注

    关注

    0

    文章

    11

    浏览量

    2662
收藏 人收藏

    评论

    相关推荐

    GaussDB 数据类型介绍

    GaussDB 数据库 GaussDB 是华为基于 openGauss 自研生态推出的云化企业级分布式关系型数据库,它支持多种数据类型,包括数值、字符、日期等。在使用 GaussDB 时,可能需要
    的头像 发表于 06-05 16:40 1280次阅读
    GaussDB <b class='flag-5'>数据类型</b>介绍

    JavaScript 【1】 基础数据类型

    。推荐阅读:https://www.runoob.com/js/js-tutorial.html这里我们重点介绍JavaScript的9个知识点。key- val二、数据类型:值类型(基本类型
    发表于 07-17 10:32

    vhdl数据类型

    VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。VHDL中的数据类型可以分成四大类: 标量型(SCALAR TYPE):属单元素的最基本的数据类型,通常用于描述一个单值数据对象
    发表于 03-30 15:59 11次下载

    51单片机学习笔记(9)——C51的基本数据类型和扩充数据类型

    基本数据类型:扩充数据类型
    发表于 11-14 13:36 1次下载
    51单片机学习笔记(9)——C51的基本<b class='flag-5'>数据类型</b>和扩充<b class='flag-5'>数据类型</b>

    Struct结构数据类型

    Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC
    的头像 发表于 07-25 17:02 2442次阅读

    结构数据类型(Struct)及应用案例

    Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使用PLC数据类型(UDT)代替。
    的头像 发表于 07-27 16:10 1349次阅读

    什么是数据类型转换

    常用的3种数据类型:1、Python数据类型第一种:字符串(str)。 2、Python数据类型第二种:整数(int)。 3、Python数据类型第三种:浮点数(float)。
    的头像 发表于 02-23 15:21 583次阅读

    定义数据类型

    在运算之前我们必须首先定义出数据类型,定义出脚本支持的数据类型,这是运算的基础。 这一小节我们将定义出数据类型,在这里我们暂时定义四个数据类型:
    的头像 发表于 03-03 10:10 633次阅读

    ARRAY 数据类型的变量

    要求 全局数据块已打开。 操作步骤 要声明一个 ARRAY 数据类型的变量,请按以下步骤操作: 在“名称”(Name) 列中,输入变量的名称。 在“数据类型”列中输入“Array”数据类型
    的头像 发表于 07-06 11:08 654次阅读

    浅谈PLC定义数据类型的应用

    PLC定义数据类型以下用一个例子介绍PLC定义数据类型的应用,以便进一步理解PLC定义数据类型
    的头像 发表于 07-24 16:07 823次阅读
    <b class='flag-5'>浅谈</b>PLC定义<b class='flag-5'>数据类型</b>的应用

    Redis的数据类型有哪些

    Redis的数据类型有哪些?有五种常用数据类型:String、Hash、Set、List、SortedSet。以及三种特殊的数据类型:Bitmap、HyperLogLog、Geospatial
    的头像 发表于 10-09 10:51 410次阅读

    javascript的基本数据类型有哪些

    JavaScript 是一种动态的、面向对象的编程语言,广泛应用于 Web 开发中。在 JavaScript 中,有七种基本数据类型(Primitive Types),它们分别是 Undefined
    的头像 发表于 12-03 11:17 363次阅读

    javascript的typeof返回哪些数据类型?

    JavaScript的typeof操作符用于确定一个值的数据类型,可能的返回值包括以下几种: "undefined":当一个变量被声明但未被赋值时,其类型为undefined。 "boolean
    的头像 发表于 12-03 11:41 503次阅读

    oracle的数据类型有哪些

    Oracle数据库中有许多数据类型可供选择,每种数据类型都有其各自的特点和适用场景。下面是对Oracle数据库中最常用的数据类型的详尽说明,
    的头像 发表于 12-05 16:45 663次阅读

    plc数据类型怎么理解和应用

    PLC(可编程逻辑控制器)是一种工业自动化设备,用于控制机械和工业过程。在PLC编程中,数据类型是非常重要的概念,因为它决定了程序中数据的存储和处理方式。正确理解和应用PLC数据类型是编写有效、可靠
    的头像 发表于 12-19 11:39 1460次阅读