【Miaov】JS6-作用域
2015-11-05 09:51
375 查看
作用域
域:空间、范围、区域……
作用:读、写
浏览器:JS解析器
至少分为两部分:
1.找一些东西 根据var/function/参数等去找
a=未定义
所有的变量,在正式运行代码之前,都提前赋了一个值:未定义
fn1=function fn1(){alert(2);}
所有的函数,在正式运行代码之前,都是整个函数块
===》以上为JS的预解析;
遇到重名的:只留一个,变量和函数重名了,就只留下函数
2.逐行解读代码
表达式:=+-*%/++--!
表达式可以修改预解析的值
alert(a);
var a=1;
function fn1(){alert(2);}
--------------------------------------------------------------------
alert(a); ------function a(){alert(4)}
var a=1;
alert(a);--------1
function a(){alert(2);}
alert(a);---------1
var a=3;
alert(a);-----------3
function a(){alert(4);}
alert(a);--------3
a()----相当于3()-------会报错
预解析:var function 参数……
--------------------------------------------------------------------------
总结:
一个script就是一个域,是一个全局,script全局变量、全局函数 自上而下,函数 内部也是一块域
作用域的过程
先找东西后执行,
执行的过程中遇到一些表达式就会改原来库里的东西,
遇到函数调用就开了一个新的作用域,然后又重复找东西和执行的过程,
if for while等不是作用域,定义变量时放在外边和放在里边是一样的,
火狐不能对函数进行预解析
全局变量和全局函数尽量放在外边,if和for循环最好不要定义变量和函数
window.onload=function(){
for(var i=0;i<aBtn.length;i++){
aBtn[i].onclick=function(){
alert(i); //3 没有以下内容的时候——有以下内容的时候弹出undefined——以下没有var的时候就是3
aBtn[3].style.background="yellow";//没有aBtn[3]
for(var i=0;i<aBtn.length;i++){
aBtn[i].style.background="yellow";
}
}
}
}
for里面有一个onclick函数的时候不能直接用i否则有很多后患
域:空间、范围、区域……
作用:读、写
浏览器:JS解析器
至少分为两部分:
1.找一些东西 根据var/function/参数等去找
a=未定义
所有的变量,在正式运行代码之前,都提前赋了一个值:未定义
fn1=function fn1(){alert(2);}
所有的函数,在正式运行代码之前,都是整个函数块
===》以上为JS的预解析;
遇到重名的:只留一个,变量和函数重名了,就只留下函数
2.逐行解读代码
表达式:=+-*%/++--!
表达式可以修改预解析的值
alert(a);
var a=1;
function fn1(){alert(2);}
--------------------------------------------------------------------
alert(a); ------function a(){alert(4)}
var a=1;
alert(a);--------1
function a(){alert(2);}
alert(a);---------1
var a=3;
alert(a);-----------3
function a(){alert(4);}
alert(a);--------3
a()----相当于3()-------会报错
预解析:var function 参数……
--------------------------------------------------------------------------
总结:
一个script就是一个域,是一个全局,script全局变量、全局函数 自上而下,函数 内部也是一块域
作用域的过程
先找东西后执行,
执行的过程中遇到一些表达式就会改原来库里的东西,
遇到函数调用就开了一个新的作用域,然后又重复找东西和执行的过程,
if for while等不是作用域,定义变量时放在外边和放在里边是一样的,
火狐不能对函数进行预解析
全局变量和全局函数尽量放在外边,if和for循环最好不要定义变量和函数
window.onload=function(){
for(var i=0;i<aBtn.length;i++){
aBtn[i].onclick=function(){
alert(i); //3 没有以下内容的时候——有以下内容的时候弹出undefined——以下没有var的时候就是3
aBtn[3].style.background="yellow";//没有aBtn[3]
for(var i=0;i<aBtn.length;i++){
aBtn[i].style.background="yellow";
}
}
}
}
for里面有一个onclick函数的时候不能直接用i否则有很多后患
相关文章推荐
- JS读取XML文件(兼容浏览器)
- JS实现自定义简单网页软键盘效果代码
- javascript中的数组操作
- JavaScript跨域总结与解决办法
- json editor verify online
- JSON.parse()和JSON.stringify()
- JavaScript实现cookie的写入、读取、删除功能
- JS实现slide文字框缩放伸展效果代码
- JSP程序404错误的解决浅谈
- 如何防止JavaScript自动插入分号
- JSP自定义标签实例(二)
- javascript高级开发学习笔记一
- JSP自定义标签开发入门实例
- js正则表达式语法
- javascript常用函数(2)
- JavaScript很牛
- javascript-dom
- javascript事件冒泡、捕获及阻止方法终极解答
- JSON字符串与NSDictionary和NSArray之间的转化
- jsp编程去除空白行的方法