面试题之严格模式与混杂模式

面试题之严格模式与混杂模式

在我刷面试题的时候遇到了这个问题,与此,我查了很多资料,决定写下来比较好记,便于自己后期复习,需要的朋友可以自行借鉴。

严格模式:又称为标准模式

除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思议,这种格式使得javascript在更严格的条件下运行的。
目的主要有:

  1. 消除javascript在语法方面的一些不合理,不严谨之处,减少一些误差。
  2. 消除代码运行的一些不安全之处,保证代码运行的安全
  3. 提高代码运行的效率,增加运行速度
  4. 为以后做好准备

它更体现了JavaScript更合理,更安全,更严谨的发展反向。

另一方面,同样的代码,在“严格模式”中,
可能不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。

进入严格模式标志

use strict
  • 老版本的浏览器会把它当作一行普通字符串,加以忽略。
  • 请看下面代码
<!DOCTYPE html>
<html>

<head>
    <title></title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
</head>

<body>
    <script>
	    "use strict";    
	    function a() {    
	        console.log(this); //undefined 严格模式
	    }
	    f1()
    </script>
    <script>
	    function b() {    
	        console.log(this); //window  
	    }
	    f2()
    </script>
</body>

</html>

上面的代码表示,一个网页中依次有两段Javascript代码。前一个script标签是严格模式,后一个不是。

混杂模式又称为兼容模式

是指浏览器用自己的方式解析代码,模拟老式浏览器的行为以防止网站停止工作

我查了一下有网友说是这样的

  • 混杂模式就是指网卡能接受所有通过它的数据流,不管是什么格式,什么地址的。具体的地址转发则是在接受到数据后由MAC层来进行。

    Doctype的作用

  • .<!DOCTYPE>声名位于文档的最前面,在 标签的前面,告知浏览器以何种模式来渲染文档。

  • DOCTYPE标签是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档。

    怎样选择DOCTYPE

  • 理想情况 当然是 严格的DTD,但对于我们大多数刚接触 web标准的设计师来说,过渡的DTD是目前理想选择。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过 W3C的代码校验。

注:上面说的"表现层的标识、属性"是指那些纯粹用来控制表现的tag,例如用于排版的表格、背景颜色标识等。在XHTML中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。

  • 打个比方:人体模特换衣服。模特就好比数据,衣服则是表现形式,模特和衣服是分离的,这样你就可以随意换衣服。而原来HTML4中,数据和表现是混杂在一起的,要一次性换个表现形式非常困难。呵呵,有点抽象了,这个概念需要我们在应用过程中逐步领会。

补充:

  • DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。

好了今天的分享就到此结束

再见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值