马冲的博客

导航

Js对象

对象

1. JS中无类概念---->JS的对象不由类而来

2. 产生方式: 1)php--->   由产生 <==>用一张图纸做一个事物

2)js------>由对象原型产生<==>用半成品做成品

3. JS中对象原型and对象实例 都是对象 都可用

   简化概念:对象原型->原型    对象实例->对象/实例

Object对象原型 作用: 产生新对象,是基本对象原型,只具备基础的属性方法

如何创建:

1.实例化Object构造方法创建对象 var yy=new Object() 添加属性方法

2.用JSON创建(对象字面量) var yy={'name':'mc','sex':'','say':function(){ alert('u a good'); } };

对象的操作:

replace <===> 对象.成员名

添加成员 replace = 值    (添加属性)

replace = 匿名函数 (添加方法)

删除成员 Delete replace (属性方法通用)

修改成员 replace = 值    (修改属性)

replace = 匿名函数  (修改方法)

访问成员 replace      (访问属性)

replace ()  (访问方法)

Object对象原型的方法和属性:

Prototype  属性  指向当前对象原型  chrome中使用__proto__

Constructor属性  指定当前对象的构造方法的引用

toLocaleString()   返回对象的本地字符串表示形式

toString()   返回对象的字符串表示形式

valueOf()   返回对象的原始值

 

Array数组对象原型 1. 无数组数据类型2.由对象代替的3.只有从0开始的连续的索引数组

如何创建:

1.new Array()  构造方法

var arr=new Array();//声明一个空数组

var arr=new Array(5);//声明指定长度的数组 (1个整型参数)

var arr=new Array(5,2);//声明2个元素52 (2个非整型的参数---2个都为元素)

var arr=new Array('5');//声明1个元素5 (1个非整型的参数---为数组的元素)

2.使用数组字面量方式

var arr=[];//声明1个空数组

 

var arr=[];

arr.length=5;//声明指定长度的数组

 

var arr=[1,2,3,4,,,4,,,65,87,,]; //声明数组元素为1,2,3,4,4,65,87的数组

* 注意:只有从下标0开始的连续的索引数组 连续指的是键 而不是值

  [1, 2, 3, 4, 6: 4, 9: 65, 10: 87]

 

数组的增删改查操作:

添加元素:数组[下标]=值//test[3]='machong';

下标推荐使用 数组.length //test[test.length]='推荐使用此种方式添加数组元素';

修改元素数组[下标]=新值//test[0]='测试修改数组元素';

删除元素Delete 数组[下标]//delete test[0];

使用元素数组[下标] //console.log(test[2]);

Pop  在数组最后弹出一个元素//console.log(test.pop());

Push 在数组最后插入N个元素

//result=test.push(8,9,10);//具有返回值 返回的是插入元素后所组成的新数组的元素个数

Shift 在数组开头移除1个元素//console.log(test.shift());

Unshift 在数组开头插入N个元素

//result=test.unshift(8,9,10);//具有返回值 返回的是插入元素后所组成的新数组的元素个数

Concat 连接数组元素//console.log(test1.concat(test2));

Join  使用自定字符连接数组元素//console.log(test.join('-->'));

Reverse 数组翻转方法//console.log(test.reverse());

Sort  数组排序操作

字符串排序//console.log(test.sort());

数组.sort()   

数字排序

数组.sort(回调函数)//console.log(test.sort(zsort));

 

回调函数:必须有2个形参,必须返回正数,0或者负数。

//声明回调函数(正序)

function zsort(nu1,nu2){

if(nu1>nu2){

return 1;//倒序--->-1

}else if(nu1==nu2){

return 0;

}else{

return -1;//倒序--->1

}

}

Slice() 数组切割方法

格式: 数组.slice(开始位置[,结束位置]) //console.log(test.slice(1,3));

开始和结束位置可以为正数,可以为负数,正数表示从头数,负数表示从结尾数.

Splice ()  可以对数组进行增删改的任意操作

格式: 数组.splice(开始位置,删除个数,元素,元素....)

添加数组元素操作

数组.splice(位置,0,新元素,新元素...)

//test.splice(3,0,'111','222');//此函数没有返回值  从下标3值的前面开始添加(不包括下标3的值)

删除数组元素

