JavaScript的对象介绍和常用内置对象介绍

2020-06-23 17:25:10 浏览数 (1)

JavaScript是面向对象的编程。对象是JavaScript的重要组成元素。

对象由属性和方法组成。

JavaScript包含四种对象:

1.内置对象(11种)

1.1 基本类型包装类型

Boolean, Number, String

1.2 数组对象 : Array

1.3 工具对象:Math , Date

1.4 正则对象:RegExp

1.5 其他对象:Function ,Error,Global,Object

2.自定义对象

3.浏览器对象

4.ActiveX对象。

五、常用内置对象介绍:

1. Boolean,Number不建议直接使用。

2. String:字符串类型

1.常见函数和属性

length

属性,获取字符串的字符数量

charAt(i)

返回给定位置的字符

charCodeAt()

返回给定位置的字符的字符编码

var s = "helloworld";

s.charAt(1); //e

s.charCodeAt(1); //101

concat()

将一个或多个字符串拼接起来,返回拼接得到的新字符串,但是大多使用" "拼接

slice()

(开始位置,返回字符后一个字符位置)

substr()

(开始位置,返回字符个数)

//从下标为3的位置开始,截取4个字符,包括下标为3的位置的字符

document.write(s.substr(3,4) "<br>");

substring()

(开始位置,返回字符后一个字符位置)

//从下标为6的位置开始截取,截取到下标为8的位置,但是不包括下标为8的字符[6,8)

document.write(s.substring(6,8) "<br>");

var s = "helloworld";

s.slice(3,7); //lowo

s.substr(3,7); //loworld

s.substring(3,7);//lowo

s //helloworld 不改变原值大小

indexOf(查找字符,startposition);

从前往后查找指定字符所在位置

"abcababacabc".indexOf("a",2)

lastIndexOf(要查找字符,开始位置);

从后往前查找字符串所在位置,可以有第二个参数,代表从字符串中哪个位置开始查找。

trim();

删除前置以及后置中的所有空格,返回结果

var s = " hello world ";

console.log("|" s.trim() "|"); //|hello world|

toLowerCase() :转换为小写

toUpperCase() :转换为大写

match() : 查找字符串,返回匹配字符串的数组,如果没有匹配则返回null

"JavaScript".match("Script") ----> 返回Script。

search() : 查找字符串,返回匹配字符串的首字符位置索引

"JavaScript".search("Script") ----> 返回4.

replace() : 替换字符串。

"JavaScript".replace("cri","heihei") ----> JavaSheiheipt

2.Array

ECMAScript数组和其他语言中的数组都是有序列表,但是有以下特性:

a.每一项都可以保存任何类型的数据。

b.数组的大小是可以动态调整。

c.数组的length属性:可读可写,可以通过设置length的值从数组的末尾移除项或向数组中添加新项

1) 创建方法

1. 使用Array构造函数

var arr = new Array();

var arr = new Array(20); // 预先指定数组的大小

var arr = new Array("terry","larry","boss"); //传入参数

注意:new 关键字也可以省略,但是尽量不要省略

2. 使用数组字面量

由一对包含数组项的方括号表示,多个数组项之间用逗号分隔

var arr = ["terry","larry","boss"];

var arr = [] //空数组

2) 访问数组元素

数组变量名[索引]

1.如果索引小于数组的长度,返回对应项的值

var arr = ["terry","larry","boss"];

arr[0] ; //访问数组中第一个元素,返回值为terry

2.如果索引大于数组的长度,数组自动增加到该索引值加1的长度

var arr = ["terry","larry","boss"];

arr[3] ="jacky"; //添加元素,数组程度变为4

数组最多可以包含4 294 967 295个项

3) 检查数组

var arr = [];

typeOf(arr); //返回object

Array.isArray(arr); //判断arr是否是数组类型

4) 转换数组为字符串

数组继承Object方法,并且对这些方法进行了重写

toLocalString();

toString(); 在默认情况下都会以逗号分隔字符串的形式返回数组项

例如:

var arr = ["terry","larry","boss"];

arr.toString() //terry,larry,boss

valueOf(); 在默认情况下以数组字面量的方式显示(firefox)

arr.valueOf(); //["terry","larry","boss"];

join(); 使用指定的字符串用来分隔数组字符串

例如:

arr.join("||"); //briup||terry||jacky

5) 栈,队列方法

1.栈 LIFO (Last-In-First-Out)

push() 可接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度

pop() 从数组的末尾移除最后一项,减少数组的length值,返回移除的项

2.队列 FIFO (First-In-First-Out)

shift() 移除数组中的第一个项并且返回该项,同时将数组的长度减一。

unshift() 在数组的前端添加任意个项,并返回新数组的长度。

6) 排序

reverse() 反转数组项的顺序

