我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript变量类型以及变量作用域的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript变量类型以及变量作用域的示例分析

这篇文章主要介绍JavaScript变量类型以及变量作用域的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

变量类型

ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型。

基本类型

基本类型指的是简单的数据段,5种基本数据类型:undefined、null、boolean、number、string,基本数据类型是按值访问的,因此可以操作保存在变量中的实际的值。

复制变量值

从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。例如:

var num1 = 5;
var num2 = num1;

复制前的变量对象

JavaScript变量类型以及变量作用域的示例分析

复制后的变量对象

JavaScript变量类型以及变量作用域的示例分析

引用类型

引用类型指那些可能由多个值构成的对象,引用类型的值是保存在内存中的对象,JavaScript不允许直接访问内存中的位置,在操作对象时,实际上是在操作对象的引用而不是实际的对象,因此,引用类型的值是按引用访问的。

动态属性

引用类型的值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法。如果对象不被销毁或者这个属性不被删除,则这个属性将一直存在,但是我们不能给基本类型的值添加属性。例如:

var person = new Object();
person.say = "hello";
alert(person.say); //"hello"

复制变量值

从一个变量向另一个变量复制引用类型的值时,也会将存储在变量对象中的值复制一份放到为新变量分配的空间中,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制结束后,两个变量实际上将引用同一个对象,改变其中一个变量,就会影响另一个变量。例如:

var obj1 = new Object();
var obj2 = obj1;
obj1.say = "hello";
alert(obj2.say); //"hello"

JavaScript变量类型以及变量作用域的示例分析

传递参数

ECMAScript中所有函数的参数都是按值传递的,把函数外部的值复制给函数内部的参数。在向参数传递基本类型的值时,被传递的值会被复制给一个局部变量;在向参数传递引用类型的值时,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反映在函数的外部。例如:

function addTen(num) {
 num += 10;
 return num;
}
var count = 20;
var result = addTen(count);
alert(count);  //20 
alert(result);  //30

执行环境及作用域

执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。
全局执行环境是最外围的执行环境,在WEB浏览器中,全局执行环境被认为是window对象,因此全局变量和属性都是作为window的属性和方法创建的。
每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个环境栈中,在函数执行之后,栈将其弹出,将控制权返回给之前的执行环境。
当代码在一个环境中执行时,会创建变量对象的一个作用域链,作用域链的用途是保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端始终是当前指行代码所在的变量对象,作用域链中下一个变量对象来自外部环境,再下一个变量对象来自下一个外部环境,这样一直延续到全局环境,全局执行环境的变量对象始终是作用域链的最后一个对象。
标识符解析是沿着作用域链一级一级地搜索标识符的过程。搜索过程始终从作用域链的前端开始,然后逐级地向后回溯,直到找到标识符为止。

JavaScript变量类型以及变量作用域的示例分析

内部环境可以通过作用域链访问所有的外部环境,但外部环境不能访问内部环境中的任何变量和函数。

无块级作用域

JavaScript中没有块级作用域,例如:

if(true){
 var color = "blue";
}
alert(color);  //"blue"

在函数中未使用var声明的变量会被成全局变量,例如:

function add(num1,num2){
 sum = num1 + num2;
 return sum;
}
var result = add(10,20);
alert(sum);  //30

以上是“JavaScript变量类型以及变量作用域的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript变量类型以及变量作用域的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript的变量作用域实例分析

这篇文章主要讲解了“JavaScript的变量作用域实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的变量作用域实例分析”吧!1.变量作用域的分析首先,我们先研究一
2023-06-29

JavaScript中变量的作用域实例分析

本篇内容主要讲解“JavaScript中变量的作用域实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中变量的作用域实例分析”吧!一、变量的分类在JavaScript中变
2023-06-29

函数变量作用域的示例分析

这篇文章将为大家详细讲解有关函数变量作用域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。局部变量:在函数中,定义的变量就是局部变量,其作用范围仅限函数的内容;形参也是函数内部的变量,也是局不变量
2023-06-15

Shell中变量作用域的示例分析

这篇文章主要为大家展示了“Shell中变量作用域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell中变量作用域的示例分析”这篇文章吧。前言众所周知Shell 中的变量只作用于当前
2023-06-09

基于java变量和作用域以及成员变量默认初始化的示例分析

这篇文章主要为大家展示了“基于java变量和作用域以及成员变量默认初始化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于java变量和作用域以及成员变量默认初始化的示例分析”这篇文章
2023-05-30

C#类型和C#变量的示例分析

这篇文章主要介绍C#类型和C#变量的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C#类型有两种:值类型(value type)和引用类型(reference type)。值类型变量直接包括它们的数据,而引用
2023-06-17

Python变量的作用域举例分析

本篇内容主要讲解“Python变量的作用域举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python变量的作用域举例分析”吧!函数体内的变量为函数的局部变量,在函数体外不可使用>>>de
2023-06-21

shell循环中变量作用域的示例分析

小编给大家分享一下shell循环中变量作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近实现了一个shell脚本,功能简单来说就是从文件中按行读取
2023-06-09

Python中变量的作用域实例分析

这篇“Python中变量的作用域实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中变量的作用域实例分析”文
2023-06-29

Python变量类型使用实例分析

今天小编给大家分享一下Python变量类型使用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言:变量存储在内存中的
2023-06-29

PHP常量和变量之变量引用的示例分析

小编给大家分享一下PHP常量和变量之变量引用的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!关于PHP常量和变量之变量引用分别写两段代码,如下所示:
2023-06-15

编程热搜

目录