当前位置: 代码迷 >> 综合 >> 犀牛书笔记:(4)null,undefined Error object, wrapper and Primitive and Object
  详细解决方案

犀牛书笔记:(4)null,undefined Error object, wrapper and Primitive and Object

热度:9   发布时间:2023-12-06 16:45:07.0

null是object的一种特殊类型,在boolean语境下,传唤为false,在numeric语境下,转换为0,在string语境下,转换为null.

 

返回undefined有以下几种情况:使用一个已声明但从未赋值的对象或一个并不存在的对象的属性

 

尽管null和undefined是不同的,但用==判断时,可以得到true的结果,比如my有一个不存在的属性prop,

my.prop == null 返回true

 

另一点需要注意的是,和null不同的是,Undefined不是保留字。在很多js实现中,你可以声明一个变量为

var undefined;

 

当undefined用于boolean语境中,转换为false, 用于Numeric语境中,转换为NaN,用于string语境中,转换为"undefined"。

 

Date,

var now = new Date();

//Date month is zero-based.

var xmas = new Date(2006, 11, 25);

 

Error objects

每个错误对象包含一个message属性

 

 

包装类(Number, String and Boolean)

当元类型在object语境中使用时,包装类就被自动创建了

 

var len = s.length,在这个例子中,s的值并没有改变,而是新创建了一个透明的包装类对象,当访问完毕后,该对象被抛弃

 

当然也可以显示的创建包装类对象如:

var S = new String("hello"); //包装类类型

var s = "hello" //元数据类型

 

alert(typeof(S));//object

alert(typeof(s));//string

 

任何元数据类型可以通过object转换为对应的包装类型:

var number_wrapper = Object(3); //注意没有new!

 

在很多时候,+,<,<=等运算符同时适用于字符串和数字,JS将首先尝试调用对象的valueOf()方法,如果该方法返回一个元数据类型,就是用该类型,如果返回的是一个对象,就调用toString()方法,转换为字符串

 

例外的是Date类型,它同时实现了valueOf()和toString().当对Date对象使用+运算时,调用的是toString()方法。

 

 

 

 

  相关解决方案