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个元素5和2 (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的值会被清空