【犀牛书】JavaScript 类型、值、变量章节读书笔记2

104 阅读2分钟

BigInt

ES2020为JavaScript定义了一种新的数值类型BigInt。

BigInt这个数值类型表示的值是整数。增加这个类型主要是为了表示64位整数。(它的实验不适合加密,因为它们没有考虑防止时序攻击)

BigInt字面量写作一串数字后跟小写字母n。例如1234n。(这里举的一个不太大的BigInt字面量)

日期和时间

let timestamp = Date.now();  //当前时间的时间戳(数值)
let now = new Date();        //当前时间的日期对象
let ms = now.getTime();      //转换为毫秒时间戳
let iso = now.toISOString(); //转换为标准格式的字符串

要在js程序中包含字符串,可以把字符串放到一对匹配的单引号(’)、双引号(“)或者反引号(`)中。其中一种也可以出现在其他两种引号内部(你懂我的意思吧..)

就比如:‘name = "myfrom" '

而使用反引号定界字符串是ES6的特性,允许在字符串字面量中包含或插入js表达式。即表达式插值语法。

我们可以在每行末尾加一个反斜杠(\)从而把字符串字面量写到多行上。租房反斜杠和他后面的行终结符都不属于字符串字面量。(如果要在单引号或者双引号字符串中包含换行符,需要使用字符序列\n)

’two\nlines‘//写在一行但表示两行

如果要将js和html代码混合在一起,最好js和html分别使用不同的引号。

拼接字符串是js的一个内置特性,可以使用标准的全等===和不全等!==操作符比较字符串。

js提供了丰富的操作字符串API。

 注意:js中的字符串是不可修改的。

像replace()和同UpperCase()这样的方法都返回一个新字符串,它们并不会修改调用它们的字符串,这意味着我们需要去接收结果值而不是直接操作。

模板字面量

let s = `hello world`

这不仅仅是一种新的字符串字面量语法,因为模板字面量可以包含任意js表达式。

反引号中字符串字面量最终值的计算,涉及了其中包含的所有表达式求值、将这些表达式的值转换为字符串,然后再把这些字符串与反引号中的字面量组合:

let name = "STATICHIT";
let greeting = `Hello ${name}.`; //greeting == "Hello STATICHIT"

(注意好好理解这个例子,反引号中的不是直接字面量,而是需要通过计算和处理得到最终的真实字面量,注释中的即为真实字面量)

位于 ${和对应的} 之间的内容都被当作js表达式来解释。

模板字面量可以包含任意数量的表达式。