JavaScript基础之六——内置对象(一)

一、构造对象


   JavaScript中的一些数据都是对象,对象实际上是属性与方法的包装。并不像其他类似Swift/OC/Java类的面向对象语言,在目前JavaScript的实现中并没有类的概念,开发者有如下两种方式来进行对象的构造:


//创建对象的方式有两种 可以直接创建对象的实例

var obj = new Object();

obj.name = "jaki";

obj.age = 25;

console.log(obj);

//也可以使用大括号才创建对象

var obj2 = {

name:"jaki",

age:25,

show:function(){

 console.log(this.name+"--"+this.age);

}

};

obj2.show();

回顾Swift语言的对象创建方法,是通过类调用构造方法,因此,在JavaScript中,也可以通过函数来模拟类的功能,此类的函数可以称为构造函数,示例如下:


//模拟类 构造方法

function Person(name,age){

this.name = name;

this.age = age;

this.show = function(){

 console.log(this.name+"--"+this.age);

};

}

var p = new Person("jaki",25);

p.show();

JavaScript中的对象呗构造出来后,依然可以为其动态添加属性或方法,示例如下:


//模拟类 构造方法

function Person(name,age){

this.name = name;

this.age = age;

this.show = function(){

 console.log(this.name+"--"+this.age);

};

}

var p = new Person("jaki",25);

p.show();

//已经构造的对象 也可以增加属性

p.phone = "1111"

console.log(p.phone);

二、数值对象Number


   在JavaScript中,数值是一种基本数据类型,但是Number是数值对象,可以理解为对数值的包装。并且JavaScript中的数值只有一种类型,可以创建整数,也可以创建小数,如下:


//数字对象

//JS中只有一种数字对象Number

//可以描述整数  也可以描述小数

var c = 10;

var c1 = 3.14;

也支持使用科学计数法来对数值进行描述,示例如下:


//也可以使用科学计数法来计数

var c2 = 1.2e5;

var c3 = 123e-5;

console.log(c2,c3);

在JavaScript中,使用前缀0来描述八进制数值,使用前缀0x来描述十六进行的数值,示例如下:


//使用0为前缀 约定为8进制

var c4 = 017;

console.log(c4);  //十进制15

//使用0x前缀约定为十六进制

var c5 = 0x11;

console.log(c5); //十进制17

需要注意:和其他语言不同,JavaScript中不能随意的数值前面加0,否则会被认为是八进制计数。


   关于Number,如果使用new来进行构造,会返回一直数值对象,其中可以穿入一个参数作为数值对象的原始值,如果将Number()作为函数来使用,则会直接返回一个具体的数值,示例如下:


//Number可以作为构造方法来使用 传入的参数为要构造的Number值

var objc = new Number(15);

console.log(objc);

//Number也可以作为函数来使用 这时他将返回数值或者NaN

var objc2 = Number(2);

console.log(objc2); //2

var objc3 = Number("c");

console.log(objc3);//NaN

Number中内置了一些常用的属性与方法,示例如下:


//常用内置属性

//返回可表示的最大值

console.log(Number.MAX_VALUE);

//返回可表示的最小值

console.log(Number.MIN_VALUE);

//返回非数字值

console.log(Number.NaN);

//表示负无穷大 发生溢出时 会返回

console.log(Number.NEGATIVE_INFINITY);

//表示正无穷大 发生溢出时 会返回

console.log(Number.POSITIVE_INFINITY);

对象实例的常用方法:


//常用内置方法

var c6 = 100;

//将数据转换成字符串

console.log(c6.toString());

//toString()方法中可以传入一个参数 默认为10进制 可选2-36

console.log(c6.toString(36));

//toLocaleString()方法返回本地环境格式的字符串  一般10进制

console.log(c6.toLocaleString());


var c7 = 3.1415926;

//toFixed()方法用于将数字转换成字符串 可以指定小数位数 会四舍五入

console.log(c7.toFixed(3));

//将数值转换成指数计数法

console.log(c7.toExponential(1));

