您的位置:首页 > Web前端 > JavaScript

由浅入深JavaScript——变量和原始类型

2017-08-13 19:53 127 查看
JavaScript变量

JavaScript变量标识符
标识符 var + 变量名称来定义变量。
变量名称以字母,下划线_,美元$符号开头,余下字符可以是字母,数字,下划线,美元符号。
eg: var name = 'hello';
var a1 = 'hello';
var _test = 'hello';
var $test = 'hello';
以上变量名称均为正确。
var 1a = 'hello'; //数字开头错误。
JavaScript允许一次声明多个变量。中间以逗号分隔。
eg: var a1 = 'hello1',a2 = 'hello2';

JavaScript大小写敏感。
var a = 'hello1';
var A = 'hello2';
a和A是两个不同的变量
function name(){}
function Name(){}
函数 name和Name是两个不同的函数。

JavaScript是弱类型语言。
所谓弱类型语言即变量没有固定类型,也无需明确类型。
相比于Java语言,定义一个变量必须要声明其类型。
Java代码
eg: String str = 'hello';
int num = 19;
JavaScript代码
eg: var str = 'hello';
var num = 19;
JavaScript中的变量类型是根据其内容改变而改变的。
如上,变量str 就是一个字符串类型的变量,变量num是一个数字类型的变量。
这即是弱类型带来的编程简便好处,但同时也对初学者容易造成混淆。

变量的作用域
变量按照作用域划分为全局变量和局部变量。其区别在于生命周期。
局部变量一般声明在函数内部,其使用范围也是在其声明的地方开始
到其所在的函数代码块结束。函数结束,其内部的局部变量注销。
全局变量声明在函数外部,其使用范围从其生命的地方开始</script>
标签结束,浏览器关闭,全局变量注销。
eg1:
<script>
var a ;//全局变量a,任何地方都可以使用
function test1(){
var a = 12;//局部变量a
//只能在声明他的地方开始到代码块结束之间使用。即test1中
}
function test2(){
alert(a); //全局变量a
}
</script>

除此以外对于没有声明过得变量在使用后,其将成为全局变量。
eg2:
<script>
var aaa = 111;
qqq = aaa+222;
function test(){
alert(qqq);
}
test();
</script>
声明 变量 aaa , 变量aaa + 222赋值给 从未声明过的变量qqq,
发现qqq如正常变零可以使用并且qqq可以在函数内部使用,
可见其为全局变量。

JavaScript原始值数据类型
在JavaScript中数据类分为两大类——原始值类型和引用值类型。
原始值数据类型与引用值数据类型其最大的区别在于存储结构。
原始值类型存储在栈中,其值直接存在变量访问的地方。
引用值类型存储在堆中,存储在变零访问出的是一个地址,指向内存里的一小块空间。
原始值类型中有5中数据类型。
Null,Undefined,string,Boolean,number
引用值类型中只用1种数据类型
Object
万物皆为对象,function,array,RegExp……

原始数据类型详解
在详解原始值数据类型之前先介绍运算一种特殊的运算符——typeof
typeof用来判断变量的数据类型。
alert()函数,在浏览器中弹出,多用在js调试错误。

字符串类型——String
字符串由单引号或双引号引起来。
字符串每个字符都有其特定的位置,第一个字符index是0。
eg:
<script>
var str = 'hello';
alert(typeof str);//string
alert(str.length);//5
alert(str.charAt(0));//h
</script>

数字类型——Number
可以表示32位的整数,也可以表示64位的浮点数。
可以表示为八进制必须0开头,也可以表示为十六进制0开头,后面接x字母。
科学计数法表示数字。
eg1:
var num1 = 12;
var num2 = 12.01;
alert(typeof num1);//Number
alert(typeof num2);//Number
eg2:
var num1 = 030 //等于十进制的24
var num2 = 0x1a //等于十进制的26
eg3:
var num1 = 2.13e6 //2.13*10的六次方。
布尔类型——Boolean
表示逻辑真与假。
定义时不可加引号。
true和false其值可以与0,1相等价。
eg:
<script>
var a = true;
alert(typeof a) //boolean
alert(a==1); //true
alert(a==0); //false
var a = 1;
alert(typeof a);//number
alert(a==true); //true
var b = 1;
alert(a==b) //true
</script>

Undefined类型
Undefined即未定义类型。其默认值为Undefined。
对于不存在的变量或者变量未赋初始值都为Undefined类型。
Undefined类型的默认值为Undefined,但值Undefined不同于未定义的值。
eg:
<script>
var a ; //变量a没有赋初始值,
alert(typeof a);//类型为Undefined,
alert(a==undefined);//值为undefined
alert(typeof c); //未定义的值c。
alert(c==a); //出错,对c使用除typeof运算符的其它运算符都会出现错误
//因为无法对一个不存在的变量进行运算
</script>
Null类型
表示空值,其默认值即null。
Null和Undefined
Undefined是从null中派生出来的。
Null的小问题 Null的typeof 是Object
在前面我们说Null为原始值类型,引用值类型才是对象。
但是null的typeof为object是由于历史原因所出现的bug,后来解释null
为对象的占位符。
eg:

<script>
var a = null//变量a 有值,值为null
alert(typeof a); //object
var b //变量b没有值 nudefined
alert(a==b);//true
</script>

引用数据类型
引用数据类型只有一种即——对象。
借用java中的一句话,万物皆为对象,本节课暂不讨论对象,
我们在后面的课程将会详细介绍。引用类型。

变量命名规范
在前文中我们的变量名称一直是随意起名,为了编程规范,我们的
变量名称应当有意义。
以下介绍三种常见的命名规范。
驼峰命名法
首字母小写,接下来的字母都大写字符开头
var myName = 'hello';
Pascal标记法
首字母大写,接下来的字母都大写字符开头
var MyName = 'hello';
匈牙利命名法
前缀+接下来字母都大写字符开头
var sMyName = 'hello';
我们以后的课程将采用驼峰命名规范。
同时在命名的时候应当注意避免使用JavaScript保留字和关键字。
保留字和关键字为JavaScript语言使用。
以下附部分保留字和关键字。
保留字:float
goto
implements
import
native
package
private
protected
……
关键字:
JavaScript关键字是保留的,不能用作变量名称或函数名称
var
in
if
break
do
for
如果把关键字用作变量名或函数名,
可能得到诸如 "Identifier Expected"(应该有标识符、期望标识符)
这样的错误消息

限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,
文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正

说在最后的话:

本博会开一个JS专栏,长期更新,由浅入深带大家系统的学习JavaScript,做出多彩的JS特效。

如果对你有用就关注一下吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java Script JS