基础知识
函数、数据类型、运算符。
代码引入
<script src="file.js"></script>
<script>
alert(1); //最好使用分号
</script>
// 这行注释独占一行
/* 两个消息的例子。
这是一个多行注释。 */
现代模式
脚本文件顶部声明user strict
即可开始现代模式
"use strict";
// 代码以现代模式工作
变量、常量、常数字
变量名称限制:
- 变量名称必须仅包含字母、数字、符号
$
和_
。 - 首字符必须非数字。
- 驼峰命名(建议)。
// 定义变量,并且赋值
let message = 'Hello!';
// 声明一个常数(不变)变量,可以使用 const 而非 let
const myBirthday = '18.04.1982';
// 使用大写形式声明常数(用于硬编码)
const COLOR_RED = "#F00";
数据类型
JavaScript 中有八种基本的数据类型。
- 七种原始数据类型(基本数据类型):
number
用于任何类型的数字:整数或浮点数,在±(253-1)
范围内的整数。bigint
用于任意长度的整数。string
用于字符串:一个字符串可以包含 0 个或多个字符,所以没有单独的单字符类型。boolean
用于true
和false
。null
用于未知的值 —— 只有一个null
值的独立类型。undefined
用于未定义的值 —— 只有一个undefined
值的独立类型。symbol
用于唯一的标识符。
- 以及一种非原始数据类型(复杂数据类型):
object
用于更复杂的数据结构。
// 没有错误, js是动态类型的编程语言
let message = "hello";
message = 123456;
// 对于number类型
// Infinity代表无限大
alert( 1 / 0 ); // Infinity
alert( Infinity ); // Infinity
// NaN,代表计算错误(粘性)
alert( "not a number" / 2 );
// 创建bigint类型的常量
const bigInt = 1234567890123456789012345678901234567890n;
// string类型的三种赋值方式
let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed another ${str}`;
我们可以通过 typeof
运算符查看存储在变量中的数据类型。
- 通常用作
typeof x
,但typeof(x)
也可行。 - 以字符串的形式返回类型名称,例如
"string"
。 typeof null
会返回"object"
—— 这是 JavaScript 编程语言的一个错误,实际上它并不是一个object
。
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
typeof Math // "object" (1)
typeof null // "object" (2)
typeof alert // "function" (3)
交互函数
这些方法都是模态的:它们暂停脚本的执行,并且不允许用户与该页面的其余部分进行交互,直到窗口被解除。
alert 模态框
alert("Hello");
prompt 文本模态框
result = prompt(title, [default]);
title
为窗口标题,[default]
为默认填充值, result
为接收值
// 建议始终显式提供默认值
let test = prompt("Test", ''); // <-- 用于 IE 浏览器
confirm 确认模态框
result = confirm(question);
question
为弹窗内容, result
为接收值(true/false)
let isBoss = confirm("Are you the boss?");
alert( isBoss ); // 如果“确定”按钮被按下,则显示 true
上述所有方法共有两个限制:
- 模态窗口的确切位置由浏览器决定。通常在页面中心。
- 窗口的确切外观也取决于浏览器。我们不能修改它。
类型转换
字符串转换 —— 转换发生在输出内容的时候,也可以通过 String(value) 进行显式转换。原始类型值的 string 类型转换通常是很明显的。
数字型转换 —— 转换发生在进行算术操作时,也可以通过 Number(value) 进行显式转换。
数字型转换遵循以下规则:
值 | 变成…… |
---|---|
undefined | NaN |
null | 0 |
true/false | 1/0 |
string | “按原样读取”字符串,两端的空白字符(空格、换行符 \n、制表符 \t 等)会被忽略。空字符串变成 0。转换出错则输出 NaN |
布尔型转换 —— 转换发生在进行逻辑操作时,也可以通过 Boolean(value) 进行显式转换。
布尔型转换遵循以下规则:
值 | 变成…… |
---|---|
0, null, undefined, NaN, "" false | false |
其他值 | true |