JS08-变量的调用和变量的赋值

一.函数调用变量赋值变量的原则

在函数中,调用变量和对变量赋值的原则

①变量的调用

var int = '北京';

function fun1(){

    var int = 100;

    console.log(int);

    function f1(){
        var int = '反正不用';
    }
}

fun1();    →  100

调用变量的原则
会先在当前作用域中,找是否有这个变量
如果有,就直接使用这个变量
如果没有,去父级作用域寻找这个变量
如果父级作用域有这个变量,就使用这个变量
如果父级作用域没有这个变量,再向上一层寻找
如果找到这个变量,就直接使用
如果所有的作用域都没有这个变量,执行结果是报错
只会向父级作用域找变量,不会向子级作用域找变量

②变量的赋值

var int = '北京';

function fun2 (){
    var int = 100;

    int = 200;  

    console.log(int);
}

fun2();   →   200

函数之前的调用,只能调用全局作用域的int

如果全局作用域没有int,则函数内部,赋值语句升级定义的全局变量
调用的就是 函数内部的的变量,int
console.log(int);

变量的赋值原则
先在当前作用域中找变量,如果有,就对这个变量进行赋值
如果当前作用域没有这个变量,去父级作用域找这个变量
如果父级也没有这个变量,再去父级找变量
如果所有的作用域都没有这个变量
赋值语句,升级为定义变量语句,并且定义的是全局作用域变量
不会去子级找变量赋值

记住一句话: 定义变量,一定要写 var 关键词,不管是局部还是全局

图:赋值和调用:1-4
1.只有局部作用域int , 没有全局作用域
在这里插入图片描述
2.全局、局部作用于域都有变量
在这里插入图片描述
3.有全局int , 没有局部 int
在这里插入图片描述
4.局部、全局 都没有 var一个int
在这里插入图片描述
5.局部全部都有int 但是函数有参数

var a=10; function fn(a){ a=20; console.log(a) } fn(a); console.log(a)
结果是输出  20  10

图:调用变量:1-3
1.局部 int 存在
在这里插入图片描述
2.局部int 没有 ,全局 int 有
在这里插入图片描述
3. 局部int ,全局int都没有
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值