JavaScrip的数据类型及变量

来源:互联网 发布:网络的安全机制有哪些 编辑:程序博客网 时间:2024/06/05 10:30

一、JavaScript的变量:

1、声明变量:

(1)通过var关键字声明变量;

<script type="text/javascript">var a;var b;var c,d;</script>

(2)可以声明变量的同时给变量赋值;

<script type="text/javascript">var test='this is a test';var test1=12;var test2=1.2;var test3=true;var test4=false;</script>

(3)可以一次声明一个变量也可以一次声明多个变量;

<script type="text/javascript">var a=b=c=d=e=1;</script>

(4)如果只声明变量未对其赋值,默认值为undefined;

(5)如果变量重名则会产生覆盖;

<script type="text/javascript">var a=1;a=33;</script>

注意: 1)变量严格区分大小写;

<script type="text/javascript">var username='hello';var USERNAME='WORLD';alert(username);alert(USERNAME);</script>

2)变量名称不要包含特殊字符;

<script type="text/javascript">var test_1=12;var test5='hello';var _test='hello';</script>

3)变量名称最好遵循驼峰标记法或者下划线法;

<script type="text/javascript">var firstName='hello';//小驼峰var FirstName='world';//大驼峰var first_name='name';//下划线法</script>

4)变量名称最好含义明确;

<script type="text/javascript">var age=12;var name="hello";var weight=96;</script>

2、变量在内存中的存储和释放:

(1)收集方式;

(2)收集内容;

(3)回收算法;


二、JavaScript中的数据类型:

1、原始数据类型:

(1)数值型:JavaScript中的数值包含整数和浮点数,所有数值都是以双精度浮点型来表示;

1)十进制数;

<script type="text/javascript">//十进制var a=12;a=-23;a=12.3;a=.23e4;a=2e3;a=3E-2;</script>

2)十六进制数;

<script type="text/javascript">//十六进制a=0xABCDEF;a=0X0;a=0Xfff;</script>

3)八进制数;

<script type="text/javascript">//八进制a=0123;a=01234324;</script>

4)特殊值:

①infinity无穷大:当一个数值或数值表达式的值超出了可表示的最大值的范围,将被赋值为infinity。可以有无穷大infinity,也可以有无穷小-infinity,无穷大的范围;

<script type="text/javascript">//正无穷大Infinitya=1.79e310;a=-1.79e310;</script>

②NaN:代表not a number,当一个undefined表达式的结果为数值型数据时,该数值型就是NaN值,NaN是唯一一个不能和自身做比较的值,可以通过isNaN()检测值是否为NaN;

<script type="text/javascript">//NaN:Not a Numbera=0/0;//通过isNaN()来检测是否是NaN值alert(isNaN(a));//NaN不能和自身比较alert(NaN===NaN);</script>

(2)字符串型:

1)定界符:""或者'';

<script type="text/javascript">var str='this is a test';var str1="hello world";var str2="hello's";</script>

2)转义符:

①\n表示回车换行;

②\r表示换行;

③\t表示水平制表符(相当于点击了一次tab键);

④\"表示";

⑤\'表示';

⑥\\表示\;

<script type="text/javascript">var str3='hello\'s';var str4='a\nb\rc\td\"e\\f';</script>


(3)布尔类型:true/false;

<script type="text/javascript">var married=true;</script>

2、复合数据类型:

(1)对象(object);

(2)数组(array);

(3)函数(function);


3、特殊数据类型:

(1)无定义数据类型undefined:undefined用来表示不存在的值或者尚未赋值的变量,对一个变量只声明不赋值或者赋予一个不存在的属性值(var test=String.n=NotExists;alert(test);),都会使这个变量的值为undefined;

<script type="text/javascript">var test=String.NotExists;alert(test);</script>

(2)空值null:表示什么都没有,相当于一个占位符,null和undefined的区别就是undefined表示变量未被赋值,而null表示变量被赋予了一个空值(null与undefined的值相等但是类型不同);

<script type="text/javascript">var test=null;alert(test); //nullalert(null===undefined) //false</script>


三、数据类型转换(可以使用if...else...语句来进行判断):

1、隐式转换:

(1)转换成布尔类型:

1)undefined转换成false;

<script type="text/javascript">var a;//undefined->falseif(a){alert('true');}else{alert('false');}</script>

2)null转换成false;

<script type="text/javascript">var a=null;//null->falseif(a){alert('true');}else{alert('false');}</script>

3)数值型0或者0.0或者NaN转换成false;

<script type="text/javascript">//0 0.0 NaN->falsevar a=0;a=0.0;//NaNa=0/0; a=NaN;if(a){alert('true');}else{alert('false');}</script>

4)字符串长度为0转换成false;

<script type="text/javascript">var a='';//空字符串->falsea='0';//非空字符串a=' ';//非空字符串if(a){alert('true');}else{alert('false');}</script>

5)其他对象转换成true;

(2)转换成数值型数据:

1)undefined转换成NaN;

