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

简介: # 14、debug```html <script> //debugger // 在代码中打了一个断点 console.log(a) // 2 var a = 1 console.log(a) // 1 function a() { alert(2) } console.log(a) // 1 var a = 3

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" // 函数的严格的模式
        }
相关文章
|
25天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
25天前
|
JavaScript
常见函数的4种类型(js的问题)
常见函数的4种类型(js的问题)
11 0
|
25天前
|
JavaScript
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
10 0
|
1月前
|
自然语言处理 JavaScript 网络架构
js开发:请解释什么是ES6的箭头函数,以及它与传统函数的区别。
ES6的箭头函数以`=&gt;`定义,简化了函数写法,具有简洁语法和词法作用域的`this`。它无`arguments`对象,不能用作构造函数,不支持`Generator`,且不改变`this`、`super`、`new.target`绑定。适用于简短表达式,常用于异步编程和高阶函数。
18 5
|
1月前
|
JavaScript 前端开发 网络架构
JavaScript 谈谈对箭头函数的理解及其与普通函数的区别。
JavaScript 谈谈对箭头函数的理解及其与普通函数的区别。
18 1
|
1月前
|
前端开发 JavaScript 数据处理
在JavaScript中,什么是异步函数执行的例子
在JavaScript中,什么是异步函数执行的例子
10 0
|
1月前
|
JavaScript
JS封装节流函数
JS封装节流函数
15 0
|
1月前
|
JavaScript 前端开发
javascript箭头函数
javascript箭头函数
|
1月前
|
JavaScript 小程序
微信小程序 wxml 中使用 js函数
微信小程序 wxml 中使用 js函数
77 0
|
1月前
|
JavaScript 前端开发
JavaScript函数科里化
JavaScript函数科里化