JavaScript是一种编程语言,用这种编程语言写出来的程序叫做脚本。它们可以被直接写在网页的HTML中,在页面加载时自动执行。脚本被以纯文本的方式提供和执行,不需要特殊的准备或编译即可运行。JavaScript不仅可以在浏览器中执行(浏览器中嵌入了 JavaScript 引擎),也可以在服务端执行,甚至可以在任意搭载了 JavaScript 引擎 的设备中执行。
let,var是较老的脚本中使用的。const,常量不能被修改。通常使用大写字母和下划线来命名这些常量。如:const COLOR_RED = "#F00";Infinity、-Infinity 和 NaN也属于Number类型,Infinity表示∞,可通过除以0来得到; NaN由不正确或未定义的数学操作得到。Hello。${…} 中,来将它们嵌入到字符串中。如:let name = "John";
// 嵌入一个变量
alert( `Hello, ${name}!` ); // Hello, John!
// 嵌入一个表达式
alert( `the result is ${1 + 2}` ); // the result is 3
//书写格式 typeof x 或者 typeof(x)均可
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
typeof Math // "object"
typeof null // "object" 这个输出结果是官方承认的typeof的错误
typeof alert // "function"
result = prompt(title, [default]);
//title显示给用户的文本,[default]可选参数,输入框内的默认值
//result获取用户填入输入框的值,如果取消输入,result用null作为返回值
//举例:
let age = prompt('How old are you?', 100);
alert(`You are ${age} years old!`); // You are 100 years old!
result = confirm(question);
//举例:
let isBoss = confirm("Are you the boss?");
alert( isBoss ); // 如果“确定”按钮被按下,则显示 true
有三种常用的类型转换:转换为 string 类型、转换为 number 类型和转换为 boolean 类型。
| 值 | 变成…… |
|---|---|
| undefined | NaN |
| null | 0 |
| true / false | 1/0 |
| string | “按原样读取”字符串,两端的空白字符(空格、换行符 \n、制表符 \t 等)会被忽略。空字符串变成 0。转换出错则输出 NaN。 |
| 值 | 变成…… |
|---|---|
| 0, null, undefined, NaN, “” | false |
| 其他值 | true |
【注】: 对 “0” 和只有空格的字符串(比如:" ")进行布尔型转换时,输出结果为 true。
a?b:c,a部分为true的话执行b部分,否则执行c部分。A??B的结果是,若A已定义,结果为A,若A未定义,结果为B//示例:
let user;
alert(user ?? "匿名"); // 匿名(user 未定义)
let user = "John";
alert(user ?? "匿名"); // John(user 已定义)
let firstName = null;
let lastName = null;
let nickName = "Supercoder";
// 显示第一个已定义的值:
alert(firstName ?? lastName ?? nickName ?? "匿名"); // Supercoder
// 显示第一个真值:
alert(firstName || lastName || nickName || "Anonymous"); // Supercoder
// || 无法区分 false、0、空字符串 "" 和 null/undefined。它们都是假值
// 如果我们只想在变量的值为 null/undefined 时使用默认值,就需要用??
break 语句跳出循环至标签处:
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`Value at coords (${i},${j})`, '');
// 如果是空字符串或被取消,则中断并跳出这两个循环。
if (!input) break outer; // (*)
// 用得到的值做些事……
}
}
alert('Done!');
//break outer 向上寻找名为 outer 的标签并跳出当前循环。
continue 指令也可以与标签一起使用。在这种情况下,执行跳转到标记循环的下一次迭代。