开头语:变量相当于容器,值相当于容器内的数据,而变量名就是操作容器内数据的句柄。
🌲知识点
在 JavaScript 中,声明变量使用 var 语句
🌳实例设计
在一个 var 语句中,可以声明同一个变量,也可以反复初始化变量的值。
未赋值的变量,初始化为 undefin (未定义) 值。当声明多个变量时,应使用逗号运算符进行分隔。
var a; //声明一个变量
var a, b, c;//声明多个变量
var b = 1;//声明并赋值
document.write(a);//返回 undefined (未定义)
document.write(b);//返回1
在 JavaScript 中,可以重复声明同一个变量,也可以反复初始化变量的值。
注意:在非严格模式下,JavaScript 允许不声明就直接为变量赋值,这就是因为 JavaScript 解释器能够自动隐式声明变量。隐式声明的变量总是作为全局变量使用,在严格模式下必须先声明,才能使用。
🌍知识点
使用等号(=) 运算符可以变量赋值,等号左侧为变量,等号右侧为被赋的值。
🌎实例设计:
JavaScript 引擎的解析方式:先解析代码,获取所有被声明的变量,然后再一行行的运行。这样所有声明的变量,都会被提升到代码的头部,这称之为变量提升。
document.write(a); //显示undefined
a = 1;
document.write(a); //显示1
var a;
在上面的示例中,声明变量放在最后,赋值操作放在前面,由于 JavaScript 在预编译期已经对变量声明语句进行了解析,
所第一行代码读取变量值时不会抛出异常,而是返回未初始化的值 undefind
第3行代码是在赋值之后读取,则显示为1.
😎知识点:
变量作用域 (scope)是指变量在程序过程中可以访问的有效范围,也称为变量的可见性
JavaScript 变量可以分为以下两种:
♠全局变量:变量在整个页面脚本中都是可见的,可以被自由访问。
♠局部变量:变量仅能在声明的函数内部可见,函数外是不允许访问的。
😎示例设计
下面演示了全局变量和局部变量的关系。
var a = 1; //声明并初始化全局变量
function f(){ //声明函数
document.write(a); //显示 undefined(未定义)
var a = 2; //声明并初始化局部变量
document.write(a); //显示2
}
f (); //调用函数
由于函数内部声明了一个同名局部变量a,所以预编译期JavaScript 使用该变量覆盖掉全局变量在函数内部的影响。
而在执行初期,局部变量a 未赋值,所以函数内第1行代码读取局部变量a的值也就是undefined (未定义)
当执行函数第2行代码时,则为局部变量赋值2,所以在第三行显示为2
不显示声明局部变量会带严重后果,记得声明!!
定义全局变量有一下三种方式:
1.在任何函数外直接使用 var 语句声明
Var f = 'value';
2.直接添加属性到全局对象上。在web浏览器中,全局作用域对象为 window。
window.f = "value";
3.直接使用未经声明的变量,以这种方式的全局变量被称为隐式的全局变量
f = ”value“
注意:全局变量在全局作用域内都是可见的,因此具有污染性,大量使用全局变量会降低程序的可靠性,用户应该避免使用全局变量。减少使用全局变量的方法有两种,下面示例形式演示说明。
实例设计
在脚本中创建一个全局变量,作为当前应用的唯一接口,然后通过对象直接量的形式包含所有应用程序变量。
本例使用的是 函数体封装应用程序,这是最常用的一种方法/
(function(window){
var Myapp = {}; //定义APP访问接口
MyAPP.name = {//定义APP配置变量
"id":"应用程序的ID编号"
};
MyAPP.work = {
num : 123
sub : { name : ”sub_id “}, //APP计数器等内部属性
doing : function(){//具体方法 //APP 应用分支
//执行代码
};
window.MyAPP; //对外开放应用程序接口
})(window)
在JavaScript 函数体中,所有声明的私有变量、参数、内部函数对外都是不可见的,如果不主动放开,
外接式无法访问内部数据的,因此使用函数体封存应用程序是最佳实践。
完结!!!
作者:在校生记录博客