HTML5 如果不写DOCTYPE ?

时间:2022-04-16 08:27:32
最近在复习前端的知识点,有一点不明白,

引用
<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现


引用
HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为( 让浏览器按照它们应该的方式来运行);而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。


第一个说DOCTYPE是告知浏览器解析器用什么文档标准解析这个文档个,这是不是针对HTML4说的 ?因为HTML5什么标准都是只写<!DOCTYPE html>吧,都没有差别怎么告知解析器用什么文档标准?

第二个说,“让浏览器按照它们应该的方式来运行”,他们应该的方式是什么方式?按照第一个说的不写DOCTYPE是兼容模式,那正确写了DOCTYPE不是标准模式吗,HTML5在首行写上<!DOCTYPE html>应该算正确了吧,
但是,
!function(){
    with({x:1}){
         console.log(x);
     }
}()

这样一行代码还是可以正确输出不报错啊。(标准模式不能用with?)

有人可以解惑一下吗,万分感谢。
HTML5中写和不写DOCTYPE会发生什么变化?
“让浏览器按照它们应该的方式来运行”具体是什么方式?

2 个解决方案

#1


with()语句和DOCTYPE没关系。
with()语句是在javascript严格模式下不能用。
!function(){
"use strict";
    with({x:1}){
    console.log(x);
}
}()

#2


写不写都可以吧。主要是是说是html文件。不别也没除错过。
不过还是建议加上这句话。缺了这行DW第一行有时会提示出错。其实没出错。

#1


with()语句和DOCTYPE没关系。
with()语句是在javascript严格模式下不能用。
!function(){
"use strict";
    with({x:1}){
    console.log(x);
}
}()

#2


写不写都可以吧。主要是是说是html文件。不别也没除错过。
不过还是建议加上这句话。缺了这行DW第一行有时会提示出错。其实没出错。