标签的三种书写方式(内部脚本、外部脚本、行内脚本)
内部样式
<style> </style>
外部样式
<link rel="stylesheet" href=""/>
内部脚本
内部脚本 : script标签内部<script> </script>
外部脚本
外部脚本:通过script.src属性引用,实现了js代码的共享。
<script src= " ">/script>
行内脚本
行内脚本:通过事件属性或自有属性添加到元素,直按与一个元系的事件属性绑定。
this.innerHTML 引用了标签内的内容
<h1 style="color: red" onclick="alert(this.innerHTML)">Hello</h1>
script标签的位置
虽然理论上放在哪里都是可以的,但是对于前端页面优化来讲,还是放在底部是最佳的,因为如果JS执行出现错误了,最起码页面中的元素还能加载出来,因为DOM文档是从上往下的顺序执行的。 按照传统的做法,所有script元素都应该放在页面的head元素中,这种做法的目的就是把所有外部文件(包括css和JavaScript文件)的引用都放在相同的地方,可是,在文档的head元素中包含所有JavaScript文件,意味着必须等到全部JavaScript代码都被下载、解析和执行完成之后,才能开始呈现页面内容(浏览器在遇到body标记时才开始呈现内容)。
JS使用同步加载
- defer: 可以实现 js 的下载与 html 的解析同步进行,它不会中断 html 的解析,直到 html 的 dom 创建完成才执行,对顺序有要求。
- async:只关注 js 脚本的下载不会中断 html 的解析就行,只实现了下载 js 和 html 的同步,竞争下载
- 选择的依据:defer 涉及到 dom 的操作,或对 js 的执行顺序有要求,只为了求快点 -不管是否涉及 dom,全部放到
<body></body>
之前就可以啦
变量的命名要求注意事项
由字母、数字、下划线、$符号组成,
注意:不能以数字开头!!!
关于可控制器 console
console | 功能 |
---|---|
cconsole.log() | 输出 |
console.info() | 用于控制台输出信息 |
console.error() | 警示错误 |
console.assert() | 断言 |
console.table() | 制作表格 |
console.dir() | 查看参数或数据 |
特别的
const user = {
id: 1,
name: "admin",
age: 30,
};
/* console.log(user);
console.table(user);
将数据以js对象方式列表显示出全部属性或方法
console.dir(user); */
let email = "amdin@php.cn";
console.log("我的邮箱是: ", email);
console.log("我的邮箱是:%s", email);
console.log("我的邮箱是: %s, 用户名是: %s", email, user);
console.table(user)