javascript从入门到高级,每天不停更新知识点(7天)

1.javascript作用域:

代码名字(变量)在某个范围内起作用和效果 目的是为了提高程序的可靠性,更重要的是减少命名冲突。

2.js的作用域(es6)之前:全局作用域 局部作用域

3.全局作用域:

整个script标签 或者是一个单独的js文件

4.局部作用域:

在函数内部就是局部作用域这个代码的名字只在函数内部起作用

<script>
        //全局作用域
        var num = 1 ;
        console.log(num);
        function fn() {
            //局部作用域
            var num = 10 ;
            console.log(num);
        }
    </script>

5.全局变量:

在全局作用域下的变量

可以作用于函数内部

6.局部变量:

在局部作用域下的变量,函数内部的变量

只能在函数内部使用

7.注意 如果在函数内部 没有声明直接赋值的变量也属于全局变量

     //全局作用域
        var num = 1 ;//全局变量
        console.log(num);
        function fn() {
            //局部作用域
            var num = 100;//局部变量
            num1 = 10 ;//全局变量
            console.log(num);
        }
        
        fn();
        console.log(num1);
    </script>

8.局部变量和全局变量执行效率的区别:

8.0全局变量只有浏览器关闭时候才会销毁,比较占内存。

8.1 局部变量当我们程序执行完毕就会销毁,比较节约内存。

9.作用域链:

内部函数访问外部函数的变量,采取的是链式查找的方式决定取哪个值。

var num =10;
        function fn() {//外部函数
            var num = 20;
            function fun() {//内部函数
                console.log(num);
            }
            fun();
        }
        fn ();//20

10.预解析:

我们的js引擎运行js 分为两步: 预解析 代码执行

10.1 预解析 js引擎会把js里面所有的var 还有function提升到当前作用域的最前面。

10.2 代码执行 按照代码书写顺序从上往下执行

10.3预解析分为 变量预解析(变量提升) 和函数预解析(函数提升)

10.4变量提升 就是把所有的变量声明提升到当前的作用域最前面不提升赋值操作

var a=b=c=9;
相当于 var a = 9; b=9 ; c=9;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值