数组.splice(位置,个数)

//test.splice(2,3);//从下标2开始删除(包括下标2的值),删除个数(第二个参数)

修改数组元素

数组.splice(位置,个数,指定个数个元素)

//test.splice(-3,3,'111','222','333');//从倒数第三个元素开始(包括此元素)往后指定修改个数以及更 改值

1.位置参数可以为正数,可以为负数

2.该方法直接改变原有数组,返回的是被删除掉的元素

String对象原型:

声明字符串除了使用单引号和双引号之外可以使用String原型来实例化一个字符串对象

Var str=new String(字符串)    不提倡//var str=new String('aaaaaaaaaaaa');

字符串函数:

charAt() : 返回指定位置的字符

格式:charAt(位置);//console.log(test.charAt(3));//A

charCodeAt: 返回指定位置的字符的ASCII码

格式:charCodeAt(位置)// console.log(test.charCodeAt(3))//65

concat() 字符串连接操作 一般使用+号

格式:变量=字符串.concat(字符串,字符串...)// console.log(test1.concat('45666'));

indexOf  获取第一次出现指定字符的位置

格式: 变量=字符串.indexOf(字符串)

console.log(path.substr(0,path.indexOf(':')));//http从0开始截取倒:第一次出现的位置---协议

lastIndexOf: 获取最后一次出现指定字符的位置

格式; 变量=字符串.lastIndexOf(字符串)

console.log(path.substr(path.lastIndexOf('/')+1));//index.php 从最后一次出现的位置+1开始截取到最后---文件名

match() 对字符串进行正则匹配查找

格式:  变量=字符串.match(正则对象)//console.log(test.match(/good/g));//["good", "good"]

toUpperCase() 将字符串变为大写

格式:字符串.toUpperCase()//console.log(test.toUpperCase());//I AM A GOOD MAN

toLowerCase() 将字符串变为小写

格式:字符串.toLowerCase()//console.log(test.toLowerCase());//i am a good man

Replace()  进行正则替换或者字符串替换

格式:字符串.replace(正则或字符,替换的字符)//console.log(test.replace(/适合/g,'不适合吖'));

search() 查找指定规则的字符

格式: 字符串.search(正则对象)//console.log(test.search(/去/));//7

split() 使用指定字符分割字符串 类似PHP的explode

格式:字符串.split(指定分割的字符串[,数组元素个数])

//console.log(test.split(' ',3));//["I", "am", "a"] 第二个参数可以指定获取分割的数量

Substr() 切割字符串// //substr [位置][长度] 位置参数可+-  长度参数只可以+

Substring()切割字符串//substring [位置][位置] 两个参数都不能为- 第二个位永远比第一个位大

Slice()切割字符串// //slice [位置][位置] 位置参数都可为+-

 

Boolean对象原型

可以使用对象原型new 一个布尔值

Var bool=new Boolean(true);//不推荐

声明false不写参数,或者写一个false参数

 

Math对象(固有对象)

固有对象就是在系统中已经是对象实例的对象,不需要new可以直接使用

abs()  绝对值// console.log(Math.abs('-90'));//90

ceil() 向上取整//console.log(Math.ceil('3.121435'));//4

Floor() 向下取整//console.log(Math.floor('3.121435'));//3

Max() 计算最大值//console.log(Math.max(1,2,3,4,5,6,78,9));//78

Min() 计算最小值//console.log(Math.min(1,2,3,4,5,6,78,9));//1

Pow() 计算一个数值的指定次方//console.log(Math.pow(2,3));//8

Random() 随即产生0-1的小数// console.log(Math.random());//0.7494498507585377(随机)

//产生0-100的随机数

console.log(Math.ceil(Math.random()*100));//34

Round() 四舍五入方法// console.log(Math.round(2.35453));//2

//保留小数两位四舍五入

console.log(Math.round(2.35453*100)/100);//2.35

Sqrt() 开平方根的方法//console.log(Math.sqrt(2));//1.414

 

Date对象原型

JS的时间和PHP的异同:

1.时间戳表示 毫秒为单位 可到285616年后.

2.C 1970年1月1日0时0分0秒开始计算

如何创建时间对象:

创建本地时间对象 var now=new Date()

创建指定时间对象 //创建指定时间对象

//var nashi=new Date(1111111111111);//时间戳

//var nashi=new Date('1988-8-8 8:8:8');//一个时间字符串------

//var nashi=new Date('1988/8/8 8:8:8');//一个时间字符串///////

//var nashi=new Date('1999 8 8 8:8:8');//一个时间字符串 空格

按照多个指定格式的参数声明

//var nashi=new Date(12114,7,28,14,5,20,999);// 使用逗号

//在时间原型对象中通过parse()方法可以把一个时间格式的时间转化为时间戳的格式

var result=Date.parse('2322 2 6 3:45:11');

console.log(result);//11111111111000//后三位为毫秒

日期时间转换函数:

toDateString()  返回完整的日期格//Mon Jul 28 2014

toTimeString()  返回完整的时间格式///20:14:54 GMT+0800 (中国标准时间)

toLocaleDateString() 返回完整的本地日期格式//2014年7月28日

toLocaleTimeString() 返回完整的本地时间格式//下午8:19:30

toLocaleString() 返回完整本地时间格式//2014年7月28日 下午8:21:23

toUTCString() 返回完整的国际协调时间//Mon, 28 Jul 2014 12:23:42 GMT

获取或者设置时间的方法:

getTime() 获取时间戳 //1406550285092 setTime() 设置时间戳

getFullYear() 获取完整四位份//1970 SetFullYear() 设置完整四位

getMonth() 获取月份  值为0-11 表示1-12月//0 setMonth() 设置月份

getDate() 获取一个月中的第几 setDate()  设置月份中的第几

getHours() 获取小 setHours() 设置小

getMinutes() 获取钟数 setMinutes() 设置钟数

getSeconds() 获取 setSeconds() 设置

getMilliseconds() 获取毫秒 setMilliseconds() 设置毫秒

getDay()  获取周几

UTC国际协调时间相关函数--------get/set后面加上UTC----->getUTCTime()

function对象原型:

创建函数的方式:声明函数的方式---表示式函数(匿名)的方式---使用对象原型实例化一个函数

使用对象原型实例化一个函数 格式:var demo=new Function(形参,形参,.....函数体)

注意: 1.形参和函数体是字符串类型

  2.最后参数定是函数体之外的所有参数都是形参

  3.匿名函数(分类)

Global对象  固有对象 不可new,不可使用,是宿主在初始化程序前就备好的一个全局对象,根据宿主不    同,名称也不一定相同,在浏览器中,Global对象其实就是window对象

window对象的作用:

1.实现Global对象de实例,具有Global对象的方法

2.用户声明变量函数添加到window对象中成为window成员.只有window的方法才是   函数,变量也是window的成员属性名,其他都是某个对象的属性 和 方法

3.window对象是JS操作浏览器的接口,提供了Global之外的可以操作浏览器的函数.

正则表达式对象: JS中的正则表达式是一个对象而不是一个字符串.

如何创建正则对象 1.使用正则对象原型创建  var pattern=new RegExp(正则内容,修饰符)

2.使用正则字符串方式创建var pattern=/正则内容/修饰符

JS的正则修饰符

i  不区分大小写  ignore    m  视为多行  multiline

g  全局匹配  global

在字符串的match() 一次匹配所有符合的结果

在正则  中exec() 表下次接上次匹配

js正则对象的成员

lastIndex当前正则匹配到字符串的位置下次开始匹配的位置

source正则字符串内容

ignoreCase/multiline/global 检测正则对象中是否设置了i/m/g修饰符

     JS正则对象的方法

test() 进行正则匹配测试  返回布尔值

exec() 进行一次正则匹配

返回值是一个数组对象:

下标0 表示匹配到的内容

index属性   记录当前正则匹配成功的开始位置

input属性 记录当前正则正在匹配的原始字符串

下标N  表示第N个模式单元中的内容

compile() 进行正则对象编译

     正则对象原型RegExp的使用

作用:记录每一次正则匹配的模式单元的内容

获取:通过RegExp.$N方式获取第N个括号内匹配的内容

注意:如果进行了再一次的正则匹配,那么RegExp对象的$n的值会被清空

 

 

 

 

 

posted on 2018-11-07 00:28  马冲的博客  阅读(148)  评论(0编辑  收藏  举报