JavaScrip的数据类型及变量

xiaoxiao2021-02-28  84

一、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"> //正无穷大Infinity a=1.79e310; a=-1.79e310; </script>

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

<script type="text/javascript"> //NaN:Not a Number a=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); //null alert(null===undefined) //false </script>

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

1、隐式转换:

(1)转换成布尔类型:

1)undefined转换成false;

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

2)null转换成false;

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

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

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

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

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

5)其他对象转换成true;

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

1)undefined转换成NaN;

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

2)null转换成0;

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

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

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

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

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

5)其他对象转换成NaN;

<script type="text/javascript"> var a='true';//'true'->NaN alert(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);//12 test=Number(232.3);//232.3 test=Number(true);//1 test=Number(false);//0 test=Number(undefined);//NaN test=Number(NaN);//NaN test=Number(null);//0 test=Number('3hello');//NaN test=Number('234');//234 alert(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');//123 test=parseInt('234',0);//234 test=parseInt('0xabcdef');//11259375 test=parseInt('012344');//12344 test=parseInt(45,16);//69 test=parseInt('3hel23lo');//3 test=parseInt('true');//NaN test=parseInt(true);//NaN test=parseInt(' 35 6 a ');//35 alert(test); </script>

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

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

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

(2)转换成字符串:

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

①数值转换成数值本身;

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

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

④undefined转换成"undefined";

⑤null转换成"null";

<script type="text/javascript"> var test=String(1234);//1234 test=String(23.34);//23.34 test=String('this is a test');//this is a test test=String(true);//true test=String(false);//false test=String(null);//null test=String(undefined);//undefined test=String(NaN);//NaN alert(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);//false test=Boolean(-0);//false test=Boolean(NaN);//false test=Boolean(undefined);//false test=Boolean('');//false test=Boolean(0.0);//false test=Boolean('0');//true alert(test); </script>

转载请注明原文地址: https://www.6miu.com/read-27368.html

最新回复(0)