“use strict”
这个指令看上去像一个字符串 "use strict" 或者 'use strict'。当它处于脚本文件的顶部时,则整个脚本文件都将以“现代”模式进行工作。
变量
var — 老旧的变量声明方式。一般情况下,我们不会再使用它。
额外声明一个变量
额外声明一个变量绝对是利大于弊的。 现代的 JavaScript 压缩器和浏览器都能够很好地对代码进行优化,所以不会产生性能问题。为不同的值使用不同的变量可以帮助引擎对代码进行优化。
未采用 use strict 下的赋值
一般,我们需要在使用一个变量前定义它。但是在早期,我们可以不使用 let 进行变量声明,而可以简单地通过赋值来创建一个变量。现在如果我们不在脚本中使用 use strict 声明启用严格模式,这仍然可以正常工作,这是为了保持对旧脚本的兼容。
变量
bigint 用于任意长度的整数。 我们可以通过 typeof 运算符查看存储在变量中的数据类型。
typeof
通常用作 typeof x,但 typeof(x) 也可行。 typeof null 的结果为 "object"。这是官方承认的 typeof 的错误。
交互
alert
弹出的这个带有信息的小窗口被称为 模态窗。“modal” 意味着用户不能与页面的其他部分(例如点击其他按钮等)进行交互,直到他们处理完窗口。在上面示例这种情况下 —— 直到用户点击“确定”按钮。
prompt
result = prompt(title, [default]);
浏览器会显示一个带有文本消息的模态窗口,还有 input 框和确定/取消按钮。
confirm
result = confirm(question);
confirm 函数显示一个带有 question 以及确定和取消两个按钮的模态窗口。 点击确定返回 true,点击取消返回 false。
类型转换
字符串转换
当我们需要一个字符串形式的值时,就会进行字符串转换。 我们也可以显式地调用 String(value) 来将 value 转换为字符串类型 字符串转换最明显。false 变成 "false",null 变成 "null" 等。
数字型转换
在算术函数和表达式中,会自动进行 number 类型转换。 我们也可以使用 Number(value) 显式地将这个 value 转换为 number 类型。 如果该字符串不是一个有效的数字,转换的结果会是 NaN
number 类型转换规则
undefined NaN null 0 true 和 false 1 and 0 string 去掉首尾空格后的纯数字字符串中含有的数字。如果剩余字符串为空,则转换结果为 0。否则,将会从剩余字符串中“读取”数字。当类型转换出现 error 时返回 NaN。
布尔型转换
直观上为“空”的值(如 0、空字符串、null、undefined 和 NaN)将变为 false。 其他值变成 true。 包含 0 的字符串 "0" 是 true