Javascript学习笔记的变量和范围
ECMAscript变量是一个松散的变量。所谓的松散变量是变量名可以保存任何类型的数据,每个变量只是保存值的占位符。
定义:无功firstdemo;
两。变量的范围
2.1基本概念
使用var定义一个变量:一个定义变量作用域的局部变量,这个变量的方法也被显式声明。
如果你不理解这一点,你可以看看这个简单而粗略的例子。
复制代码代码如下所示:
测试();
函数测试(){
无功firstdemo =hello; / /定义局部变量
警报(firstdemo); / /你好
}
测试();
函数测试(){
无功firstdemo =hello; / /定义一个局部变量firstdemo
}
警报(firstdemo); / /错误,firstdemo不确定
从上面的两个例子中可以看到,如果一个变量在VaR函数中定义,函数退出后该变量将被销毁。
省略var定义变量:只要调用定义变量的函数,就可以在全局范围内访问变量。这个定义变量的方法也是一个隐式声明。
复制代码代码如下所示:
测试();
警报(firstdemo); / /你好
函数测试(){
firstdemo =你好;
}
提示:明确声明的变量是编译调用对象时,编译,例如,var t = 1;var是预编译的,和t = 1的解释;与隐式声明,变量只定义为全局变量在解释。
识别变量的范围可以帮助我们思考如何合理地声明变量,这不仅减少了不必要的内存开销,而且极大地避免了重复定义变量和覆盖先前定义的变量所带来的麻烦。
2.2动作域分析
复制代码代码如下所示:
Function demoFunction (s) {
document.writeln(S)
}
var i = 0;全局变量的定义
函数测试(){
demofunction(我);
功能innerfunction(){
var I = 1;定义局部变量
demofunction(我);
}
innerfunction();
demofunction(我);
}
测试();
输出结果:010
复制代码代码如下所示:
功能demofunction(s){
document.writeln(S)
}
var I=0;
函数测试(){
demofunction(我);
功能innerfunction(){
demofunction(我);
var I=1;
demofunction(我);
}
innerfunction();
demofunction(我);
}
测试();
输出结果:
一、0010
b,0未定义的10
C,0 i没有定义。
你可以猜出哪一个是结果,原因将在信息中解释。
这是这篇文章的全部内容,它是说,在任何编程语言中的变量的范围是简单的一个非常关键的细节。在js变量的范围比java和C的一大特点是js变量没有块级范围相对比较自由,和变量功能是全功能的有效。