<script type="text/javascript">var a=undefined;//undefined->NaNalert(1+a);</script>

2)null转换成0;

<script type="text/javascript">var a=null;//null->0alert(1+a);</script>

3)true转换成1或者false转换成0;

<script type="text/javascript">var a=true;//true->1var b=false;//false->0alert(1+a);alert(1+b);</script>

4)内容为数字转换成数字,否则转换成NaN;

<script type="text/javascript">var a='12';//'12'->12b='3hello';//'3hello'->NaNalert(a);alert(1*b);</script>

5)其他对象转换成NaN;

<script type="text/javascript">var a='true';//'true'->NaNalert(1*a);</script>

(3)转换成字符串型数据:

1)undefined转换成"undefined";

<script type="text/javascript">document.write(undefined);//'undefined'</script>

2)null转换成"null";

<script type="text/javascript">document.write(null);//'null'</script>

3)NaN转换成"NaN";

<script type="text/javascript">document.write(NaN);//'NaN'</script>

4)true转换成"true",false转换成"false";

<script type="text/javascript">document.write(true);//'true'document.write(false);//'false'</script>

5)数值型转换成NaN、0或者与数值对应的字符串;

<script type="text/javascript">document.write(NaN);//'NaN'document.write(123);//'123'</script>

6)其他对象:如果存在这个对象则转换成toString()方法的值,否则转换为undefined;


2、显示转换:

(1)转换成数值:

1)number函数强制转换成数值:

①数值转换成原来的值;

②字符串:如果可以解析为数值则转换为数值,发否则转换成NaN或者0;

③true转换成1,false转换成0;

④undefined转换成NaN;

⑤null转换成0;

<script type="text/javascript">var test=Number(12);//12test=Number(232.3);//232.3test=Number(true);//1test=Number(false);//0test=Number(undefined);//NaNtest=Number(NaN);//NaNtest=Number(null);//0test=Number('3hello');//NaNtest=Number('234');//234alert(test);</script>

2)转换成整型:praseInt(string,radix)函数,其中radix表示进制,默认情况为十进制;

注意: 1)当参数radix的值为0或者没有设置这个参数的时候,parseInt()会根据string来判断数字的基数;

2)当忽略radix,JavaScript默认数字的基数规则为:

①如果string以0x开头,parseInt()会把string的其余部分解析为十六进制;

②如果string以0开头,那么ECMAScript v3允许parseInt()的一个实现把其后的字符解析为八进制或者十六进制的数字;

③如果string以1~9的数字开头,parseInt()将把它解析为十进制的整数;

④字符串如果以合法字符开始,截取合法字符;

⑤开头和结尾的空格是允许的,中间的空格会被认为是不合法的字符;

⑥如果字符串的第一个字符不能被转换成数字,parseInt()会返回NaN;

⑦在字符串以"0"为开始时旧的浏览器默认使用八进制数,ECMAScript 5默认的是十进制的基数;

<script type="text/javascript">var test=parseInt('123');//123test=parseInt('234',0);//234test=parseInt('0xabcdef');//11259375test=parseInt('012344');//12344test=parseInt(45,16);//69test=parseInt('3hel23lo');//3test=parseInt('true');//NaNtest=parseInt(true);//NaNtest=parseInt('  35  6 a ');//35alert(test);</script>

3)转换成浮点型:praseFloat(string)函数返回转换成浮点型的值,该函数指定字符串中的首个字符是否为数字,如果是则对字符串进行解析,直到到达数字末端位置,然后以数字返回该数字而不是作为字符串;若首个字符不是数字,则返回NaN;

<script type="text/javascript">var test=parseFloat('123.34abc');//123.34test=parseFloat('123');//123test=parseFloat('sdf');//NaNtest=parseFloat(' 2e3a');//2000alert(test);</script>

注意:number函数将字符串转换为数值比praseInt函数严格得多,基本上只要有一个字符无法转换成数值,整个字符串就会被转换成NaN。

(2)转换成字符串:

1)通过String函数转换成字符串:

①数值转换成数值本身;

②字符串转换成字符串本身;

③true转换成"true",false转换成"false";

④undefined转换成"undefined";

⑤null转换成"null";

<script type="text/javascript">var test=String(1234);//1234test=String(23.34);//23.34test=String('this is a test');//this is a testtest=String(true);//truetest=String(false);//falsetest=String(null);//nulltest=String(undefined);//undefinedtest=String(NaN);//NaNalert(test);</script>

2)转换成字符串型:toString()函数;

(3)转换成布尔类型:通过boolean函数强制转换成布尔值:

1)0、-0、0.0转换成false;

2)NaN转换成false;

3)空字符串转换成false;

4)undefined转换成false;

5)null转换成false;

<script type="text/javascript">var test=Boolean(0);//falsetest=Boolean(-0);//falsetest=Boolean(NaN);//falsetest=Boolean(undefined);//falsetest=Boolean('');//falsetest=Boolean(0.0);//falsetest=Boolean('0');//truealert(test);</script>

原创粉丝点击