Javascript中的五种数据类型详解

  Undefined

  未定义。只有一个值undefined

  Null

  只有一个值,null

  Boolean

  在javascript中,只要逻辑表达式不返回undefined不返回null,就都是真的。

  

复制代码 代码如下:

  if(3) true

  if(null) false

  if(undefined) false

  Number

  String

  javascript中不存在char类型。

  字符串定义可以用单引号,也可以用双引号。

  

复制代码 代码如下:

  <html>

  <head>

  <script type="text/javascript">

  //var s="hello";

  //alert(typeof s);//s是字符串类型

  var s=new String("hello");//s 是对象类型

  alert(typeof s);

  </script>

  </head>

  <body>

  </body>

  </html>

  typeof 是一个一元运算符,用来获得变量的数据类型

  其返回值有五个 undefined,boolean,number,string以及object.

  其中前面四个都好理解。而最后一个object是让程序员无从判断的,只笼统的返回了object

  在javascript中,如果函数没有声明返回值,那么会默认返回undefined。

  如果声明了返回值,那么实际返回什么就是什么。

  undefined从null派生,所以比较时返回true

  alert(undefined==null);//true

  强制类型转换

  在javascript中,有三种强制类型转换:

  Boolean(value)

  Number(value)

  String(value)

  

复制代码 代码如下:

  <html>

  <head>

  <script type="text/javascript">

  var num=Number(3);

  alert(num);

  var s="hello";

  alert(Boolean(s));

  var s1=String("hello");

  alert(typeof s1);

  var obj=new String("hello");//这不是强制类型转换!

  alert(typeof obj);

  </script>

  </head>

  <body>

  </body>

  </html>

  在javascript中,所有的对象都继承自Object对象。

  用new 的方式生成。

  js中有些方法是可以枚举出来的,有些是不行的。

  用js内置方法可以判断,是否可以枚举出来。

  

复制代码 代码如下:

  <html>

  <head>

  <script type="text/javascript">

  var object=new Object();

  for(var v in object){

  console.log(v);

  }

  alert(object.propertyIsEnumerable("prototype"));//返回了false,表示没有可以枚举的属性,也意味着子对象相应的属性也是不可以枚举的

  </script>

  </head>

  <body>

  </body>

  </html>

  枚举自定义类型的属性

  

复制代码 代码如下:

  <html>

  <head>

  <script type="text/javascript">

  var member=function(name,age){

  this.name=name;

  this.age=age;

  }

  var m=new member("liudh",50);

  for(var v in m){

  console.log(v);

  //name

  //age

  }

  alert(m.propertyIsEnumerable("prototype"));//false

  //for(var v in window){

  //    console.log(v);

  //}

  </script>

  </head>

  <body>

  </body>

  </html>