分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

JS作用域

发布时间:2023-09-06 01:11责任编辑:彭小芳关键词:作用域

一. 什么是作用域

它是指对某一变量和方法具有访问权限的代码空间, 在JS中, 作用域是在函数中维护的.

表示变量或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。Javascript的作用域只有两种:全局作用域和本地作用域,本地作用域是按照函数来区分的。


二、作用域的注意事项

1.js的作用域是有函数划分的,而不是块儿
var too="test";
if(true){//这是在块中的定义,此时还是全局变量
var too="new test";
}
alert(too=="new test");//return true;
function test()
{
var too="old test";//这是在函数中的定义,此时是局部变量
}
test();
alert(too=="new test");//return true;too并没有改变

2.所有属于全局作用域的变量都是window对象的属性
上面例子中 第一行的 too就是等于 window.too
看下面的例子
function test()
{
too="test";
}
test();
alert(window.too="test");
注意下两个例子的区别,一个通过显示声明 var too
一个隐示声明too="test";
也就是说没有显示定义的变量,它就是全局变量,虽然它可能只能在这个函数内使用。

三、作用域实例
1、

JScript 代码 


if(true){
??var aa= "bb";
}
console.log(aa); //bb

for(var i = 0; i < 100; i++){
//do
}
console.log(i); //100


2、

JScript 代码 


var bb = ‘11111‘;
function aa() {
??alert(bb);//undefine
??var bb = ‘test‘;
??alert(bb);//test
  var cc = "test1";
??alert(age);//语法错误
}
aa();


3、

JScript 代码 


var test = ‘1111111‘;
function aa() {
??alert(test);
}

function bb() {
??var test = ‘22222222‘;
??aa();
}

bb();//alert(1111111);


4、

JScript 代码 


alert(typeof aa); //function
alert(typeof bb); //undefined

function aa() { //函数定义式
??alert(‘I am 111111111‘);
};
var bb = function() { //函数表达式
}

alert(typeof bb);//function

5、

JScript 代码 


function aa(){
??var bb = "test";
??cc = "测试";
??alert(bb);
}

aa();
alert(cc);//测试
alert(bb);//语法报错


四、this指针作用域

在这里列出this在ECMAScript中的不同含义:

(1) 在全局执行环境中使用this,表示Global对象,在浏览器中就是window对象。

(2) 当在函数执行环境中使用this时,情况就有些复杂了。如果函数没有明显的作为非window对象的属性,而只是定义了函数,不管这个函数是不是定义在另 一个函数中,这个函数中的this仍然表示window对象。如果函数显示地作为一个非window对象的属性,那么函数中的this就代表这个对象。 (当然可以使用apply或者call函数来取代默认this的引用,详见[P88])

(3) 当通过new运算符来调用函数时,函数被当做一个构造函数,this指向构造函数创建出来的对象。

JS作用域

原文地址:http://www.cnblogs.com/suntao12138/p/7532409.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved