use strict的作用

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
卡布琦诺 2019-08-03 19:20:22

严格模式有以下特点:

<script>
      //1.不允许使用隐式声明的变量,会报错。
      a=123;
      //2.不允许函数有相同的参数,对象有相同的属性。
      var a=function(a,a){
          alert(123);
      };
      "use strict";
        var o = {
          p: 1,
          p: 2
      }; // 语法错误
      //3.不允许对只读属性赋值:
      "use strict";
      var obj = {};
      Object.defineProperty(obj, "x", {value:0, writable:false});
      obj.x = 3.14;            // 报错
      //4.禁止this关键字指向全局对象,也就是说this不能指向window顶层对象。
      function f(){
        return !this;
      }// 返回false,因为"this"指向全局对象,"!this"就是false
       
      function f(){
        "use strict";
         return !this;
      }// 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。
      //5.不允许使用保留关键字(implements, interface, let, package, private, protected, public, static, yield)作为变量名。js一直处于发展中,这些保留关键字将来可能用来实现相应的功能。所以不能使用。
      //6.创设eval作用域,在作用域 eval() 创建的变量不能在外部被调用
      "use strict";
      eval ("var x = 2");
      alert (x); 
    </script>

因为有这些限制,所以一般小企业的开发的时候并不会考虑使用严格模式哦

希望可以帮到你!

好帮手慕言 2019-08-03 15:59:08

同学你好,use strict’是"严格模式",这种模式使Javascript在更严格的条件下运行。它的作用有:

(1) 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

(2)消除代码运行的一些不安全之处,保证代码运行的安全;

比如:在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明。

正常模式下:

http://img1.sycdn.imooc.com//climg/5d453e380001b19703130144.jpg

控制台:

http://img1.sycdn.imooc.com//climg/5d453e640001da2903370210.jpg

严格模式下:

http://img1.sycdn.imooc.com//climg/5d453e7a0001acc803010168.jpg

控制台:
http://img1.sycdn.imooc.com//climg/5d453e890001346306020207.jpg

就会报错:a变量未定义。

严格模式更规范化一些。

如果帮助到了你,欢迎采纳~祝学习愉快~

  • 提问者 JJJustin #1
    我们一般开发需要用严格模式吗
    2019-08-03 16:02:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师