<i id='TYPxI'><tr id='TYPxI'><dt id='TYPxI'><q id='TYPxI'><span id='TYPxI'><b id='TYPxI'><form id='TYPxI'><ins id='TYPxI'></ins><ul id='TYPxI'></ul><sub id='TYPxI'></sub></form><legend id='TYPxI'></legend><bdo id='TYPxI'><pre id='TYPxI'><center id='TYPxI'></center></pre></bdo></b><th id='TYPxI'></th></span></q></dt></tr></i><div id='TYPxI'><tfoot id='TYPxI'></tfoot><dl id='TYPxI'><fieldset id='TYPxI'></fieldset></dl></div>
    1. <tfoot id='TYPxI'></tfoot>
        <bdo id='TYPxI'></bdo><ul id='TYPxI'></ul>
      <legend id='TYPxI'><style id='TYPxI'><dir id='TYPxI'><q id='TYPxI'></q></dir></style></legend>

      <small id='TYPxI'></small><noframes id='TYPxI'>

      跟我学习javascript的严格模式

      接下来我将为大家详细介绍“跟我学习JavaScript的严格模式”的完整攻略。

      • <bdo id='6OPvO'></bdo><ul id='6OPvO'></ul>
              <tbody id='6OPvO'></tbody>

                <legend id='6OPvO'><style id='6OPvO'><dir id='6OPvO'><q id='6OPvO'></q></dir></style></legend>

                <small id='6OPvO'></small><noframes id='6OPvO'>

                <i id='6OPvO'><tr id='6OPvO'><dt id='6OPvO'><q id='6OPvO'><span id='6OPvO'><b id='6OPvO'><form id='6OPvO'><ins id='6OPvO'></ins><ul id='6OPvO'></ul><sub id='6OPvO'></sub></form><legend id='6OPvO'></legend><bdo id='6OPvO'><pre id='6OPvO'><center id='6OPvO'></center></pre></bdo></b><th id='6OPvO'></th></span></q></dt></tr></i><div id='6OPvO'><tfoot id='6OPvO'></tfoot><dl id='6OPvO'><fieldset id='6OPvO'></fieldset></dl></div>
              1. <tfoot id='6OPvO'></tfoot>

                接下来我将为大家详细介绍“跟我学习JavaScript的严格模式”的完整攻略。

                什么是严格模式

                严格模式是JavaScript的一种运行模式,通过严格模式可以对代码的执行进行限制,使代码更加严谨,减少出错的可能性。在ES5中, JavaScript引入了严格模式概念,它是一组限制 JavaScript语言的特性。在严格模式中,一些在正常模式中默许的行为,会被视为错误,在代码执行过程中就会抛出错误。

                要开启 JavaScript 严格模式,只需在代码最上方或函数内第一行添加如下语句:

                'use strict';
                

                开启严格模式的好处

                严格模式在一些情况下可以提高 JavaScript的执行效率,避免一些怪异行为的发生,防止代码出现一些潜在错误,并且可以更加安全地使用一些全局变量、函数等。

                以下是开启严格模式的主要好处:

                • 消除 JavaScript语法的一些不合理、不严谨之处,减少一些怪异行为。
                • 消除代码运行的一些不安全之处,保证代码运行的安全。
                • 提高编译器效率,增加运行速度。
                • 禁用了在ECMAScript的未来版本中可能会定义的一些语法,为未来新版本的 JavaScript做好铺垫。

                严格模式的限制和注意点

                开启严格模式后,JavaScript的执行将容错能力降低,对一些无效的行为或使用不当的语法将发出警告或直接报错。比如:

                • 变量必须先声明后使用,未声明即使用的变量会抛出错误。
                • 禁止删除不可删除的属性。
                • 函数的参数名称不能重名。
                • 对象中定义重名的属性会抛出错误等等。

                还有一些需要注意的地方:

                • 严格模式下this的值不再是指向全局对象,而是undefined。因此,在严格模式下调用函数时,没有指定this的值,this将为undefined,这样就避免了在不使用this关键字的情况下调用函数时的错误问题。
                • 严格模式下,多次声明同一个变量会报错。
                • 严格模式下,eval在其所处的作用域内执行,而不是在全局作用域内执行。
                • 严格模式下,禁止使用with语句。

                如何使用严格模式

                在全局作用域使用严格模式

                要在全局作用域中使用严格模式,需要将严格模式的代码放在所有代码的最上方,即在JavaScript程序的第一行添加如下语句:

                'use strict';
                

                在函数作用域使用严格模式

                可以在函数定义中使用严格模式,这将限制该函数的执行,常用于一些高级函数中。

                function strictFunc() {
                  'use strict';
                  // 函数体中的代码将按照严格模式执行
                }
                

                严格模式下的示例

                例1:禁止重复定义的函数

                在 JavaScript 的正常模式下,可以在函数中重复定义同名的函数,后者会覆盖掉之前的函数。但是在严格模式下,如果在函数中定义了同名的函数,在执行到重复定义的函数时,将会直接抛出错误。以下是示例代码:

                'use strict';
                
                function foo() {
                  console.log('foo1');
                }
                
                // 这里会抛出异常:重复定义的函数
                function foo() {
                  console.log('foo2');
                }
                
                foo();
                

                在上面的例子中,运行foo函数时,会发生TypeError的错误。这是因为在严格模式下,函数 foo()已经在环境中定义,不能重复定义。

                例2:避免this关键字的隐式绑定

                在 JavaScript 之中,this关键字的值是在函数被调用时确定的。在非严格模式下,如果this关键字在函数中被省略了,那么this指向的是全局对象window。而在严格模式下,如果在函数中省略了this关键字,那么this指向的不再是全局对象window,而是undefined。以下是示例代码:

                'use strict';
                
                function foo() {
                  console.log(this); // undefined
                }
                
                foo();
                

                在上面的示例代码中,函数foo中没有传入this参数,因此在严格模式下,this将指向undefined,不再是非严格模式下的全局对象window。

                结论

                通过本文的介绍,我们可以了解到JavaScript严格模式的概念、好处、限制和注意点以及如何使用严格模式,同时也看到了严格模式下的示例。在实际开发中,要尽可能地使用严格模式,从而保证JavaScript代码的严谨性和安全性。

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-
                Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150
                我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen
                https的网站如果引用百度地图,会出现加载不了的问题,这是因为涉及到跨域问题,网站是https的,但是引用百度地图的是http的,这个要怎么操作呢? 比如我引用的地址:http://api.map.baidu.com/api?v=2.0ak=AK显示 后来看了一下,少了一个s=1字段,加一下s=1
                做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"
                由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持
              2. <legend id='xCPKh'><style id='xCPKh'><dir id='xCPKh'><q id='xCPKh'></q></dir></style></legend>

                  <tbody id='xCPKh'></tbody>

                <small id='xCPKh'></small><noframes id='xCPKh'>

                    • <i id='xCPKh'><tr id='xCPKh'><dt id='xCPKh'><q id='xCPKh'><span id='xCPKh'><b id='xCPKh'><form id='xCPKh'><ins id='xCPKh'></ins><ul id='xCPKh'></ul><sub id='xCPKh'></sub></form><legend id='xCPKh'></legend><bdo id='xCPKh'><pre id='xCPKh'><center id='xCPKh'></center></pre></bdo></b><th id='xCPKh'></th></span></q></dt></tr></i><div id='xCPKh'><tfoot id='xCPKh'></tfoot><dl id='xCPKh'><fieldset id='xCPKh'></fieldset></dl></div>
                      <tfoot id='xCPKh'></tfoot>

                          <bdo id='xCPKh'></bdo><ul id='xCPKh'></ul>