【JavaScript】核心语法之作用域

JS(JavaScript)
作用域;
一.作用域是什么;
就是变量和函数所被访问范围,控制变量和函数的可见性和生命周期
作用域分为全局作用域和局部作用域
全局作用域;是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它
局部作用域;是指在函数内部声明的变量,因为该函数只能在它内部访问
二.变量的作用域;
1.全局变量和局部变量;
全局变量;是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它
局部变量;是指在函数内部声明的变量,因为该函数只能在它内部访问

/*
    全局作用域(函数作用域之外的范围) - 全局变量
    * 全局变量的作用域 - 全局作用域 + 函数作用域
 */
var v1 = 100;
console.log(v1);

function fun(){
    /*
        函数作用域 - 局部变量
        * 局部变量的作用域 - 当前函数作用域
     */
    var v2 = 200;

    console.log(v1);
    console.log(v2);
}

console.log(v1);

fun();
// 全局作用域不能访问局部变量
// console.log(v2);

function fn(){
    console.log(v2);
}
fn();

2.声明提前;
先调用变量而结果不会出错同时变量会返回(undefinen)值

console.log(v);// undefined
var v = 100;
console.log(v);// 100
// 当全局变量与局部变量同名时 - 在函数作用域中只能访问局部变量
function fn(){
    console.log(v);// undefined
    var v = 200;
    console.log(v);// 200
}
fn();

console.log(v);// 100

3.按值传递;
是值实参变量的值同样的值给函数的形参变量,表示相同的变量

var q = 100;/* 全局变量 */
function fn(q){
    // 参数与局部变量的用法类似 - 只能作用于当前函数的内部
    q++;
    return q;
}

var result = fn(q);

console.log(result);// 101
console.logq);// 100

三.函数的作用域;
全局函数和内部函数;
全局函数;被定义在任何位置都可以访问和调用函数
局部函数;将一个函数定义在另一个函数之内,只可在函数的内部访问,而不能访问全局作用域中访问

function fn(){
    console.log('this is fn');
    /* 函数作用域 - 内部/私有函数 */
    function n(){
        console.log('this is n');
    }
    n();
}
/* 全局作用域 */
fn();

// n();// n is not defined

function fun(){
    /* 另一个函数作用域 */
    fn();

    n();// n is not defined
}
fun();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值