当前位置: 首页 > news >正文

【JavaScript】15_debug,立即执行函数 与 严格模式

14、debug

        <script>

            //debugger // 在代码中打了一个断点

            console.log(a) // 2

            var a = 1

            console.log(a) // 1

            function a() {
                alert(2)
            }

            console.log(a) // 1

            var a = 3

            console.log(a) // 3

            var a = function () {
                alert(4)
            }

            console.log(a) // 4

            var a

            console.log(a) // 4
        </script>

15、立即执行函数

​ 立即执行函数(IIFE)

  • 立即是一个匿名的函数,并它只会调用一次
  • ​可以利用IIFE来创建一个一次性的函数作用域,避免变量冲突的问题
    <script>
        /* 
            在开发中应该尽量减少直接在全局作用域中编写代码!
            所以我们的代码要尽量编写的局部作用域
            如果使用let声明的变量,可以使用{}来创建块作用域
        */
        {
            let a = 10
        }

        {
            let a = 20
        }

        // function fn(){
        //     var a = 10
        // }

        // fn()

        // function fn2(){
        //     var a = 20
        // }

        // fn2()

        //希望可以创建一个只执行一次的匿名函数

        /* 
            立即执行函数(IIFE)
                - 立即是一个匿名的函数,并它只会调用一次
                - 可以利用IIFE来创建一个一次性的函数作用域,避免变量冲突的问题
        */
        (function(){
            let a = 10
            console.log(111)
        }());


        (function(){
            let a = 20
            console.log(222)
        }())
    </script>

18、严格模式

JS运行代码的模式有两种:

正常模式

  • 默认情况下代码都运行在正常模式中,
    在正常模式,语法检查并不严格
    它的原则是:能不报错的地方尽量不报错
  • 这种处理方式导致代码的运行性能较差

严格模式

  • 在严格模式下,语法检查变得严格 --------> “use strict”
    1.禁止一些语法
    2.更容易报错
    3.提升了性能

  • 在开发中,应该尽量使用严格模式,
    这样可以将一些隐藏的问题消灭在萌芽阶段,
    同时也能提升代码的运行性能

    <script>
        "use strict" // 全局的严格模式
        let a = 10
        // console.log(a)

        function fn(){
            "use strict" // 函数的严格的模式
        }
    </script>

相关文章:

  • 智能制造数字化转型难点有哪些?
  • 【UE4 第一人称射击游戏】06-设置动画角色2
  • U-net
  • pytest-需要模块相应的库
  • VSCode连GitHub的代理服务器配置和获取历史版本命令
  • 笔试训练(4)
  • “世界上最鸽派”的央行转鹰,透露了什么信号?
  • 从“小螺栓血案”谈装配体模型连接螺栓6个正确的处理方法
  • 讯飞听见SaaS服务迈入全新时代
  • mapstruct 无法生成字段映射code
  • 全志V853常用模型跑分数据
  • 迅为3A5000开发板龙芯自主指令集从里到外100%全国产设计方案
  • 安卓面经<15/30>之SharedPreference解析
  • LeetCode 10. 正则表达式匹配(C++)*
  • 《计算机体系结构量化研究方法》第2章-存储器层次结构设计 2.1 引言
  • android 9.0 屏蔽所有电话来电功能
  • 代替塞规的高精度孔径测量方法——泊肃叶压差法
  • Vue的父传子
  • JMH - Java微基准测试工具套件
  • 【矩阵论】7. 范数理论——非负/正矩阵