标签:
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用来查看变量的类型
<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判断某个对象是不是引用类型
<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>
标签:
原文地址:http://www.cnblogs.com/sean100/p/4567447.html