sort()

1.默认排序:该方法会调用每个数组项的toString() 转型方法,然后排序

2.自定义排序:

a.该方法可以接受一个比较函数作为参数,比较函数有两个参数

b.如果第一个参数位于第二个参数之前,返回负数

c.如果第一个参数位于第二个参数之后,返回正数

var arr = [11,5,23,7,4,1,9,1];

console.log(arr.sort(compare));

//该比较函数适合于大多数数据类型

function compare(v1,v2){

if(v1>v2){

return -1;

}else if( v1<v2){

return 1;

}else{

return 0;

}

}

7) 操作方法

concat() :先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,返回副本

var arr = ["aa","bb","cc","dd"];

var arr_new = arr.concat("ee","ff");

// arr_new = ["aa", "bb", "cc", "dd", "ee", "ff"]// arr不改变

slice() :可接受一个或者两个参数(返回项的起始位置,结束位置)

当接受一个参数,从该参数指定的位置开始,到当前数组末尾的所有项

当接受两个参数,起始到结束之间的项,但是不包含结束位置的项

例如:

var arr = ["aa","bb","cc","dd"];

1.接受一个参数时

var arr_new = arr.slice(1);

// arr_new = ["bb", "cc", "dd"],arr 不改变

2.接受两个参数时

var arr_new = arr.slice(1,2);

// arr_new = ["bb"]; arr不改变

splice() : 向数组的中部插入数据将始终返回一个数组,该数组中包含从原始数组中删除的项。

删除:指定两个参数(删除第一的起始位置,要删除的项数)

插入:指定三个参数(起始位置,0,要插入的项任意数量的项)

替换:指定三个参数(起始位置,要删除的项,要插入的任意数量的项)

例如:

var arr = ["aa","bb","cc","dd"];

1.删除

var del_arr = arr.splice(1,2);

// arr = ["aa","dd"]; 在原数组进行了删除操作

// del_arr = ["bb","cc"];返回删除的元素数组

2.插入

var del_arr = arr.splice(1,0,"ee","ff");

// arr = ["aa", "ee", "ff", "bb", "cc", "dd"] 将指定项插入到1位置处

//del_arr = [], 返回空数组

3.替换

var del_arr = arr.splice(1,2,"ee","ff");

// arr = ["aa", "ee", "ff", "dd"] 将"bb","cc" 替换成了"ee","ff"

//del_arr = ["bb", "cc"], 返回删除的元素数组

indexOf()(要查找的项,开始查找的位置(可选)) 从数组开头向后查找,使用全等操作符,找不到该元素返回-1

var arr = ["22","11","cc","dd","11"];

arr.indexOf(11); //返回-1,因为使用"==="进行匹配

arr.indexOf("11"); //返回1,从前往后匹配,返回第一个匹配元素的位置

lastIndexOf()(要查找的项,开始查找的位置(可选)) 从数组末尾向前查找,使用全等操作符,找不到该元素返回-1

var arr = ["22","11","cc","dd","11"];

arr.lastIndexOf("11"); //返回1,从后往前匹配,返回第一个匹配元素的位置

3.Math对象

1)常用方法

1.比较方法

Math.min() 求一组数中的最小值

Math.max() 求一组数中的最大值

Math.min(1,2,19,8,6); //1

2.将小数值舍入为整数的几个方法:

Math.ceil() 向上舍入

Math.floor() 向下舍入

Math.round() 四舍五入

console.log(Math.ceil(12.41)); //13

console.log(Math.floor(12.41)); //12

console.log(Math.round(12.3)); //12

console.log(Math.round(12.5)); //13

3.随机数

Math.random() 返回大于0小于1的一个随机数

2)其他方法:(了解即可,即用即查)

abs(num) 返回num绝对值

exp(num) 返回Math.E的num次幂

log(num) 返回num的自然对数

pow(num,power) 返回num的power次幂

sqrt(num) 返回num的平方根

scos(x) 返回x的反余弦值

asin(x) 返回x的反正弦值

atan(x) 返回x的反正切值

atan2(y,x) 返回y/x的反正切值

cos(x) 返回x的余弦值

sin(x) 返回x的正弦值

tan(x) 返回x的正切值

4.Date

日期

1.创建日期对象:

方法1:不指定参数

var nowd1=new Date();

方法2:参数为日期字符串

var nowd2=new Date("2004/3/20 11:12");

var nowd3=new Date("04/03/20 11:12");

方法3:参数为毫秒数

var nowd3=new Date(5000);

alert(nowd3.toLocaleString( ));

alert(nowd3.toUTCString());

方法4:参数为年月日小时分钟秒毫秒

var nowd4=new Date(2004,2,20,11,12,0,300);

alert(nowd4.toLocaleString( ));

//毫秒并不直接显示

document.write("<h1>日期对象</h1>");

var date = new Date();

document.write(date "<br>");

//获得当前年份-1900

document.write(date.getYear() "<br>");

//获得当前年份

document.write(date.getFullYear() "<br>");

//获得当前月份-1

document.write(date.getMonth() "<br>");

//获得当前是一个月中的哪一号

document.write(date.getDate() "<br>");

//获得星期几

document.write(date.getDay() "<br>");

//获得时间中的 时 (24)

document.write(date.getHours() "<br>");

//获得时间中的 分

document.write(date.getMinutes() "<br>");

//获得时间中的 秒

document.write(date.getSeconds() "<br>");

//获得时间中的 毫秒

document.write(date.getMilliseconds() "<br>");

5.RegExp 正则对象

1. 正则表达式

是一个描述字符模式的对象.

语法:

创建正则表达式对象:

var reg = new RegExp(pattern,modifiers);

或者

var reg = /pattern/modifiers;

注:

pattern 描述了表达式的模式/规则

modifiers 用于指定全局匹配、区分大小写的匹配和多行匹配

对应修饰符modifiers有三个选项:

i 执行对大小写不敏感的匹配。

g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m 执行多行匹配。

同时在创建正则表达式对象的是也可以不写修饰符

2 pattern内容的分析

括号:

[abc] 查找方括号之间的任何字符。

[^abc] 查找任何不在方括号之间的字符。

[0-9] 查找任何从 0 至 9 的数字。

[a-z] 查找任何从小写 a 到小写 z 的字符。

[A-Z] 查找任何从大写 A 到大写 Z 的字符。

[A-z] 查找任何从大写 A 到小写 z 的字符。

(red|blue|green) 查找任何指定的选项。

元字符:

. 查找单个字符,除了换行和行结束符。 想表示字符. 可以转义

w 查找单词字符。字母 数字 _

W 查找非单词字符。非 字母 数字 _

d 查找数字。

D 查找非数字字符。

s 查找空白字符。

S 查找非空白字符。

b 匹配单词边界。

B 匹配非单词边界。

查找 NUL 字符。

n 查找换行符。

f 查找换页符。

r 查找回车符。

t 查找制表符。

v 查找垂直制表符。

量词:

n 匹配任何包含至少一个 n 的字符串。

n* 匹配任何包含零个或多个 n 的字符串。

n? 匹配任何包含零个或一个 n 的字符串。

n{X} 匹配包含 X 个 n 的序列的字符串。

n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。

n{X,} 匹配包含至少 X 个 n 的序列的字符串。

n$ 匹配任何结尾为 n 的字符串。

^n 匹配任何开头为 n 的字符串。

?=n 匹配任何其后紧接指定字符串 n 的字符串。

?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

3 支持正则表达式的 String 对象的方法

使用字符串对象的相关方法按照正则表达式所描述的规则去搜索、匹配、替换、分割.

search 检索与正则表达式相匹配的值。

match 找到一个或多个正则表达式的匹配。

replace 替换与正则表达式匹配的子串。

split 把字符串分割为字符串数组。

4 RegExp 对象方法

使用正则表达式对象(RegExp)的相关方法来对指定字符串进行格式的验证.

compile 编译正则表达式。

exec 检索字符串中指定的值。返回找到的值,并确定其位置。

test 检索字符串中指定的值。返回 true 或 false。

5 例子

var v = "aa1a";

//字符串中包含数字就行

var reg = /d/;

console.log(reg.test(v));

var v = "aaa1111aa";

//字符串中连着出现4次(或者更多)数字即可

var reg = /d{4}/;

console.log(reg.test(v));

var v = "1111";

//^表示开头 $表示结尾

//开头和结尾直接必须连续出现4次数字

var reg = /^d{4}$/;

console.log(reg.test(v));

var v = "1aaa2345";

//开头一个非0数字,后面跟任意字符0-n个,最后4个数字结尾

var reg = /^[1-9]{1}.*d{4}$/;

console.log(reg.test(v));

var v = "aaredaa";

//red go yes 三个单词任意匹配

var reg = /(red|go|yes)/;

console.log(reg.test(v));

var v = "a1";

//开头是一个字符 结尾是一个数字(一共俩个字符)

var reg = /^wd$/;

console.log(reg.test(v));

var v = "aasd11111";

//开头是字符(1-n个)

var reg = /^w d$/;

console.log(reg.test(v));

var v = "aasd )_###11111";

//开头是字符(1-n个) 中间随意匹配

var reg = /^w (.*) d$/;

console.log(reg.test(v));

//email验证

var v = "cuilue@briup.com";

var reg = /^w @w (.[A-z]{2,3}){1,2}$/;

console.log(reg.test(v));

0 人点赞