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>
- JavaScrip的数据类型及变量
- javascrip获取变量的数据类型
- 变量的数据类型及引用数据类型
- js 变量及变量的数据类型
- Python 基本数据类型及变量的使用
- java 变量的内存空间及数据类型
- 最近的javascrip学习心得及小心情
- 02 数据类型及变量
- java变量及数据类型
- Python变量及数据类型
- Python_1_数据类型及变量
- 数据类型及变量
- 20.变量及数据类型
- 变量,数据类型及转换
- javaScript变量及数据类型
- 第一章 javascrip 变量
- Javascrip变量问题
- javascrip变量作用域
- 第七章 常用类
- linux磁盘分区管理
- RedisTemplate 的hash结构测试类, 使用场景 购物车
- LeetCode 167. Two Sum II
- 将Java文件转换为HTML文件
- JavaScrip的数据类型及变量
- 第八章 集合
- Javaweb题
- ReactNative之FlatList组件使用方法总结
- web性能优化之DOM篇
- jdbc在模糊搜索时候报错:Parameter index out of range
- 字符串与字符数组的区别
- 可编辑的select下拉框
- 数字证书原理,公钥私钥加密原理