美文网首页
strict模式

strict模式

作者: 在小巷望天空 | 来源:发表于2018-06-22 11:26 被阅读0次

    JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量

    i =10; // i现在是全局变量

    在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

    使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。

    为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

    启用strict模式的方法是在JavaScript代码的第一行写上:

    'use strict';

    这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。

    来测试一下你的浏览器是否能支持strict模式:

    'use strict';

    // 如果浏览器支持strict模式,

    // 下面的代码将报ReferenceError错误:

    abc = 'Hello, world';

    console.log(abc);

    运行代码,如果浏览器报错,请修复后再运行。如果浏览器不报错,说明你的浏览器太古老了,需要尽快升级。

    不用var申明的变量会被视为全局变量,为了避免这一缺陷,所有的JavaScript代码都应该使用strict模式。

    相关文章

      网友评论

          本文标题:strict模式

          本文链接:https://www.haomeiwen.com/subject/zfckyftx.html