【JavaScript】20_JS提升

简介: # 13、提升## 变量var的提升​ \- 使用var声明的变量,它会在所有代码执行前被声明​ 所以我们可以在变量声明前就访问变量(不推荐,不好维护)## 函数的提升​ \- 使用函数声明创建的函数,会在其他代码执行前被创建​ 所以我们可以在函数声明前调用函数## let的提升不显示​ **let声明的变量实际也会提升,但是在赋值之前解释器禁止对该变量的访问**```html <script>

13、提升

变量var的提升

​ - 使用var声明的变量,它会在所有代码执行前被声明

​ 所以我们可以在变量声明前就访问变量(不推荐,不好维护)

函数的提升

​ - 使用函数声明创建的函数,会在其他代码执行前被创建

​ 所以我们可以在函数声明前调用函数

let的提升不显示

let声明的变量实际也会提升,但是在赋值之前解释器禁止对该变量的访问

        <script>
            console.log(b)

            let b = 10

            // fn()

            function fn(){
                alert("我是fn函数~")
            }

            // fn2()
            // var fn2 = function(){

            // }
            // console.log(a)

            var a = 10
            // a = 10 // window.a = 10
        </script>

练习

        <script>
            /* var a = 1
        function fn(){
            a = 2
            console.log(a) // 2
        }
        fn()
        console.log(a) // 2 */

            // 变量和函数的提升同样适用于函数作用域

            /*  var a = 1
        function fn(){
            console.log(a) //undefined
            var a = 2
            console.log(a) // 2
        }
        fn()
        console.log(a) // 1 */

            // 定义形参就相当于在函数中声明了对应的变量,但是没有赋值
            /* var a = 1
        function fn(a){
            console.log(a) //undefined
            a = 2
            console.log(a) // 2
        }
        fn()
        console.log(a) // 1 */

            /* var a = 1
        function fn(a){
            console.log(a) //10
            a = 2
            console.log(a) // 2
        }
        fn(10)
        console.log(a) // 1
 */

            /* var a = 1
        function fn(a){
            console.log(a) //1
            a = 2
            console.log(a) // 2
        }
        fn(a)
        console.log(a) // 1 */

            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>
相关文章
|
10天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
2月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
2月前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
3月前
|
人工智能 JavaScript 前端开发
使用Node.js模拟执行JavaScript
使用Node.js模拟执行JavaScript
34 2
|
3月前
|
消息中间件 JavaScript 前端开发
用于全栈数据流的 JavaScript、Node.js 和 Apache Kafka
用于全栈数据流的 JavaScript、Node.js 和 Apache Kafka
53 1
|
3月前
|
移动开发 JavaScript 前端开发
【JavaScript】JS执行机制--同步与异步
【JavaScript】JS执行机制--同步与异步
33 1
|
3月前
|
JavaScript 前端开发
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
138 1
|
3月前
|
Web App开发 JavaScript 前端开发
Node.js:JavaScript世界的全能工具
Node.js:JavaScript世界的全能工具
|
3月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
32 0