JavaScript 教程「3」:数据类型

本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object)。JavaScript是一种弱类型语言,允许变量动态改变数据类型。文中还讲解了如何获取变量数据类型以及如何进行数据类型转换,如字符串转数字、数字转字符串、布尔值转换等,并给出了各种转换方法的示例。

导读

初步了解 JavaScript 之后,我们又学习了注释、输入输出以及变量的相关知识。本文紧接上两部分,来继续带领大家学习 JavaScript 中的数据类型知识,本文主要内容如下:

  1. 数据类型简介
  2. 数据类型分类
  3. 变量数据类型获取
  4. 常用的数据类型转换

简介

在计算机中,不同数据所需要的存储空间是不一样的,为了尽可能的提高内存利用率,方便把数据划分为所需内存大小不同的数据,于是需要将不同数据定义为对应的数据类型。

最常见的就是字符串和数字,就像“公众号:村雨遥”这个字符串和 1943 这个数字所对应的类型是不一样。

不同于 Java 这样的编程语言,JavaScript 是一种弱类型的语言。这意味在 JavaScript 中,不用提前声明变量的类型,在程序运行过程中,JavaScript 引擎会自动确定变量类型。在 Java 中,如果我们要定义一个变量,通常需要像如下形式:

int name = "村雨遥";

但是在 JavaScript 中,我们只需要按照下面的方式定义即可。

var name = '村雨遥';

也正是由于 JavaScript 的动态特性,所以在 JavaScript 中,变量的数据类型是可以变化的。

以下是一个变量数据类型动态变化的实例,一开始变量是一个字符串,然后我们又把它变成了数字类型。

var name = '村雨遥';
name = 1943;

数据类型分类

在 JavaScript 中,数据类型可以分为两大类:

  • 基本数据类型NumberStringBooleanUndefinedNull

  • 复杂数据类型object

基本数据类型详情如下表所示:

数据类型说明默认值
Number数字类型,包括整形和浮点型0
String字符串类型""
Boolean布尔值类型false
Undefined如果一个变量声明了但是未赋值,则此时该变量为 undefinedundefined
Nullvar num = null,声明变量 num 为空值null

