JavaScript基础--作用域
2024-01-07 20:40:41
一、作用域:
1、全局作用域:在script标签中的代码,或者外边js文件中的代码(非函数体)
全局变量:在全局作用域内定义的变量,在任何的作用域内都是有效的
生命周期:浏览器打开的时候开始,浏览器关闭的时候销毁
全局变量都是window对象下的属性,全局函数都是window对象下的方法
2、局部作用域:有且只有函数才能产生局部作用域!
局部变量:只在当前的局部作用域内有效
生命周期:函数调用时开始,调用完成后销毁
二、隐式全局变量
1、在局部作用域内没有用var声明的变量
2、在局部作用域内没有用var声明的变量以分号分隔
3、在局部作用域内没有用var声明的变量以赋值号连接
三、作用域链的查找规则:
先从当前的作用域内查找,如果有就返回,如果没有依次向上一级作用域内查找,直到全局作用域;如果全局作用域内还没有,就报错。
var num = 100
console.log(num) //100
if (1) {
console.log(num) //100
}
while (num > 99) {
console.log(num) //100
num--
}
var demo1 = function () {
console.log(num) //99
console.log('我是demo1')
}
demo1()
// 浏览器对象
console.log(window)
console.log(num) //99
console.log(window.num) //99
var str = 'javaSE'
console.log(window.str) //javaSE
window.demo1()
function demo2() {
var count_1 = 5
console.log(count_1) //5
console.log('我是demo2') //我是demo2
}
demo2()
console.log(count_1) //报错
function fn1() {
a = 1
var x = 10;y = 20;z = 30
var m = n = o = 22
}
fn1()
console.log(a) //1
console.log(y, z) //20 30
console.log(n, o) //22 22
// var age = 55
function funct_1() {
// var age = 66
function funct_2() {
// var age = 77
function funct_3() {
// var age = 88
console.log(age) //88 77 66 55 报错
}
funct_3()
}
funct_2()
}
funct_1()
文章来源:https://blog.csdn.net/du_cr/article/details/135402623
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!