美文网首页
三、标准对象

三、标准对象

作者: mjwz5294 | 来源:发表于2018-02-23 17:39 被阅读0次

在JavaScript的世界里,一切都是对象。但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串。如:

typeof 123; // 'number'

typeof NaN; // 'number'

typeof 'str'; // 'string'

typeof true; // 'boolean'

typeof undefined; // 'undefined'

typeof Math.abs; // 'function'

typeof null; // 'object'

typeof []; // 'object'

typeof {}; // 'object'

可见,number、string、boolean、function和undefined有别于其他类型。特别注意null的类型是object,Array的类型也是object,如果我们用typeof将无法区分出null、Array和通常意义上的object——{}。

1、一些类型使用规则:

(1)用parseInt()或parseFloat()来转换任意类型到number;

(2)用String()来转换任意类型到string,或者直接调用某个对象的toString()方法。需要注意,null和undefined没有toString()方法,而number调用它也会报错,所以还是别用toString了

(3)typeof操作符可以判断出number、boolean、string、function和undefined,其余的都是object类

(4)判断Array要使用Array.isArray(arr);

(5)判断null请使用myVar === null;

(6)判断某个全局变量是否存在用typeof window.myVar === 'undefined';

(7)函数内部判断某个变量是否存在用typeof myVar === 'undefined'

2、Date对象用来表示日期和时间,如:

var now = new Date();

now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)

now.getFullYear(); // 2015, 年份

now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月

now.getDate(); // 24, 表示24号

now.getDay(); // 3, 表示星期三

now.getHours(); // 19, 24小时制

now.getMinutes(); // 49, 分钟

now.getSeconds(); // 22, 秒

now.getMilliseconds(); // 875, 毫秒数

now.getTime(); // 1435146562875, 以number形式表示的时间戳

(1)JavaScript的Date对象月份值从0开始,牢记0=1月,1=2月,2=3月,……,11=12月

(2)now.toLocaleString():本地时间

(3)new.toUTCString():UTC时间

(4)时间戳:一个自增的整数,它表示从1970年1月1日零时整的GMT时区开始的那一刻,到现在的毫秒数

3、RegExp:正则表达式

4、在JavaScript中,我们可以直接使用JSON,因为JavaScript内置了JSON的解析。

(1)对象序列化为JSON:JSON.stringify(xiaoming, null, '  ')。注意,第三个参数是为了好看而传入了缩进

(2)第二个参数用于控制如何筛选对象的键值,如果我们只想输出指定的属性,可以传入Array,如JSON.stringify(xiaoming, ['name', 'skills'], '  ');

(3)第二个参数还可以传入一个函数,这样对象的每个键值对都会被函数先处理,如:

function convert(key, value) {

    if (typeof value === 'string') {

        return value.toUpperCase();

    }

    return value;

}

JSON.stringify(xiaoming, convert, '  ');

结果所有属性值都变成了大写。

(4)如果我们还想要精确控制如何序列化小明,可以给xiaoming定义一个toJSON()的方法,直接返回JSON应该序列化的数据:

var xiaoming = {

    name: '小明',

    age: 14,

    gender: true,

    height: 1.65,

    grade: null,

    'middle-school': '\"W3C\" Middle School',

    skills: ['JavaScript', 'Java', 'Python', 'Lisp'],

    toJSON: function () {

        return { // 只输出name和age,并且改变了key:

            'Name': this.name,

            'Age': this.age

        };

    }

};

JSON.stringify(xiaoming); // '{"Name":"小明","Age":14}'

(5)JSON.parse():将JSON字符串反序列化为一个js对象,如:

JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]

JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}

JSON.parse('true'); // true

JSON.parse('123.45'); // 123.45

(6)JSON.parse()还可以接收一个函数,用来转换解析出的属性,如:

var obj = JSON.parse('{"name":"小明","age":14}', function (key, value) {

    if (key === 'name') {

        return value + '同学';

    }

    return value;

});

console.log(JSON.stringify(obj)); // {name: '小明同学', age: 14}

相关文章

  • 三、标准对象

    在JavaScript的世界里,一切都是对象。但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用typ...

  • (三)JavaScript 标准对象

    本文是大神廖雪峰的JavaScript教程学习笔记。并不是教程,如有需要,请前往廖雪峰大神大博客. 在JavaSc...

  • C++学习手记二:向量和迭代器

    三 标准库类型vector 标准库类型vector表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个...

  • 对象标准

    找对象一定找个能干滴 不然还不如爱情睡醒了 衣服会洗 饭会做 钱不太会挣 要不是想要的太多 就差不多 要是找个对象...

  • 标准对象

    在Javascript的世界里,一切都是对象。但是某些对象还是和其他对象不太一样,为了区分对象的类型,我们用typ...

  • 找对象的标准确定原则

    找对象的标准怎么确定呢? 今天的文章的主要内容是说一下找对象的标准应该怎么设定。总体的标准呢,大体分为三点,第1点...

  • JavaScript 标准对象

    标准对象包装对象DateRegExpJSON 标准对象 在JavaScript的世界里,一切都是对象。 但是某些对...

  • 基础

    1 标准输入输出对象: cin :istream对象,从标准输入读取数据 cout:ostream对象,将数据写入...

  • js:标准对象/包装对象

    一、在JavaScript的世界里,一切都是对象。 但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用...

  • 标准内置对象

网友评论

      本文标题:三、标准对象

      本文链接:https://www.haomeiwen.com/subject/mowxxftx.html