<!DOCTYPE html>报错Uncaught SyntaxError: Unexpected token '<?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<!DOCTYPE html>报错Uncaught SyntaxError: Unexpected token '<?相关的知识,希望对你有一定的参考价值。
请求登录接口报错一个未捕获的语法错误,一个标记'<'
你这是html文档,不是js代码,而你的文件扩展名是.js,那么浏览器就会按js代码来解析语法,当然报错啦!必须把文件扩展名改为htm或者html,比如 index.htm 参考技术A node版本与webpackage版本不一致导致,如node版本为16,而webpackage版本指定的node版本为10,则使用node版本为10的进行编译即可前端知识总结--html
1. doctype的作用是什么?
<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种: <!DOCTYPE html>
2.HTML、XHTML、XML有什么区别?
Html(超文本标记语言):在html4.0之前html先有实现再有的标准,导致html非常混乱和松散
XML(可扩展标记语言):主要用于数据存储,类似于json
XHtml(可扩展超文本标记语言):基于Html和XML而来,并基于此诞生了HTML5。
先来试个一句话解释仨,当浏览器碰到 script
脚本的时候:
-
<script src="script.js"></script>
没有
defer
或async
,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该script
标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。 -
<script async src="script.js"></script>
有
async
,加载和渲染后续文档元素的过程将和script.js
的加载与执行并行进行(异步)。 -
<script defer src="myscript.js"></script>
有
defer
,加载后续文档元素的过程将和script.js
的加载并行进行(异步),但是script.js
的执行要在所有元素解析完成之后,DOMContentLoaded
事件触发之前完成。
然后从实用角度来说呢,首先把所有脚本都丢到 </body>
之前是最佳实践,因为对于旧浏览器来说这是唯一的优化选择,此法可保证非脚本的其他一切元素能够以最快的速度得到加载和解析。
接着,我们来看一张图咯:
蓝色线代表网络读取,红色线代表执行时间,这俩都是针对脚本的;绿色线代表 HTML 解析。
此图告诉我们以下几个要点:
- defer 和 async 在网络读取(下载)这块儿是一样的,都是异步的(相较于 HTML 解析)
- 它俩的差别在于脚本下载完之后何时执行,显然 defer 是最接近我们对于应用脚本加载和执行的要求的
- 关于 defer,此图未尽之处在于它是按照加载顺序执行脚本的,这一点要善加利用
- async 则是一个乱序执行的主,反正对它来说脚本的加载和执行是紧紧挨着的,所以不管你声明的顺序如何,只要它加载完了就会立刻执行
- 仔细想想,async 对于应用脚本的用处不大,因为它完全不考虑依赖(哪怕是最低级的顺序执行),不过它对于那些可以不依赖任何脚本或不被任何脚本依赖的脚本来说却是非常合适的,最典型的例子:Google Analytics
Async: 可选属性。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效(写在html文件中的js代码,添加此属性无效,仍按代码加载顺序执行)。
Defer: 可选属性。标识脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
4. 有哪些常用的meta标签?
1) charset,用于描述HTML文档的编码形式 <meta charset="UTF-8" >
2)http-equiv,顾名思义,相当于http的文件头作用,比如下面的代码就可以设置http的缓存过期日期 <meta http-equiv="expires" content="Wed, 20 Jun 2019 22:33:00 GMT">
但是注意的是,浏览器上文件的缓存终究是根据http协议的缓存设置的,这里html标签中模拟的就是http中的协议,但是有两个问题: 1.只有部分浏览器支持该标签的设置;2.html和http协议中均设置了缓存策略的话,以http中的为准!
3) 声明文档的兼容模式
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 指示IE以目前可用的最高模式显示内容
3)viewport,移动前端最熟悉不过,Web开发人员可以控制视口的大小和比例
<meta name ="viewport" content ="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
width viewport 宽度(数值/device-width)
height viewport 高度(数值/device-height)
initial-scale 初始缩放比例
maximum-scale 最大缩放比例
minimum-scale 最小缩放比例
user-scalable 是否允许用户缩放(yes/no)
以上是关于<!DOCTYPE html>报错Uncaught SyntaxError: Unexpected token '<?的主要内容,如果未能解决你的问题,请参考以下文章