细说JavaScript的变量(JavaScript的变量详解)

一、变量的声明和赋值

编程中的程序其本质就是处理数据的过程,当输入指令时,就可以输出相应的内容,在输入和输出之间就是处理数据的过程。处理的数据可能有多种,多个,这时就需要使用不同的名字来存储、区分和提取不同的数据,这个名字就是编程中所叫的变量,简单的来说,可以把变量理解为一个容器,而容器的主要功能就是存储和获取。

1、变量声明

JavaScript是弱类型语言,与之相对应的是强类型语言,所谓强弱之分就是变量保存数据类型的区分,弱类型语言可以保存任意数据类型,而强类型语言必须在声明前指定变量的类型,被规定数据类型的变量只能保存对应的数据格式,常见的强类型语言有:C C++ Java,它们声明变量的同时必须同时声明其类型,在存储数据时必须存储对应的数据类型

float f; // 声明一个浮点类型的变量
int i; // 声明一个整数类型的变量

弱类型的JavaScript在声明变量时无需指定任何数据类型,也就是说每个变量仅仅保存数据值的一个占位符而已,可以被用来存储任意数据类型的值,在未对变量赋值之前变量会被系统默认为undefined(未定义的)

// 语法: var 变量名;
var zhishunet;


// 我们也可以使用逗号(,)一次性定义多个变量
var zhishunet, zhishuseo, zhishu

// 对于未声明的变量赋值时,变量就成为全局变量了
<script>
    zhishunet = "www.zhishunet.com"
    alert(zhishunet);  // 输出 www.zhishunet.com
</script> 

2、变量赋值

// 变量相当于容器,它的主要功能就是存储和读取,在JS中使用等号 “=” 运算符为变量赋值
// 语法: 变量名 = 数据值;

zhishunet = "www.zhishunet.com"

// 还有就是在声明变量的同时为变量赋值,将声明和赋值步骤合并为一行
// 语法: var 变量名 = 数据值;

var zhishunet = "www.zhishunet.com"

// 当多次对同一变量赋值时,相当于对该变量德的值进行重写

var zhishu = "www.zhishunet.com"
document.write(zhishu);
zhishu = "www.zhishunet.cn"
document.write(zhishu);

二、变量提升

// 变量提升又称为声明提前 举个例子:
var zhishu = "zhishunet"
var zhishu = "zhishuseo"

// 上面的例子就是在一个脚本中两次声明变量,但是js中所有全局变量的声明都会提升到脚本执行之前,而赋值操作会保留在原位置,上面代码解析步骤为:
var zhishu;
zhishu = "zhishuent";
zhishu = "zhishuseo";

三、全局变量和局部变量

全局变量和局部变量对应的两个范围分别时全局作用域和局部作用域,一个js文件或者HTML文件就相当于一个全局作用域,在全局作用域下可以包含多个小的区域,这些小区域就可以称作局部作用域,在全局作用域喜爱声明的变量就成为全局变量,在局部作用域下声明的变量就是局部变量,一般我们用函数声明布局作用域。全局作用域能够在任意位置使用,局部作用域仅能够在局部区域使用

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>知数SEO_专注搜索引擎优化和品牌推广</title>
</head>
<body>
<script>
    var url = "www.zhishunet.com";
    function demo(){
        var zhishunet = "www.zhishuseo.cn"
        document.write('<h2>',url,'</h2>');
        document.write('<h2>',zhishunet,'</h2>');
    }
    demo();
    document.write('<h2>',url,'</h2>');
    document.write('<h2>',zhishunet,'</h2>');
</script>
</body>
</html>

函数使用过后局部变量会自动销毁,js提供了一种内存管理机制,也称为垃圾回收机制 

四、变量的命名规则

1、变量其实就是标识符的一种,其命名规则与标识符保持一致,可以简单的理解为:

数字、字母、下划线、美元符,首字不能为数字

2、js区分大小写,可以使用驼峰命名法

大驼峰:GetNameByID

小驼峰:getNameByID (推荐)

五、ES6新特性的局部变量

