JS基础 - HTML相关

  1. JAVASCRIPT包含 ECMAScript + DOM + BOM

ECMAScript规范了 包含 语法 类型 语句 关键字 保留字 操作符 对象 , 宿主环境 (浏览器 node)提供扩展的IO 如 DOM BOM

MIME MultiPurpose Internet Mail Extensions 多用途网络邮件扩展 一般为 主类型/子类型的格式,如text/html application/javascript Model名称/方法名称

什么是MIME类型?

它的全名叫多用途互联网邮件扩展(Multipurpose Internet Mail Extensions),最初是为了将纯文本格式的电子邮件扩展到可以支持多种信息格式而定制的。后来被应用到多种协议里,包括我们常用的HTTP协议。

MIME的常见形式是一个主类型加一个子类型,用斜线分隔。比如text/html、application/javascript、image/png等。

在访问网页时,MIME type帮助浏览器识别一个HTTP请求返回的是什么内容的数据,应该如何打开、如何显示。

举个例子,在我们操作系统中,有文件拓展名,它帮助操作系统标注(注意是“标注”,而非“定义”)信息的格式。你用photoshop可以打开一个psd图像文件,把这个文件扩展名改为txt,再拖到photoshop窗口里,还是一样能打开,说明内容完全没有变化,变化的只是双击时的默认打开方式。而MIME的作用和文件拓展名相似,但不同的是它并非标注文件,而是在邮件和HTTP协议中用来标注网络数据的。

2. 3.script元素作用:保证JAVASCRIPT与HTML的共存,又能保证WEB能兼容各种浏览器

  • script属性:
    • src : 包含的js脚本路径
    • type: js脚本类型,用于替代language属性,一般为text/javascript MIME格式
    • async 立即加载(异步加载)在加载html的同时加载脚本文件 (仅外部js)
    • defer: 脚本可以推迟到文档 解析 渲染 之后加载 (仅外部js)
    • charset : src指定代码字符集
  • script引入方式 内嵌/外部
    • 内嵌引入时,解析器会逐行解析,并且解析过程时同步的,会卡住下面html的解析和渲染,同时需要注意,不能在内嵌的html中输入 </script> 如果需要,使用转义字符 <\/script>,在外部js中,没有这个限制

  • 外部js同样会阻塞后面html的解析渲染,同时 src可以填写URL指向互联网上的js文件,需要保证指向地址的稳定性,可以通过 async 和 defer来解决卡住后面html解析的问题
  • script引入位置: 一般将script脚本放在<body>内容的后面,保证浏览器先解析,显示完所有的html之后再加载,解析 html 避免用户看到 白屏
  • defer&async:
    • 区分 声明了defer和async的脚本都会在解析渲染html的同时下载(注意是下载,不涉及解析执行),区别在于,defer即便是下载完成了,也会等待html解析渲染完成之后再执行,而async是乱序的,只要下载完成就执行,如下图所示

 作用: 声明了defer和async都可以放在<head>标签中,也可以保证不会因为脚本的加载而阻塞页面,但是async由于不保证其顺序性,适用于不操作DOM的代码,而defer由于其一定会在html渲染之后执行,可以保证顺序性,可以加入操作DOM的代码

3. DOCTYPE

DOCTYPE 声明了浏览器以何种模式来解析html文件,如果不声明,浏览器会以quirk怪异模式来解析html,根据浏览器具体实现不同,会导致CSS样式显示有差异。

声明DOCTYPE之后,浏览器会以W3C的模式解析html文件。

DOCTYPE类型 严格 stric / 过渡 Transtional / 框架集 frameset

DTD: 文档类型定义

Html5中只有一种DTD 标准模式 <!DOCTYPE html>

Html4中有三种

  • Strict 不能使用展示性,弃用元素 font等 不能使用frameset
  • Transtitional 可以使用 展示性,弃用元素,不能使用frameset
  • Frameset 允许使用frameset等Transtional模式

 4. noscript: <noscript>标签可以包含<body>中除了<script>以外的任何元素,对于不支持js的浏览器环境,可以使用<noscript>标签来适配提示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值