JavaScript笔记(5)严格模式
来源:互联网 发布:淘宝正品代购店铺推荐 编辑:程序博客网 时间:2024/06/03 12:37
1.启用严格模式的指令:"use strict"或'use strict',即单引号或双引号均可,也许use将来会成为关键字。
2."use strict"; 以分号结尾,在不支持严格模式的浏览器中(如IE9及以下)被当作一般语句。
3.必须作为全局或函数的首条语句才起到严格模式指令的作用,否则即是一条普通语句。
<!DOCTYPE html><html><head><meta charset="utf-8"><title>use strict</title><script>;//严格模式指令必须在首行,如果之前有语句,它将被当作一个普通字符串,而不是启用严格模式的指令。"use strict";//全局位置的指令将覆盖到以下定义的所有函数内部try{document.writeln("-----start-----<br/>");k=10;//严格模式下,不用var定义变量是非法的,此句将导致错误,会被catch捕获。document.writeln("k="+k+"<br/>");(function(){"use strict";//局部位置的指令仅仅在本函数内生效。注意:要使该指令在本函数内起作用,必须作为本函数首条语句。x=100;//严格模式下,不用var定义变量是非法的,此句将导致错误,会被catch捕获。document.writeln("x="+x+"<br/>");})();document.writeln("-----前面没有异常-----<br/>");//如果前面有异常则此句会被忽略}catch(e){document.writeln("错误原因:"+e.name+"<br/>");document.writeln("错误描述:"+e.message+"<br/>");}finally{document.writeln("-----end-----<br/>");}</script></head><body></body></html>
严格模式特点:
1.禁止使用with语句
2.变量必须显式定义才可赋值
3.调用函数中的this值是undefined(非严格模式中是全局对象)
<!DOCTYPE html><html><head><meta charset="utf-8"><title>trycatch</title><script>try{function f1(){'use strict';document.writeln("严格模式中的this="+this+"<br/>");}function f2(){document.writeln("非严格模式中的this="+this+"<br/>");}f1(); f2();document.writeln("-----前面没有异常-----<br/>");//如果前面有异常则此句会被忽略}catch(e){document.writeln("错误原因:"+e.name+"<br/>");document.writeln("错误描述:"+e.message+"<br/>");}finally{}</script></head><body></body></html>4.
5.关于对象成员扩展
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body></body></html><script>(function(){'use strict';try{var stu1={"name":"张三","height":"180"};Object.preventExtensions(stu1);stu1.weight=75;//严格模式下,对不可扩展的对象创建新成员,会抛出异常document.writeln(stu1.name+'<br/>');document.writeln(stu1.weight+'<br/>');}catch(e){document.writeln('错误原由:'+e.name+'<br/>');document.writeln('错误描述:'+e.message+'<br/>');}})();(function(){//'use strict';try{var stu2={"name":"李四","height":"185"};Object.preventExtensions(stu2);stu2.weight=80;//非严格模式下,对不可扩展的对象创建新成员,不会抛出异常(但也不会创建成功)document.writeln(stu2.name+'<br/>');document.writeln(stu2.weight+'<br/>');//输出为undefined}catch(e){document.writeln('错误原由:'+e.name+'<br/>');document.writeln('错误描述:'+e.message+'<br/>');}})();(function(){//'use strict';try{var stu3={"name":"王五","height":"185"};//Object.preventExtensions(stu3);stu3.weight=66;//非严格模式下,对象可灵活地扩展新成员document.writeln(stu3.name+'<br/>');document.writeln(stu3.weight+'<br/>');}catch(e){document.writeln('错误原由:'+e.name+'<br/>');document.writeln('错误描述:'+e.message+'<br/>');//输出为66}})();</script>
0 0
- JavaScript笔记(5)严格模式
- Javascript学习笔记(严格模式)
- javascript(EcmaScript 5)的严格模式
- JavaScript---语句(严格模式)
- 随手笔记javascript篇_严格模式
- Javascript 严格模式(use strict)详解
- javascript 语句和严格模式(三)
- javascript 语句和严格模式(三)
- javascript 语句和严格模式(三)
- javascript 语句和严格模式(三)
- javascript 语句和严格模式(三)
- js(javascript)中的严格模式解析
- JavaScript严格模式(use strict)
- JavaScript严格模式
- Javascript 严格模式详解
- Javascript 严格模式详解
- javascript严格模式
- Javascript 严格模式详解
- CSS妙用垂直居中对齐一行中多个元素
- web测试内容及工具经典总结
- 二叉树的深度(递归+非递归)
- 查看日志
- HDU-2006
- JavaScript笔记(5)严格模式
- Oracle 获取本周、本月、本季、本年的第一天和最后一天
- css实现图片转动
- 条款一:*{margin:0; padding:0;},清除有可能的默认脏边距;
- AndroidManifest.xml清单配置文件的相关介绍一
- c++ 中 const_iterator 和 const vector<>::iterator的区别
- Node.js环境搭建和学习(windwos环境)
- 全屏滚动图片网站制作(HTML5+JS+jQuery)——(jQuery篇)
- Intent用法实例