ES6中有一种新的局部变量的声明方式,关键字为let,这种新方法的出现是为了让var的功能更具有专一性和单一性,让var专一的去声明全局变量

1、let关键字的基本使用

// 语法:let 变量名
let zhishunet;

// let 和 var 的语法格式相同,但let关键字实现了功能的专一性和单一性,它为局部变量而生,但是在全局作用域内依然可以使用(坑)

function demo(){
    let url = "www.zhishunet.com";
}

2、区块作用域

// 区块作用域使用方法是用大括号{}为局部作用域定界,let和区块作用域结合可增强代码的可读性和维护性

{
    let url = "www.zhishunet.com";
}

alert(url);  // 没输出 因为是局部变量

3、关键字let和var的区别

// 1、、没有变量提升

// 2、不能重复声明
// 使用var声明过的变量不能再次使用let声明,使用let声明过的变量也不能再次使用var或let声明

let和var声明方式的区别

关键字varlet
作用域全局或局部作用域局部作用域
是否可以重复声明可以不可以
是否可以重复赋值可以可以
是否有变量提升可以不可以

六、ES6新特性的局部变量

常量与变量相对应,常量是一旦定义就不会改变的数据,在项目开发中我们常见的常量名有网站域名,标题以及数学中的圆周率等等,这些就是一旦定义就不希望改变的数据,在ES6之前我们用var 加变量名大写的方式定义常量,ES6新增了const关键字用来声明常量,与var不同 const声明常量时必须进行初始化赋值,否则会报错

// 注意:常量一旦被赋值就不能被重新赋值,一旦定义则无法修改
const SITE = "www.zhishunet.com";
document.write('<h2>',SITE,'</h2>');

// const可以在局部作用域中声明,可以成为局部变量,局部变量不能在局部作用域之外使用

// 常量没有变量提升效果、不能被重复声明、不能被重新赋值、

常量声明注意事项

关键字const
作用域全局或局部作用域
是否可以重复声明同一作用域下不能
是否可以重复赋值不能
是否有变量提升不能

七、ES6新特性的解构赋值

在ES6以前,变量只能被单独赋值,批量赋值的方式无法实现,在ES6中允许按照一定模式从数组和对象中提取值来对变量进行赋值,成为解构(Destructuring)

// 数组和对象都能在单个变量中存储多个数据值,如
[1,2,3]; // 包含三个元素的数组

// ES6 可以这样赋值
var [a,b,c] = [1,2,3];

// 之前的写法
var a = 1;
var b = 2;
var c = 3;

// 除了var关键字之外,let const关键字同样适用于解构

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
05-31
在Oracle中,PL/SQL是一种编程语言,允许开发人员编写存储过程、函数和触发器等程序对象。这些程序对象可以使用变量存储数据,其中包括全局变量和局部变量。 全局变量是定义在包中的变量,可以在包中的任何过程或函数中使用。在包中定义变量的语法如下: ``` CREATE OR REPLACE PACKAGE package_name AS variable_name datatype; ... END package_name; ``` 在这个包中,变量名为`variable_name`,数据类型为`datatype`。这个变量可以在这个包中的任何过程或函数中使用。 局部变量是在过程或函数中定义的变量,它们的作用域只在这个过程或函数中。在过程或函数中定义变量的语法如下: ``` CREATE OR REPLACE PROCEDURE procedure_name AS variable_name datatype; ... BEGIN ... END procedure_name; ``` 在这个过程或函数中,变量名为`variable_name`,数据类型为`datatype`。这个变量只能在这个过程或函数中使用,不能在其他过程或函数中使用。 全局变量和局部变量都可以存储不同类型的数据,例如数字、字符、日期等。在使用变量之前,需要先声明变量的类型和名称。在程序执行过程中,可以对变量进行赋值、修改等操作。 需要注意的是,在使用全局变量时,需要注意多个程序对象可能会同时访问同一个全局变量,因此需要考虑并发访问的问题。在使用局部变量时,需要注意变量的作用域和生命周期,确保变量只在需要的时候才会分配内存空间,并在不需要时及时释放内存空间,以避免资源的浪费。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值