“外部”示例中使用了 JavaScript 的一项现代技术(async
“异步”属性)来解决这一问题,它告知浏览器在遇到 元素时不要中断后续 HTML 内容的加载。
“内部”示例使用了以下结构:
document.addEventListener("DOMContentLoaded", function() {
. . .
});
这是一个事件监听器,它监听浏览器的 "DOMContentLoaded
" 事件,即 HTML 文档体加载、解释完毕事件。事件触发时将调用 " . . .
" 处的代码,从而避免了错误发生。
脚本调用策略小结:
async
。defer
,将关联的脚本按所需顺序置于 HTML 中。使用 defer
属性,脚本将按照在页面中出现的顺序加载和运行:
待: canvas
您不能将这些直接应用于一个数字,这可能看起来很奇怪,但是我们为变量赋值一个新的更新值,而不是对该值进行操作。 以下将返回错误:3++;
所以,你只能增加一个现有的变量。 尝试这个:
let num1 = 4; num1++;
数据与字符互相转换:
Number
对象将把传递给它的任何东西转换成一个数字。let myString = '123';
let myNum = Number(myString);
typeof myNum;
let myNum = 123;
let myString = myNum.toString();
typeof myString;
使用split() 将字符串转换为数组:
使用join()或toString() 将数组转换为字符串:
let myArray = ["Manchester,London,Liverpool,Birmingham,Leeds,Carlisle"];
添加和删除数组项:
Spread Operator in TypeScript [...]
函数调用:
myFunction(...iterableObj);
字面量数组构造或字符串:
[...iterableObj, '4', ...'hello', 6];
构造字面量对象时,进行克隆或者属性拷贝(ECMAScript 2018规范新增特性):
let objClone = { ...obj };
箭头函数
基础语法: (参数1, 参数2, …, 参数N) => { return 表达式; }
// 相当于:(参数1, 参数2, …, 参数N) => { 函数声明 }
当只有一个参数时,圆括号是可选的。没有参数的函数应该写成一对圆括号。
当箭头函数的函数体只有一个 `return` 语句时,可以省略 `return` 关键字和方法体的花括号。
加括号的函数体返回对象字面表达式: 参数=> ({foo: bar})
--------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
Array.prototype.map()
map()
方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。