js数据类型

一共6中数据类型
+ number                                            1
+ string                                               “1”    //string 也是基础类型
+ boolean                                           true
+ undefined[typeof为undefined]        未定义
+ null[typeof为object]                         var a = null;
+ Symbol                         
 
js中的引用类型
+object                                              {“name”:”jack”,”age”:12}
   注:数组也是object,array[typeof为object]                 [1,2,3]
+function
    是function,不是object
 
js中所有的基础类型都是不可变的。基础类型是值类型,object是引用类型。
var s = "abc";
s.length = 100;
s.length;//依然是3
基础类型调用函数或者属性时,是先将通过s产生为一个新对象,操作都是在这个对象上进行的。不影响原有数据s。
 
全局变量默认所属的对象是window,如
var name = "jack";
window.name = "jack";
 
undefined与null比较
 2者参与计算都是false
 undefined不是对象,null是对象
 null===undefined   //false
 null==undefined     //true
 
NaN
NaN不等于任何一个数字,虽然其本身确实是个数字。所以有Nan==NaN为false
isNaN一般用来判断是否为数字
 

定义一个类,并定义其函数:
function person(firstname,lastname,age,eyecolor)
{
   this.firstname=firstname;
   this.lastname=lastname;
   this.age=age;
   this.eyecolor=eyecolor;

   this.changeName=changeName;
   function changeName(name)
   {
      this.lastname=name;
   }
  this.__defineGetter__("firstname", function(){  
          return firstname + "mask2";
    });  
  this.__defineSetter__("firstname", function(val){
      firstname = val +"mask1";
  });
 
     
}
var x = new person("sun","chunjie","28","black");
x.firstname = “dddsg”;
alert(x.firstname);
 

 
 
//字面定义,以下也是定义对象
var p = {
    x:0,
    y:10,
    z:100,
    put:function(){},
    get x(){//x属性的getter方法
        return 0;
    }
    set x(newX){//x属性的setter方法
        this.x = newX;
    }
 
};

 
以下方法定义的都是对象,用new就是引用类型了。
var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;
 
 
 
 
原文地址:https://www.cnblogs.com/dongfangchun/p/8707801.html