JavaScript中的数据类型

本文深入探讨JavaScript中的数据类型,包括简单数据类型与复杂数据类型的特点,如何使用typeof运算符进行类型判断,以及不同数据类型间的转换方法。同时,文中还介绍了如何通过初始化变量来避免常见的错误。

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();返回对象的字符串;

 

转载于:https://www.cnblogs.com/mc67/p/5193748.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值