Javascript数据类型
Boolean(布尔)、Number(数字)、String(字符串)、Undefined(未定义)、Null(空对象)、Object(对象类型)、Function
引用类型:对象、数组、函数。
原始数据类型:数值、布尔值 、null 、字符串
原始类型的变量不能动态添加成员:
<script type="text/javascript"> var n=‘我好帅‘; n.Age=100; alert(n.Age);//结果是undefined </script>
引用类型的对象可以动态添加成员:
<script type="text/javascript"> var n=new String(‘sean‘); n.Age=100; alert(n.Age);//结果是100 </script>
变量是不是对象就看后面有没有new(这么说不太严谨)。
一个变量声明了,没有初值那么结果就是undefined.属于未知状态
一个变量赋值为null。表示的是尚未存在的对象。
typeof
typeof用来查看变量的类型
<script type="text/javascript"> var n1=10; var n2=true; var n3=‘hello‘; var n4; var n5=null; var n6=new Object(); alert(typeof n1);//这种写法可以,但很容易少输一个空格,造成错误 alert(typeof(n2));//boolean alert(typeof(n3));//string alert(typeof(n4));//undefined alert(typeof(n5));//类型显示为Object,为什么,null表示的是空对象,对象都是Object类型 alert(typeof(n6));//Object alert(String(n5));//用String把n5以字符串的形式显示出来。如果n5=null,那这个对象是不能调用任何方法的。 </script>
instanceof
instanceof判断某个对象是不是引用类型
<script type="text/javascript"> var time=new Date(); alert(time instanceof Date);//true alert(time instanceof Object);//true,Date是Object对象 </script>
小案例:
<script type="text/javascript"> var s1=‘我不帅‘; var s2=new String(‘我真的不帅‘); alert(s1 instanceof String);//false,s1是原始类型,而instanceof前面应该是引用类型的变量 alert(s2 instanceof String);//true,new出来的一个String对象,肯定是true alert(s1 instanceof Object);//false,instanceof前面应该是引用类型的变量 alert(s2 instanceof Object);//true,无论是什么类型的对象,都属于Object类型 alert(typeof s1);//string类型,为啥弹出来的是小写string,只是以一种字符的形式显示而已。 alert(typeof s2);//Object类型,new的一个对象 </script>
类型转换
parseInt(arg)将指定的字符串,转换成整数
parseFloat(arg)将指定的字符串,转换成浮点数
Number(arg)把给定的值(任意类型)转换成数字(可以是整数或浮点数);转换的是整个值,而不是部分值。如果该字符串不能完全转换为整型,则返回NaN。(Not a Number)
isNaN(arg),判断arg是否为一个非数字(NaN),NaN与NaN也不相等。
String(arg)把给定的值(任意类型)转换成字符串;
Boolean(arg)把给定的值(任意类型)转换成 Boolean 型;
<script type="text/javascript"> var n1=‘10‘; alert(parseInt(n1)+10);//20 var n2=‘10asd‘;//可识别为数字10 alert(parseInt(n2)+10);//20 var n3=‘adsas10jk‘;//不可识别 alert(parseInt(n3)+10);//NaN var n4=‘321qqw‘;//同上,数字开头跟字母可识别为数字,字母开头不可识别其中的数字。 alert(parseInt(n4,8));//进制转换,将八进制转换为十进制,将8换成16,即从十六进制转换为十进制 var x1=‘3.1415926kksd‘;//同上,数字开头跟字母可识别为数字,字母开头不可识别其中的数字。 alert(parseFloat(x1)+1);//4.1415926,转换成浮点数 var num1=‘99‘; alert(Number(num1)+1);//100 var num2=‘99a‘; alert(Number(num2)+2);//NaN var num3=‘a99d‘; alert(Number(num3)+3);//NaN alert(Number(false));//0 alert(Number(true));//1 alert(Number(‘1.2.3‘));//NaN alert(Number(new Object()));//NaN alert(Number(new Date()));//1433944956084 alert(Number(new Date().toLocaleTimeString()));//NaN //测试得知,Number()比较严格,不会识别99 //NaN,由于转换可能出现NaN,所以在使用前做个判断是不是NaN var n8=‘12a‘; if(isNaN(Number(n8))){//isNaN用来确定不是数字 alert(‘是的,确定不是数字‘);//结果,该alert触发 }else{ alert(‘是的,是数字‘); } //NaN与NaN也不相等 var n9=‘12a‘; var m9=‘ads2‘; alert(Number(n9)==Number(m9));//false // String(arg),把给定的值(任意类型)转换成字符串 var s1=100; alert(String(s1));//100 var s2=null; alert(String(s2));//null var s3; alert(String(s3));//undefined //String()与调用对象的toString()方法等效。 //特列:当对象为null或undefined时,调用toString()会报错,而String()可以转换成功。 var s4=undefined; alert(s4.toString());//报错 var s5=null; alert(s5.toString());//报错 var b=‘ads‘; alert(Boolean(b)); //Boolean(arg)把给定的值(任意类型)转换成 Boolean 型 </script>
时间: 2024-12-28 01:41:44