//toPrecision()方法可以将数值转换为指定位数

console.log(c7.toPrecision(4));

//返回原始数值

console.log(c7.valueOf());

需要注意,对于进制转换,toString()方法支持2-36进制,这很好理解,数字0-9加上26个英文字母,最多可以表达36个数字。


三、字符串对象String


   JavaScript语言中的字符串对象封装了大量的操作方法,需要注意,JavaScript中的String对象是不可变的,所有对字符串的操作都是返回一个新的字符串。String对象中最常用的一个属性为length属性,这个属性可以获取字符串的长度,示例如下:


//字符串对象

var str1 = new String("HelloWorld");

var str2 = String("HELLO");

//length属性可以获取字符串的长度

console.log(str1.length);  //10

String对象中封装的一些常用方法示例如下:


//静态方法

//通过Unicode值创建字符

var str3 = String.fromCharCode(100,102,103,104);//dfgh

console.log(str3);


//创建html锚点

console.log(str1.anchor("label")); //<a name="label">HelloWorld</a>

//嵌入big标签中

console.log(str1.big());//<big>HelloWorld</big>

//嵌入small标签

console.log(str1.small());//<small>HelloWorld</small>

//嵌入blick标签中

console.log(str1.blink());//<blink>HelloWorld</blink>

//嵌入b标签中

console.log(str1.bold());//<b>HelloWorld</b>

//获取指定位置的字符 从0开始

console.log(str1.charAt(1));//e

//获取指定位置字符的unicode码

console.log(str1.charCodeAt(1));//101

//字符串拼接

console.log(str1.concat("1","2","3"));//HelloWorld123

//嵌入打印模式

console.log(str1.fixed());//<tt>HelloWorld</tt>

//指定HTML字体颜色

console.log(str1.fontcolor('red'));//<font color="red">HelloWorld</font>

//指定HTML字体大小

console.log(str1.fontsize(24));//<font size="24">HelloWorld</font>

//indexOf()方法用于检查某个子串在父串中第一次出现的位置,其中第1个参数为要检索的子串,第2个参数为从某个位置开始检索

console.log(str1.indexOf('l',3));//3  注意,如果没有检索到 会返回-1

//嵌入i标签中

console.log(str1.italics());//<i>HelloWorld</i>

//从后往前检索 同indexOf()方法

console.log(str1.lastIndexOf("l",10));//8

//嵌入a标签中

console.log(str1.link("www.baidu.com"));//<a href="www.baidu.com">HelloWorld</a>

//进行字符串比较 如果str1<参数 则返回-1 如果大于 则返回1 相等 则返回0

console.log(str1.localeCompare("Z"));//-1

//match()方法用于字符串检索 其将返回一个检索结果对象

//match()方法的参数可以为

//字符串:要检索的字符串

//正则表达式:要检索的正则表达式

console.log(str1.match("ell"));//[ 'ell', index: 1, input: 'HelloWorld' ]

console.log(str1.match(/ell/));

//进行字符串替换 第1个参数为要被替换的字符或者正则 第2个参数为替换成的字符串

console.log(str1.replace("Hello","hahaha"));//hahahaWorld

//进行子串匹配 可以是字符串参数也可以是正则 这个方法不能指定检索起点

console.log(str1.search("World"));//5

//进行字符串截取

console.log(str1.slice(0,5));//Hello

//进行字符串分隔操作

//第一个参数:分隔标准 可以会字符串或者正则

//第二个参数:返回数组中元素的最大个数

console.log(str1.split('o',10));//[ 'Hell', 'W', 'rld' ]

//嵌入strike标签中

console.log(str1.strike());//<strike>HelloWorld</strike>

//嵌入sub标签

console.log(str1.sub());//<sub>HelloWorld</sub>

//进行字符串截取 第1个参数为起始位置 第2个参数为需要截取的长度

console.log(str1.substr(0,5));//Hello

//进行字符串截取 获取两个索引之间的字符

console.log(str1.substring(5,10));//World

//嵌入sup标签中

