JavaScript的字串(string)以单引号(‘ ’)或双引号(“ ”)包住,与一般书面语(「我是书面语」)相同,开头与结尾必须一致。
若字串中本身另有引号,将会导致程序出错,因为引号在此不会被当作「字串内容」的一部分。此时,使用跳脱字元=反斜线(\)可避免此一问题。
例:不同引号的字串
let str1 = ‘我是字串一号’
let str2 = “我是字串二号”
例:英文撇号(apostrophe)与引号的冲突
let str3 = ‘I’m so surprised’ //单引号中有单引号(撇号),会出错,第一个 ’会被当成字串结尾
let str4 = “I’m so surprised” //双引号中有单引号(撇号),无妨
若str3 非用不可,就在书面用的 ’加上跳脱字元
`let str3 = ‘I\’m so surprised’ `
此外,多组字串、多行字串间还能互相连结。
let goodNews = “This news shocked the world,” + “I’m so surprised.”
//多组连结
let bigNews = “
This news shocked the world, \
I’m so surprised. \
Scientists have found the antidote to the plague. ”
//多行连结,但跳脱字元後必须净空
现行JavaScript最新版本包括一种特殊字串—-样板字面值(template literal)。样板字面值系由字串、$、{}与一组反引号所组成,能使字串运用的灵活性更大。
藉由它,原本的多行字串可更加简洁,不需要跳脱字元也能连结。
let bigNews = `
This news shocked the world,
I’m so surprised.
Scientists have found the antidote to the plague. `
复次,也能插入变数,令原本须多组字串连结的程序码,用一行完结。
let money = 500
let str5 = “The book is priced at ${money} yuan.”
console.log(str5);
//印出 The book is priced at 500 yuan.
数字是JavaScript唯一属於数值的资料型别,包括整数、浮点数皆属此类。
let num1 = 333
let num2 = 333.1416
在继续说明之前,必须先揭示「数字」与「字串」间的一种特质。诚如所知,数字 + 数字 = 数字,但在JavaScript中,「数字 + 字串」会自动转为「字串 + 字串」,形成相当反直觉的效果。比如:
console.log(1+“2”)
//数字1加字串2,印出12
换言之,字串可以表现为文字(字母)或数目字,相加的结果,就是字面意义上的相加。
在数字的资料型别中,非数字(NaN)也是另一种数字。尽管在字面上不是数字(Not a Number),但在运算子(後续介绍)typeof的判断中, NaN仍是一种number。这无意间创造了有名的「香蕉」趣谈,即:
document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());
//印出 "banana"
直觉上,本例应该印出是「baaa」的结果。但由於程序码中的 +'a' 会被解析为非数字,也就是NaN,因此会印出「baNaNa」,再经由toLowerCase() 转为全部小写的「banana」。
本质上,NaN无法参加任何数学运算,它不等於任何数值,也不等於NaN自己,因此无法运用a === NaN 的方式判断变数a是否为NaN。遇此情形,可使用 isNaN(value) 函式带入想检测的值(value)加以判断之。
此外,还有相当少用的无限大(Infinity)、负无限大(-Infinity),比如任何正数除以0得到无限大,任何负数除以0得到负无限大。此不详叙。
布林值是运用最广泛的电脑逻辑资料型别之一,得名自发明人乔治·布尔(George Boole)。它只包含 true(正确) 与 false(错误) 两种值,因此常用於真假判断、流程控制与与例外处理。有关详情,後续将陆续为文。最简单状态如:
let a = ( 50 < 500 )
//得出的布林值为true
>>: Day02【JS】Event Delegation 事件委派
来到铁人赛的最後一篇! 走到现在,人生中如果能学以致用,真的很幸福~虽然心中有过无数将网页开发结合到...
29 - Sum of Intervals Don't say so much, just codi...
在我完成人脸关键点与人脸对齐的学习後,觉得眼睛有点累想要休息 -- 这时一个应用就出来了! 我们每...
我们前面几章提到关键字的规划原则,我们都很有共识,关键字是要依据潜在消费者的搜寻需求所拟定出来的。 ...
前言 为什麽要把 debug 拿出来说呢? 我发现其实 debug 的流程比较少人讨论, 一般我们会...