JavaScript 变量详解

在这里插入图片描述

开头语:变量相当于容器,值相当于容器内的数据,而变量名就是操作容器内数据的句柄。

1.声明变量

🌲知识点

在 JavaScript 中,声明变量使用 var 语句

🌳实例设计

在一个 var 语句中,可以声明同一个变量,也可以反复初始化变量的值。
未赋值的变量,初始化为 undefin (未定义) 值。当声明多个变量时,应使用逗号运算符进行分隔。

var a; //声明一个变量
var a, b, c;//声明多个变量
var b = 1//声明并赋值
document.write(a);//返回 undefined (未定义)
document.write(b);//返回1

在 JavaScript 中,可以重复声明同一个变量,也可以反复初始化变量的值。

注意:在非严格模式下,JavaScript 允许不声明就直接为变量赋值,这就是因为 JavaScript 解释器能够自动隐式声明变量。隐式声明的变量总是作为全局变量使用,在严格模式下必须先声明,才能使用。

2.赋值变量

🌍知识点

使用等号(=) 运算符可以变量赋值,等号左侧为变量,等号右侧为被赋的值。

🌎实例设计:

JavaScript 引擎的解析方式:先解析代码,获取所有被声明的变量,然后再一行行的运行。这样所有声明的变量,都会被提升到代码的头部,这称之为变量提升。

document.write(a);    //显示undefined
a = 1;
document.write(a);	//显示1
var a;

在上面的示例中,声明变量放在最后,赋值操作放在前面,由于 JavaScript 在预编译期已经对变量声明语句进行了解析,
所第一行代码读取变量值时不会抛出异常,而是返回未初始化的值 undefind
第3行代码是在赋值之后读取,则显示为1.

3.变量作用域

😎知识点:

变量作用域 (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

不显示声明局部变量会带严重后果,记得声明!!

4.全局变量

定义全局变量有一下三种方式:
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 函数体中,所有声明的私有变量、参数、内部函数对外都是不可见的,如果不主动放开,
外接式无法访问内部数据的,因此使用函数体封存应用程序是最佳实践。

完结!!!
作者:在校生记录博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值