这个系列带着各位通过Python的角度,开始认识JavaScript这个实用的程式语言。专为曾经学习Python或认识Python,并且想学习JavaScript的人们设计,将会频繁的提到每一种函式或语法与Python相关之处,便于将理解的知识再次利用,从中学习!
本文章同步发布于 OTP Blog 个人部落格,欢迎前往阅读!
前言
这篇文章,将会介绍几种JavaScript中的资料型态。若您曾经学习并认识 Python 中的资料型态,学习将会变得相当简单!
Python 中的基本资料型态,包含数值(例如:int, float, bool)、字串(例如:str),以及容器(例如:list, dict)。这些资料型态,在JavaScript都有着对应或类似的资料型态。
资料型态
接下来将开始和各位介绍各种JS中的资料型态。将会一一介绍资料型态存放的内容!
数字 (Number)
数字,顾名思义便是一个数值,JavaScript中的数字包含了整数 (Integer) 或带有小数点的浮点数 (Float) ,这点与Python不同。
这边举几个数字的例子
// 十进制表示法let a = 100;let b = 1920.25;// 科学记号表示法let c = 1e5; // 100000let d = 200e2; // 20000
除此之外,也有着较为特殊的例子,也就是无限大与无限小
// Infinity; 无限大与无限小let e = Infinity; // 无限大let f = -Infinity; // 无限小
任何数都不会大于无限大 (Infinity),并且任何数都不会小于无限小 (-Infinity)。
另一个例子是 NaN (Not a Number),判断方式是使用 isNaN()
函式,而在Python会使用 isnan()
函式,两者功能相同。
let g = NaN;// 通过 isNaN() 函式判断isNaN(g); // 将会回传布林值 trueisNaN(2); // 将会回传布林值 false
布林值 (Boolean)
布林值,就像是是非题,只有是 (true) 和否 (false) 两种可能。而在Python中的布林值,首字母是大写的(True / False),笔者也常常因为这点的区分而产生错误。
布林值会被应用在条件判断的情况,以下是布林值的例子
let h = true;let i = isNaN(20); // 将会回传 false,并且 false 会被作为 i 变数的值
字串 (String)
字串曾经在上一篇中提到,可以是任何的文字或内容,并且需使用单引号 ('
) 或双引号 ("
) 于左右包裹,否则会发生错误。包裹方式使用单引号 ('
) 或双引号 ("
) 在Python中同样如此,因此若曾学习Python将能够快速适应。
以下是几个字串的例子
let j = '中文 English हिन्दी العربية বাংলা 日本语국어 தமிழ் עברית'; // 任何语言都可以于字串中使用let k = "这是一个字串"; // 除了用单引号外,亦可用双引号// 字串中不能包含与字串外的符号相同的符号let l = "双引号内不能包括双引号,但可以包含'单引号'";let m = '单引号内不能包括单引号,但可以包含"双引号"';let n = "可以使用反斜线\"突破限制\",使用同样的符号";// 字串的其他小知识let o = '字串' + '连接'; // 会将o变数的值定义为 字串连接let p = '跨行\n字串'; // 会将 \n 取代为换行
阵列 (Array)
阵列,也就是一组资料,举一个在许多教学都会出现的例子「学生成绩」
当我们要存放五个学生的成绩,我们或许会这样储存
let var1 = 90;let var2 = 100;let var3 = 87;let var4 = 59;let var5 = 80;
但若这样一个一个变数储存,首先,程式码会很长,尤其是若有更多学生的资料,将会更加严重。接着,当要调用一个学生的资料时,我们便需要使用该学生的变数名称来调用,相当难以辨识,但若我们使用阵列 (使用中括号包裹,每一笔资料间用半形逗号间隔)
let score = [90, 100, 87, 59, 80];
便可以让程式码较好阅读,也适合存取资料,存取资料的方式如下,使用 阵列名称[索引]
来读取,而索引由顺序从0开始计算
let score = [90, 100, 87, 59, 80];console.log(score[0]); // 会输出 90console.log(score[3]); // 会输出 59
而阵列中也可以存取其他资料型态的资料
let myList = ["first data", true, 314, false, [123]];// 第4项资料是一个阵列,在阵列中的阵列被称为巢状阵列,读取方式如下console.log(myList[4][0]); // 将会输出 123
物件 (Object)
物件,与Python中的字典(dict)类似。若要理解物件的用途,笔者认为可以通过Python中的字典来理解,物件就像是一个字典,可以通过一个索引,来得到一笔资料。并且索引是一段文字。
这边举一个物件的例子,来让各位可以从範例认识物件
let obj = { bob: 101, jame: 500, total: 601 };
此时,我们定义了一个名为 obj 的物件,有三个属性,分别是 bob, jame 和 total,有两种方法可以取出其值
let obj = { bob: 101, jame: 500, total: 601 };// 取出物件中的值console.log(obj['bob']); // 物件名称[属性名称],将得到 101console.log(obj.jame); // 物件名称.属性名称,将得到 500
若使用 物件名称[属性名称]
的方法,可以将变数名称作为要取的属性名称来取值,而若使用 物件名称.属性名称
的方法,可能会由于名称为中文等因素无法取值。
以上,便是对于JS中几种基本的资料型态之介绍!
结语
这篇文章向各位介绍了 JavaScript 中的几种基本的资料型态,以及其用法。或许会有读者纳闷,为什么这篇文章没有任何实作的程式码?这是因为资料型态虽然看似困难,但其实在每一段程式码中,或许都有资料型态的範畴唷!例如 console.log()
这个函式,输出的内容便可以是资料型态中的任何一种,如: console.log(1.1)
、console.log('ouo')
。
希望这篇文章,能够让各位更加认识 JS 中的资料型态,以上便是这篇文章的内容啰!别忘了多多追蹤本系列文章,并且欢迎留言分享你的心得或问题!感谢您的阅读~