无双

博学善思,自强不息

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

js学习笔记(三)变量

1、变量的声明:

var a;     //声明了变量,但未赋值,此时变量的值为undefined

var a,b,c;   //同时声明多个变量

var a=100;   //声明的同时初始化变量

var a=100,b=1000,c=10000;

2、在函数内的变量如果没有用var进行声明,则此变量就为全局变量,即使函数体外没声明过这个变量(因为系统会自动进行隐式声明)。如果函数体中还嵌套有其他函数,则上层函数中的变量对下层函数来说是有作用域的。要想在函数中屏蔽上层的变量,可以使用var对上层中已经拥有的变量进行再声明,则此变量就变为该函数的私有变量。

3、在函数中声明的变量,无论是在哪里声明的,在整个函数中都是有定义的,如:

  var a=10;

  function a(){

      alert(a);    //此处a的值并不是10,它并不是全局变量,因为后面又重新用var声明了a,所以此时a已经是函数的私有变量了,所以说即使是在后面才声明的var a=20,但它在整个函数中都是有定义的,只不过在执行var 语句之前它的值是undefined,所以此时a的值为undefined。

    var a=20;

alert(a);

}

4、读取一个未声明的变量时系统会报错,但当给一个未事先声明的变量赋值时不会出现错误,因为系统会在全局作用中隐式的声明它。在函数的嵌套函数中未用var声明的变量也会成为全局函数。

5、js的全局变量其实是js的最顶层对象window的一个属性,不在函数体中的this引用的就是window这个全局对象。当然函数体中的this就另当别论了。

6、全局变量时特殊的全局对象的属性,同理局部变量也是一个对象的属性,这个对象被称为调用对象。在执行一个函数时,函数的参数和局部变量是作为调用对象的属性而存储的,这个调用对象是系统自动创建的,所以它的生命周期是比较短的。

posted on   无双  阅读(3182)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
点击右上角即可分享
微信分享提示