博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript的变量
阅读量:5992 次
发布时间:2019-06-20

本文共 1374 字,大约阅读时间需要 4 分钟。

1.javascript的变量是无类型的(untype)。

2.用var声明的变量是永久性的。所以当你试图用delete来删除其声明的变量时会报错。

3.当试图读取一个未声明的变量时,会报错。

4.当给一个未用var声明的变量赋值时,js会隐式的声明该变量(这个变量会被声明为全局变量,所以最好用var来声明。这一点在局部声明时非常重要)。

5.在函数内部,局部变量的优先级要高于同名的全局变量(相当于隐藏了该同名的全局变量)。

结合4,5两点。我们给出一个列子来说明其重要性。

var part = "global"; //声明一个全局变量

function checkpart()

{

var part = "local"; //声明一个局部变量

document.write(part);

}

checkpart(); //输出local

document.write(part); // 输出global

当你在声明part局部变量时省略了var。这就相当于声明了一个全局变量,即改变了全局变量part的值。下面的两条语句输出的都是local。

 

6.没有块级作用域。函数中声明所有变量(无论在哪里声明的),在整个函数中他都是有定义的。

var part = "global";

function checkvariable()

{

document.write(part);

}

checkvariable(); //输出global

 

var part = "global";

function checkvariable()

{

documen.write(part);

var part = "local";

document.write(part);

}

checkvariable();

上述代码第一次输出的不是global,而是undefined。这告诉我们在函数中声明变量时尽量将其集中放在函数的开头。

 

7.变量的内容

js中数据类型分为两组:基本数据类型和引用类型。数值,布尔值,null和未定义的值属于基本类型。对象,数组,函数属于引用类型(函数也是一种数据类型)。(字符串属于特殊类型)。基本数据类型在内存中具有固定的大小:一个数值占8个字节(在基本类型中最大),一个布尔值占一位。而引用类型具有任意长度,没有固定的大小。无法将其直接与每个相关变量储存在8个字节的内存中。所以变量储存的是这个值的引用(通常引用有两种形式:指针和内存地址)。这两中数据类型具有很大的差别。

var i = 1;

var j = i;

i = 2;

alert(j); //输出1

 

var i = new Array(1,2,3);

j = i;

i[0] = 2;

alert(j); //输出2,2,3

 

 

8.作为属性的变量

js解释器在工作之前会在所有js代码运行之前创建一个全局对象。这个全局对象的属性就是所有的全局变量。同理也会存在一个调用对象。而这个调用对象的属性就是所有的局部变量。一个js解释器可以工作在不同的执行环境中。这些执行环境彼此独立且又相互联系。(执行环境:不同的窗口,框架)。

转载于:https://www.cnblogs.com/chris-oil/archive/2013/05/19/3087425.html

你可能感兴趣的文章
Spring bean 作用域笔记
查看>>
Vary Admin:基于Vue.js的后台管理模板
查看>>
SpringCloud 总览
查看>>
PostgreSQL构建通用标签系统
查看>>
Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?...
查看>>
Visual Studio调试之避免单步跟踪调试模式
查看>>
奥迪坚:移动办公有“连接”更高效
查看>>
求数组的最大子数组值和最长公共子序列问题
查看>>
应用服务器优化技术
查看>>
相约珠海航展,用VR共享炫舞蓝天
查看>>
CentOS时间同步
查看>>
Python破解wifi
查看>>
Android--使用VideoView播放视频
查看>>
想要吸睛并进化为王者,做AR&VR得来这里!
查看>>
迪士尼推出电影VR应用,被吐槽亮点是UI设计
查看>>
Android ToolBar 使用完全解析
查看>>
Sqoop1 Install And Test MySQL/PostgreSQL
查看>>
逻辑备份,mysqldump,SELECT…INTO OUTFILE,恢复
查看>>
计算机视觉下一个技术拐点?前端成像或将开启“视觉2.0时代”
查看>>
ls另类用法
查看>>