console.log(str1.sup());//<sup>HelloWorld</sup>

//全部转换为小写字母

console.log(str1.toLocaleLowerCase());

console.log(str1.toLowerCase());

//全部转换为大写字母

console.log(str1.toLocaleUpperCase());

console.log(str1.toUpperCase());

//返回字符串对象的原始值

console.log(str1.valueOf());

四、日期对象Date


   JavaScript中提供丰富的日期处理方法,示例如下:


//日期对象date

//创建当前时间对象

var date1 = new Date();

console.log(date1);//2017-01-04T02:00:05.617Z

//返回当前的日期

var date2 = Date();

console.log(date2);//Wed Jan 04 2017 10:04:56 GMT+0800 (CST)

//获取时间对象是一个月中的第几天 1-31之间 必须是Date对象调用

console.log(date1.getDate()); //4

//获取时间对象是一周中的第几天 周日为0

console.log(date1.getDay());  //3

//返回月份 注意 这个会返回0-11之间

console.log(date1.getMonth()); //0

//获取完整的年

console.log(date1.getFullYear()); //2017

//获取小时0-23

console.log(date1.getHours());

//获取分钟0-59

console.log(date1.getMinutes());

//获取秒0-59

console.log(date1.getSeconds());

//获取毫秒0-999

console.log(date1.getMilliseconds());

//获取时间戳 从1970年1月1日 起

console.log(date1.getTime());

//返回本地时间与格林威治时间的分钟差

console.log(date1.getTimezoneOffset());//-480

//返回世界时间中 一个月中的第几天 1-31

console.log(date1.getUTCDate());

//返回世界时间中 一周中的第几天  周日为0

console.log(date1.getUTCDay());

//返回世界时间中的月份 0-11

console.log(date1.getUTCMonth());

//返回世界时间中的年

console.log(date1.getUTCFullYear());

//返回世界时间中小时

console.log(date1.getUTCHours());

//返回世界时间中的分钟

console.log(date1.getUTCMinutes());

//返回世界时间中的秒

console.log(date1.getUTCSeconds());

//返回世界时间中的毫秒

console.log(date1.getUTCMilliseconds());

//静态方法 返回从1970.1.1到指定日期间的毫秒

console.log(Date.parse(date1));

//设置日期 1个月中的某一天 1-31

date1.setDate(1);

//设置月份

date1.setMonth(2);

//设置年份

date1.setFullYear(2011);

//设置时

date1.setHours(10);

//设置分

date1.setMinutes(20);

//设置秒

date1.setSeconds(23);

//设置毫秒

date1.setMilliseconds(100);

console.log(date1);

//通过时间戳设置date对象

date1.setTime(1483599203000);

console.log(date1);

//下面这些方法设置时间时间

date1.setUTCDate(3);

date1.setUTCMonth(10);

date1.setUTCFullYear(2020);

date1.setUTCHours(22);

date1.setUTCMinutes(22);

date1.setUTCSeconds(34);

date1.setUTCMilliseconds(112);

console.log(date1);

//转换为本地时间字符串

console.log(date1.toString());//Wed Nov 04 2020 06:22:34 GMT+0800 (CST)

//转换时间部分

console.log(date1.toTimeString());//06:22:34 GMT+0800 (CST)

//转换日期部分

console.log(date1.toDateString());//Wed Nov 04 2020

//转换为世界时间字符串

console.log(date1.toUTCString());//Tue, 03 Nov 2020 22:22:34 GMT

//转换成本地格式的字符串

console.log(date1.toLocaleString());//11/4/2020, 6:22:34 AM

//只转换本地格式的时间

console.log(date1.toLocaleTimeString());//6:22:34 AM

//只转换日期

console.log(date1.toLocaleDateString());//11/4/2020

//返回从1970.1.1到指定时间的时间戳

//参数含义为 年 月 日 时 分 秒 毫秒

console.log(Date.UTC(2012,1,1,1,1,1,1));

上一篇:windows常用 API函数


下一篇:区块链每日一问丨token是什么?它有哪些种类?