数字类型(Number

JavaScript 中,不分整型和浮点型,它们统一称之为数字类型。也就是说,JavaScript 中数字类型的既可以保存整数值,也可以保存小数值。

var num = 1943;
var wepublic = "村雨遥";

数字型中,有以下几个特殊值需要值得注意:

  • 最大值Number.MAX_VALUE
  • 最小值Number.MIN_VALUE
  • 无穷大Infinity,表示大于任何数值。
  • 无穷小-Infinity,表示小于任何数值。
  • 非数字NaNNot a number,表示一个非数字。

如果要确认一个变量是否是非数字,JavaScript 提供了一个方法 isNaN(x)。如果 x 是一个数字,则返回 false,如果 x 不是数字,则返回 true

alert(isNaN('村雨遥'));
alert(isNaN(12));

字符串类型(String

JavaScript 中,把用引号括起来的任意文本叫做字符串类型,其中引号既可以使用双引号 "",也可以使用单引号 ''

以下的 name 就是一个字符串类型,可以使用单引号或双引号将其包括,两者的功能是一样的。

var name;
name = '村雨遥';
name = "村雨遥";

除此之外,和其他编程语言一样,JavaScript 也提供了许多转义符,常见的转义符如下表所示。

转义符说明
\n换行
\\\ 右斜杠
\'' 单引号
\"" 双引号
\ttab 缩进
\b空格

JavaScript 中对于字符串的常用操作主要有以下几种。

  1. 获取字符串长度

字符串是由如果字符所组成,而字符串的长度就是这些字符的数量。在 JavaScript 中,可以通过字符串的 length 属性获取整个个字符串的长度。

var wepublic = '村雨遥';
alert(wepublic.length);

  1. 字符串拼接

如果存在多个字符串,可以使用 + 来进行拼接,其具体方式为:

字符串 + 任何类型 = 拼接后的新字符串

var wepublic = '村雨遥:';
var id = 'cunyu1943';
alert(wepublic + id);

布尔类型(Boolean

只有 truefalse 两个值,true 代表真,而 false 表示假。但是当它们和数字类型相加时,此时 true 的值就变成了 1,而 false 的值变成了 0。

// 2
alert(true + 1);
// 1
alert(false + 1);

UndefinedNull

在 JavaScript 中,如果一个变量被声明后但却没有赋值,那么此时该变量的默认值就是 undefined

如果一个对象的值未设置,那么则该对象此时为 null

获取变量数据类型

假设我们有一个变量,但是没有找到他的定义所在位置,那么此时也不用慌,JavaScript 提供了 typeof 关键字来帮助我们确定变量的数据类型。

var num = 1943;
console.log(typeof num);
var wepublic = '村雨遥';
console.log(typeof wepublic);
var focus = true;
console.log(typeof focus);

数据类型转换

日常开发中,在浏览器中通过表单或者 prompt 等获取来的变量默认都是字符串类型,但实际上我们所需要的类型往往都不是字符串,此时就需要对变量的数据类型进行转换。而这一过程就叫做数据类型转换,即将一种数据类型的变量转换为另一种数据类型。

最常用的主要有以下三种:

  • 转换为字符串类型
  • 转换为数字类型
  • 转换为布尔类型

转换为字符串类型

转换为字符串类型的方法总结如下表,以下就分别来看看这三种方法的使用。

方法说明
toString()转换为字符串
String() 强制转换转换为字符串
+ 拼接和字符串拼接的结果都是字符串
  1. toString()

通过调用 toString() ,可以实现由其他类型向字符串类型的转变。

var num = 1943;
var str = num.toString()
console.log(str);
console.log(typeof str);

  1. String()
var num = 1943;
var str = String(num);
console.log(str);
console.log(typeof str);

  1. + 拼接

字符串和其他任意类型的变量相拼接,最后得到的一定是字符串。

var num = 1943;
var str = num + "";
console.log(str);
console.log(typeof str);

转换为数字类型

最常用的一般是字符串类型转换为数字类型,这里既可以将字符串类型转换为具体的整数数值类型或者浮点数数值类型,也可以将直接将其转换为数值型而不用区分整数数值还是浮点数数值。除此之外,还经常利用运算符来进行隐式转换。

方法说明
parseInt(string)字符串类型转换为整数数值类型
parseFloat(string)字符串类型转换为浮点数数值类型
Number()字符串转换为数值型
-*/ 隐式转换利用算数运算隐式转换为数值型
  1. parseInt(string)
var str = '1943';
var num = parseInt(str);
console.log(num);
console.log(typeof num);

  1. parseFloat(string)
var str = '19.43';
var num = parseFloat(str);
console.log(num);
console.log(typeof num);

  1. Number()
var str1 = '19.43';
var str2 = '1943';
var num1 = Number(str1);
var num2 = Number(str2);
console.log(num1);
console.log(typeof num1);
console.log(num2);
console.log(typeof num2);

  1. 运算符隐式转换
var str1 = '2022';
var str2 = '2';
var num1 = str1 * str2;
var num2 = str1 / str2;
var num3 = str1 - str2;
console.log(num1);
console.log(typeof num1);
console.log(num2);
console.log(typeof num2);
console.log(num3);
console.log(typeof num3);

转换为布尔类型

方法说明
Boolean()将其他类型转换为布尔类型

在 JavaScript 中,代表空、否定的值都会转变为 false,比如 ''0NaNundefinednull 等。而其他值则会转换为 true

// false
console.log(Boolean(''));
// false
console.log(Boolean(NaN));
// true
console.log(Boolean(1943));
// true
console.log(Boolean('村雨遥'));

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
基于粒子群算法优化Kmeans聚类的居民用电行为分析研究(Matlb代码实现)内容概要:本文围绕基于粒子群算法(PSO)优化Kmeans聚类的居民用电行为分析展开研究,提出了一种结合智能优化算法与传统聚类方法的技术路径。通过使用粒子群算法优化Kmeans聚类的初始聚类中心,有效克服了传统Kmeans算法易陷入局部最优、对初始值敏感的问题,提升了聚类的稳定性和准确性。研究利用Matlab实现了该算法,并应用于居民用电数据的行为模式识别与分类,有助于精细化电力需求管理、用户画像构建及个性化用电服务设计。文档还提及相关应用场景如负荷预测、电力系统优化等,并提供了配套代码资源。; 适合人群:具备一定Matlab编程基础,从事电力系统、智能优化算法、数据分析等相关领域的研究人员或工程技术人员,尤其适合研究生及科研人员。; 使用场景及目标:①用于居民用电行为的高效聚类分析,挖掘典型用电模式;②提升Kmeans聚类算法的性能,避免局部最优问题;③为电力公司开展需求响应、负荷预测和用户分群管理提供技术支持;④作为智能优化算法与机器学习结合应用的教学与科研案例。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解PSO优化Kmeans的核心机制,关注参数设置对聚类效果的影响,并尝试将其应用于其他相似的数据聚类问题中,以加深理解和拓展应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村雨遥

众筹一毛买键盘!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值