您的位置:首页 > Web前端 > JavaScript

JavaScript中的数据类型

2016-02-16 19:56 656 查看
JavaScript中的数据类型

ecmascript中有五中简单数据类型;(也称为基本数据类型)
Undefined Null Boolean Number String
一种复杂数据类型 object 本质上是一组无序的名称值组成滴呀;

typeof 运算符:

值得注意的是typeof(null) 返回的是object,书上是这么解释的,我也只能这么信了‘

因为特殊值null被认为是一个空的对象引用,

safari 5 之前的版本和chrome 7 及之前的版本在堆正则表达式调用

typeof的时候,返回的是function,而其他浏览器返回的是object类型;

2.

var message;//申明未赋值,(默认为undefined)

//var age 没有申明的变量

alert(message) //undefined

alert(age); //报错;

alert(typeof(message));
alert(typeof(age));
以上的结果都是undefined

function show(){
var a='a';
var b;
//var c;
alert(typeof(a));
alert(typeof(b));
alert(typeof(c));
//后面两个结果都是undefined
//所以可以简单地用来判断某个对象是否有该属性滴一
}
function display(params){
if(typeof params.name=='string'){
alert(params.name);
}
if(typeof params.age=='number'){
alert(params.age);
}
//也可以循环我们arguments
}

function show005(){
var obj1={name:'jack',age:10};
var obj2={name:'jackson'};
display(obj1);
display(obj2);
}


所以为了区分未申明的变量和申明了但没有赋值的变量;

我们可以显示的初始化message为undefined;

var message=undefined;

如果定义的对象准备用来保存对象,最好把它初始化为null,

null值表示一个空对象指针,这样有助于我们和其他的数据类型区分;

var obj=null;

if(obj!=null){

}else{

}

这里值的注意的一点是:

typeof(null==undefined) //true

typeof(null===undefined)//false

//书上是这么解释的,我也只能这么信了,

undefined值派生自null

这里,还有一些关于boolean类型的转换



这里仅仅是一些简单的笔记!

//boolean 类型滴
var a=''; //空字符串转换成false
var b='123' //非空转成true
var isa=Boolean(a);
var isb=Boolean(b);
alert(isa); //false
alert(isb); //ture
//所以
function show001(){
var message='123';
if(message){ //这里默认的进行了一次转换
alert('不为空');
}else{
alert('空..');
}
var value;  //这种申明但没有赋值的默认初始化为undefined
var obj=null; //如果该变量将用于接收一个对象最好赋值给null 空对象的指针
alert(Boolean(value));
if(value){
alert('true');
}else{
alert('false'); //这的是这条路线
}

if(obj!=null){

}else{

}
//所以在在申明变量的时候,根据实际情况给予赋值;
//undefined  null  '' //注意着三种空值滴呀
}
//关于NaN 和isNaN()
function show002(){
//判断一个x是否能够装换成数字
//能转换就非NaN
//不能转换就是NaN
alert(isNaN(NaN));//true
//例一:
var temp=parseInt('blue');
alert(temp);       //结果:NaN
alert(isNaN(temp)) //true 不能转换成数值
//例二:
var str='red';
alert(isNaN(str))   //true

var strNum='123';
alert(isNaN(strNum)); //false

//注意连个特别的!
var value1=Number(true);   //1
var value2=Number(false);  //0

//所以
alert(isNaN(true))         //false
alert(isNaN(false))        //false

}
//数值类型之间的转换滴呀
//数值之间额装换;
//Number parseInt parseFloat();


在string 类型中;

x个字符长度的转义序列表示一个字符;

字符串的特点:ecmascript中的字符串是不可变的,

也就是说,字符串一旦创建,他们就不能改变的滴呀;要改变

某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个含有新值的字符串填充该变量;

字符串的转换;

var age=10;

var ageStr=age.toString();

var found=true;

var foundStr=found.toString();

注意null 和undefinded 值没有这个方法;

toString(n) n可以代表基数,输入二进制,八进制,十六进制;等鞥

如果不知道数据类型的情况下可以使用;

String(),这个函数可以将任何类型的值转换成字符串;

var val1=10;
var val2=null;
var val3=undefined;
alert(String(val1))
alert(String(val2))
alert(String(val3))
//这样的数据转换还是可以滴呀

接下来就是我们的object类型了;

ecmascript 中的对象其实就是一组数据和功能的集合;

创建Object类型的实例并未其添加属性和方法,就可以创建

自定义的对象了;

var obj=new Object();

var obj=new Object; //两种都有效;

在ecmascript中Object类型是所有它的实例的基础;

Object 的每个实例都具有下面的属性和方法;

Constructor 保存着用于创建当前对象的函数,

hasOwnProperty(propertyName)用于检查给定的属性是否在当前对象实例中

而不是在实例的原型中;

isPropertyOf(object)用于检查传入的对象是否是另一个对象的原型;

instanceof、isPrototypeOf、hasOwnProperty、in(先把这个疑问,留在这里......)

propertyIsEnumerabel(propertyName)用于检查给给定的属性是否能够

用for in 语句来枚举;

toLocaleString:返回对象的字符串表示,该字符串与执行环境的地区对应;

toString();返回对象的字符串;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: