ECMAScript5引入了严格模式的概念。严格模式为javascript定义了一种不同的解析与执行模型,在严格模式下,ECMAScript3中的一些不确定的行为将得到处理,而且对于某些不安全的操作也会抛出错误。要在整个脚本中启用严格模式,可以在顶部添加如下代码:
"use strict"
在函数内部的上分包含这条编译指示,也可以指定函数在严格模式下执行:
function doSomeThing(){
"use strict"
//函数体
}
严格模式下,javascript的执行结果会有很大不同,因此写出本篇博客以记录学习过程中遇到的严格模式。
支持严格模式的浏览器包括IE10+、Firefox 4+、Safari 5.1+、Opera 12+、和Chrome。
XHTML严格模式
这类文档类型对于文档内的代码要求比较严格,不允许使用任何表现层的标签和属性。严格型DTD语句如下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w1.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
严格型XHTML文档类型中,以下元素将不被支持“”:
- center 居中(属于表现层)
- font 字体样式,如大小、颜色和样式(属于表现层)
- strike 删除线(属于表现层)
- s 删除线(属于表现层)
- u 文本下划线(属于表现层)
- iframe 嵌入式框架窗口(专用于框架文档类型或过渡型文档)
- isindex 提示用户输入单行文本(与input元素语义重复)
- dir 定义目录列表(与dl元素语义重复)
- menu 定义菜单列表(与ul元素语义重复)
- basefon 定义文档默认字体属性(属于表现层)
- applet 定义插件(与object元素语义重复)
以下属性将不被支持:
- align(支持table包含的相关元素:tr,td,th,col,colgroup,thead,tbody,tfoot)
- language
- bgcolor
- border(table元素支持)
- height(img和object元素支持)
- hspace
- name(在html4.01Strict中支持,在XHTML1.0Strict中的form和img元素不支持)
- noshade
- nowrap
- target
- text、link、vlink和alink
- vspace
- width(img、object、table、col和colgroup元素支持)