JavaScript变量:你知道原始值和引用值的区别吗

本文详细介绍了JavaScript中的变量声明,包括var、let和const的区别。重点讲解了原始值和引用值的概念,以及它们在复制、传参时的不同行为。此外,还通过示例展示了如何判断变量类型,帮助理解JavaScript中值的存储和操作机制。
摘要由CSDN通过智能技术生成

 

1,变量的声明:

       变量是松散类型,可以保存任何类型数据,每个变量只不过是一个用于保存任意值得命名占位符。有三个关键字可以声明变量,var const let。其中var在所有版本中都可以使用,而const和let只能在ECMAScript6以及更晚的版本中使用。

(1)var关键字:

          定义个变量:var message;定义了名为message的变量,可以用它保存任何类型的值。

         定义变量并设置它的值:

var message = 'js';

     var 声明作用域:使用var操作符定义的变量会成为包含它的函数的局部变量,比如,使用var在一个函数内部定义个变量,该变量将在函数退出时被销毁,示例如下:  

function test(){
    var message = 'java';//局部变量
}
test();
console.log(message)//Uncaught TypeError: message is not a function(报错)

    如果需要定义多个变量,可以在一条语句中用逗号分隔每个变量;

var message = 'java',
    fd = false,
    age = 18;

console.log(age);//18

  在使用var时,下面的代码不会报错,因为使用这个关键字声明的变量会自动提升到函数作用域顶部:示例如下:

function ageNam(){
    console.log(age);
   var age = 18;
}
ageNam();//undefined

   上面代码不会报错,是应为ECMAScript运行时把它看成等价于如下代码:(把所有变量声明都拉倒函数组用于的顶部,就是‘提升’

function ageNam(){
    var age;
    console.log(age);
    age = 18;
}
ageNam();//undefined

反复多次使用var声明同一个变量也没有问题:

function foo(){
    var age = 16;
    var age = 20;
    var age = 18;
    console.log(age);
}
foo();//18

(2)let声明:

     let 和 var 有着非常重要的区别:let声明的范围是块作用域,而var声明的范围是函数作用域;示例如下:

//var 声明
if(true){
    var name="java
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值