JavaScript-变量(一)
变量:
一、变量的声明
1、全局变量的声明
实例1-1:
该实例说明了在声明变量之前,输出i,并没有报错!而是输出一个undefined,undefined指的是:具有该变量名i,只是变量名i未赋值。
其实它的执行过程就是下面的这个实例1-2:
从实例1-2我们可以看出var声明的变量 i 被提升到了该作用域的最顶部,也就是说var声明的变量具有变量提升的作用。
实例1-3:
从实例1-3我们可以得出,凡是用var声明的全局变量,在全局范围内都有效,即:全局变量具有全局作用域
总结:① var声明的变量具有变量提升的作用,会将该变量名提升至该作用域的最顶部。
② 全局变量具有全局作用域。
2、函数参数变量的声明
实例2-1:
实例2-1的函数中的形参变量名 i 的前面为什么不加var,其实这是函数的语法规则了,如果在 i 的前面加上var,那么就会报错,因为在函数声明的同时,var早早就已经存在于 i 的前面了,只是被隐藏起来了而已,
如果我们此时再在 i 的前面加上var,那么就相当于:var var i(第一个var是存在的,只是隐藏了我们看不见),这样就会报错:unexpected token var,因此我们不能再形参 i 的前面再次加var。
实例2-2:
实例2-2我们可以看出:在函数内部输出 i 得到的结果是5,而在函数外部输出 i 会报错,报错的原因是在函数的外部找不到函数形参 i ,这也就说明:函数的参数只能在该函数的内部有效,在函数的外部无效。
总结:函数的参数是属于局部变量,局部变量具有局部作用域。
3、函数体内变量的声明
实例3-1:
实例3-1我们可以看出:在函数体内声明的变量在其函数内有效,在其外部无效。同时在函数体内声明的变量默认也会将变量提升到该函数体内的最顶部。
总结:① 在函数体内声明的变量是属于局部变量,只在该函数体内有效,局部变量具有局部作用域。
② 在函数体内声明的变量具有变量提升的作用,默认会将变量提升到该函数体内的最顶部。
4、函数体内变量未声明:
实例4-1:
实例4-1我们可以看出:函数体内未声明的变量 i 不但在该函数体内有效,而且在该函数外部也有效。那么这个变量 i 具有变量提升的作用吗?我们来继续看实例4-2
实例4-2:
实例4-2我们可以看出:函数体内未声明的变量 i 没有变量提升的作用。其实凡是没有var声明的变量都不具有变量提升的作用。
从实例4-1中我们得出,在函数体内未声明的变量在该函数体内有效,在该函数外部也有效,因此在函数体内未声明的变量是全局变量
二、变量名的定义
1、变量名的定义规则:
① 首字符:英文字母或者下划线。
② 变量名只能由字母、数字以及下划线组成。
③ 变量名禁止使用javascript的关键词以及保留字
2、变量名的定义方法:
① 匈牙利命名法:类型 + 对象描述(例如:var sname = "乔布斯" s表示string字符串类型,name表示这个对象是一个名字)。
②驼峰命名法:第一种为全部小写的方式,单词与单词间用下划线分割,例如:var jeck_age = 10(表示杰克的年龄10岁)。第二种为大小写混合的方式,var jeckage = 10(大驼峰的写法:每个单词首字母大写)、var jeckage = 10(小驼峰的写法:第一个单词首字母小写,其余单词的首字母大写)
三、变量值
1、变量值的类型:值类型以及引用类型
① 值类型:number、string、boolean、undefined、null
② 引用类型:function、array、object
ok,这次先到这,下次我们再来一 一的讲解值类型和引用类型的使用方法及区别!!!