Javascript对象

Javascript对象

Javascript对象

Javascript是基于对象的语言。

对象是一种特殊的数据类型,由变量函数共同构成。

  • 变量称为对象的属性

  • 函数称为对象的方法

对象分为:

  • 内置对象
  • 自定义对象

内置对象分为:

  • Array数组对象
  • String字符串对象
  • Date日期对象
  • Math数学对象
  • RegExp正则表达对象

Array数组对象

数组对象的创建

通过数组的构造函数Array()来创建数组对象

new Array();    //返回一个空数组,长度为0
new Array(size);      //返回一个长度为size的数组,且元素均为undefined
new Array(element0,element1,...,elementN); //使用指定参数的值来初始初始化数组
数组对象的属性
属性描述
constructor返回对创建此对象的构造函数的引用
length数组长度
prototype为对象添加属性和方法
数组对象的常用方法
方法描述
concat()连接两个或多个数组
join()把数组中的所有元素放入一个字符串,并用指定的分隔号隔开
push()向数组的末尾添加一个或多个元素,并返回新长度
pop()删除并返回数组最后一个元素
shift()删除并返回数组第一个元素
reverse()在原来数组的基础上,颠倒元素的顺序,不创建新的数组
slice()从已有数组中返回选定的元素
sort()对元素进行排序
splice()向数组中添加或删除一个或多个元素,返回被删除的元素
unshift()向数组开头添加一个或多个元素,返回新长度
  1. concat()方法

    连接两个或多个数组,返回合并后的新数组,原数组不变

    arrayObject.concat(param1,param2,...,paramX)
    
    • 至少需要一个param参数
    • 参数param可以是具体的值,也可以是数组对象
    • 多个参数用逗号(,)隔开
    • 返回合并后的新数组,原数组保持不变
  2. join()方法

    将数组中的所有元素放入一个字符串中,并通过指定的分隔符隔开

    arrayObject.join(separator)
    
    • separator,可选,作为元素之间的分割符,默认为逗号(,)
    • 返回 字符串,使用separator分隔符将数组的元素进行连接
  3. push()方法

    向数组的末尾添加一个或多个元素,返回数组的新长度

    arrayObject.push(newElement1,newElement2,...,newElementX)
    
    • newElement参数至少一个
    • 返回数组的新长度
    • 将参数依次追加到数组的尾部,无需创建新的数组
  4. slice()方法

    返回选定的元素

    arrayObject.slice(start,[end])
    
    • start,必须,开始的位置
    • end,可选,结束的位置(不包括end)
    • start,end都允许负数
  5. sort()方法

    数组的排序

    arrayObject.sort([sortby])
    
    • 参数sortby是函数,可选,用于规定排序的方式
    • sortby缺省时,按照字符编码排序
    • 在基础上直接进行排序,不产生新副本
  6. splice()方法

    添加1~n个元素或从数组中删除元素

    arrayObject.splice(index,howmany,[item1,...,itemX])
    
    • index,必需,规定添加或删除元素的位置
    • howmany,必需,要删除元素的数量,0代表不删除
    • 当删除元素时,返回所有被删除的元素数组
    • item1,…,itemX,可选,表示向数组中添加或替换的新元素
    • 在原数组上实现,不会产生副本
二维数组

通过在一维数组中存放另一个数组来模拟实现二维数组

String字符串对象

字符串的创建

方式:

  • 字面量方式
  • new方式
  1. 字面方式

    var name="漫步时尚广场";
    var address="中国 青岛 高新区"
    
  2. new方式

    通过调用String()构造函数来完成,并返回String对象

    var movieName=new String("何以笙箫默");
    var director=String("刘俊杰")
    

    string和String的区别:

    • String是string的包装类

    • string是一种基本的数据类型,没有提供substring()方法

    • String是构造函数,用于创建字符串对象,具有substring()等方法

    • string没有提供prototype原型对象,

      stringString
      类型基本数据类型String是string的包装类
      构造函数,具有substring()等方法
      prototype原型对象没有提供具有原型对象,通过浏览器的端点调试查看
      typeof()函数查看返回stringString对象返回Object,String返回function
      使用==比较时,判断其值是否相等判断是否对同一对象进行引用
      生命周期自动生成的会在代码执行后销毁一直存在
字符串对象的常用方法
方法描述
anchor(name)创建一个锚点元素(具有name或id特征而不是href的<a>标签)
bold()字符串加粗
charAt(index)返回指定位置的字符
fontcolor(color)字符串的颜色
fontsize(size)字符串显示的尺寸,取值为1~7的数字
indexOf(searchValue,[formIndex])返回searchValue在字符串中首次出现的位置
lastindexOf(searchValue,[formIndex])从后往前,返回首次出现的位置
slice(start,[end])抽取从start到end(不包括end)为止的所有字符
substring(start,[stop])抽取start到stop-1处的所有字符
split()把字符串分割成字符串组
sub()如果在<sub>中,把字符串显示为下标
sup()如果在<sup>中,把字符串显示为上标
toLowerCase()转换为小写
toUpperCase()转换为大写
search(regExp)检索字符串中指定的子字符串
replace(regExp/subStr,replacement)替换
match(searchValue/regExp)在字符串内检索指定的值,找到一个或者多个返回
  1. IndexOf()方法

    检索首次出现的位置

    stringObject.indexOf(searchValue,[fromIndex])
    
    • seachValue,被检索的字符串
    • fromIndex,可选,字符串开始检索的位置,默认为0
    • 当检索到子字符串时,返回位置。否则返回-1
    • 字符串的下标是从0开始的
  2. lastIndexOf()方法

    从后往前进行检索,返回首次出现的位置

    stringObject.laseIndexOf(searchValue,[fromIndex])
    
    • searchValue,被检索的字符串
    • fromIndex,可选,字符串开始检索的位置,默认为末尾
    • 找到,返回位置。否则返回-1
  3. slice()方法

    从字符串中抽取一部分内容

    stringObject.slice(start,[end])
    
    • start,必选,起始下标
    • end,可选,结束下标(不包括end)
    • 允许负值
  4. substring()方法

    和slice()相似,从字符串中抽取一部分内容

    stringObject.substring(start,[stop])
    
    • start,必选
    • stop,可选
    • start和stop相等,返回一个空串
    • start比stop大,交换两个参数
    • 不接受参数
  5. split()方法

    把一个字符串分割成一个字符串数组

    stringObject.split(separator,[howmany])
    
    • separator,必选,一个字符串或正则表达式,指定规则对字符串进行分割

    • howmany,可选,指定返回数组的最大个数,

      howmany存在时,返回的子串个数不应该大于howmany

  6. 转义字符

    转义字符实现方法
    双引号\"
    单引号\’
    Tab\t
    退格\b
    换行\n
    回车\r
    反斜杠\\
    换页符\f

Date日期对象

Date对象的创建

通过日期对象(Date)来操作

new Date();
new Date(millisenconds);
new Date(yyyy,MM,dd);
new Date(yyyy,MM,dd,hh,mm,ss);
new Date(MM/dd/yyyy hh:mm:ss);
new Date("month dd,yyyy");
new Date("month dd,yyyy hh:mm:ss");
  • 无参构造函数,返回一个系统当前时间的日期对象
  • millisenconds,毫秒数,在GMT时间加上 此参数 得到一个日期对象
  • yyyy,四位数年份
  • MM,月份,取值为0(1月)到11(12月)
  • dd,日,取值为1到31
  • hh,小时,取值为0到23
  • mm,分钟,取值为0到59
  • ss,秒,取值为0到59
  • month,月份,月份的英文全称或简写,例如Fri,Mar
Date对象的常用方法

提供获取日期设置日期的方法

获取日期的方法描述
getDate()返回一个月中的某一天(1~31)
getDay()返回一周中的某一天(0~6)
getMonth()返回月份(0~11)
getFullYear()返回4位数的月份
getHours()返回Date对象的小时(0~23)
getMinutes()返回Date对象的分钟(0~59)
getSeconds()返回Date对象的描述(0~59)
getTime()返回1970年1月1日至今的毫秒数
设置日期的方法描述
setDate()设置日期(1~31)
setMonth()设置月份(0~11)
setFullYear()设置年份(四位数字)
setHours()设置小时(0~23)
setMinutes()设置分钟(0~59)
setSeconds()设置秒数(0~59)
setTime()以毫秒设置Date对象
  1. setFullYear()方法

    dateObject.setFullYear(year,month,day)
    
    • year,必需,四位整数
    • month,可选
    • day,可选
  2. setHours()方法

    dateObject.setHours(hour,min,sec,millisec)
    
    • hour,必需,取值为0~23
    • min,可选,取值为0~59
    • sec,可选,秒数,取值为0~59
    • millisec,可选,毫秒数,取值为0~999

Math数学对象

提供数学运算中的常数和计算方法。

没有构造函数,直接使用Math对象

Math对象的属性
属性描述
E常量e,自然对数的底数(约为2.718)
LN2返回2的自然对数(约为0.693)
LN10返回10的自然对数(约为2.302)
LOG2E返回以2为底的e的对数(约为1.442)
LOG10E返回以10为底的e的对数(约为0.434)
PI圆周率(约为3.14159)
SORT2返回2的平方根(约为1.414)
SORT1_2返回2的平方根的倒数(约为0.7071)
Math对象的方法
方法描述
abs(x)返回数字的绝对值
ceil(x)上取整(3.1=4)
floor(x)下取整(3.9=3)
round(x)四舍五入
exp(x)返回e的指数
log(x)返回数字的自然对数(底为e)
max(x,y)求最大值
min(x,y)求最小值
pow(x,y)返回x的y次幂
sqrt(x)返回数字的平方根
random()返回0~1之间的随机数
sin(x)/cos(x)/tan(x)正弦,余弦,正切值
asin(x)/acos(x)/atan(x)反正弦,反余弦,反正切值

RegExp正则表达式对象

通过单个字符串来描述,匹配一系列字符串

RegExp对象的创建

创建方式:

  • 直接量方式
  • 构造函数方式
var reg=/pattern/attributes;                 //直接量方式
var regExp=new RegExp(pattern,attributes);   //构造函数方式
  • pattern,一个字符串或表达式

  • attributes,可选的字符串,取值为g,i,m

    修饰符描述
    i匹配忽略大小写
    g全局匹配(匹配到一个不会停止,直到完成所有匹配)
    m多行匹配,^匹配开头,$匹配结尾

pattern部分,包括 元字符,括号表达式,量词

元字符描述
.用于查找单个字符,除了换行和行结束符
\w[A-Za-z0-9_]
\W任何非单词字符,[^A-Za-z0-9_]
\d数字
\D非数字
\s空白字符
\S非空白字符
\n换行符
\r回车符
\xxx查找以八进制数xxx规定的字符
\xdd查找以十六进制数dd规定的字符
括号表达式描述
[abc]查找括号内的任意字符
[^abc]查找除括号内的其他任意字符
[0-9]查找0-9之间的任意数字
[a-z]查找a-z之间的任意字母
[A-Z]查找A-Z之间的任意字母
[A-z]查找A-z之间的任意字符
(boy|girl|baby)查找括号内的某一项
量词描述
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的字符串
var moblieReg=new RegExp("1[3|4|5|8][0-9]{9}");
var telephoneReg=/^((\d{3}-\d{8})|(\d{4}-\d{7}))$/;
  • 1 3,4,5,8 9个0~9的数字
  • 3个数字-8个数字 或 4个数字-7个数字
RegExp对象的方法
方法描述
compile编译正则表达式
exec检索字符串中指定的值。返回找到的值,确定其位置
test检索字符串中指定的值。返回true或false
  1. exec()方法

    检索字符串中的正则表达式的匹配情况,匹配成功,返回匹配内容及其所在的位置

    var result=RegExpObject.exec(string)
    
    • string,必需,被检索的字符串

    • 返回第一个匹配的内容,可以通过循环进行全局匹配

    • result,匹配内容

      result.index,第一个匹配字符出现的位置

  2. test()方法

    检索字符串中的正则表达式的匹配情况,匹配成功返回true,否则false

    RegExpObject.test(string)
    
    • string,必需,被检索的字符串
    • string与正则表达式匹配,返回true
    • 不匹配,返回false
  3. compile()方法

    编译指定的正则表达式,正则表达式被多次调用时,提升执行的速度

String与RegExp

三种方法 String对象把RegExp对象 当做 参数:

  • search(regExp) 检索与正则表达式匹配的子串
  • replace(regExp,replaceText) 替换,正则表达式匹配的内容
  • match(regExp) 检索与正则表达式相匹配的信息

自定义对象

定义对象的方式:

  • 原始方式
  • 构造函数方式
  • 原型方式
  • 混合方式
  • JSON方式
原始方式

步骤:

  • 创建一个Object对象
  • 为对象添加属性和方法
var object=new Object();
object.propertyName=value;
object.methodName=functionName|function(){};  //事先定义的函数名或匿名函数

代码重复度太高

构造函数方式

步骤:

  • 创建构造函数,构造函数名(类名),首字母大写
  • new运算符和构造函数创建一个对象
function ClassName([param1],[param2]...){
	this.propertyName=value;
	...
	this.methodName=functionName|function(){};
	...
}
  • ClassName,类名
  • 格式和普通函数基本一样
  • 分号(;)隔开
  • this,关键字,引用当前对象
原型方式

prototype属性,为对象添加新的属性或方法

object.prototype.name=value;
  • object,被扩展对象
  • prototype,对象的原型
  • name,添加的属性或方法
  • value,属性值
混合方式

步骤:

  • 构造函数方式 创建 属性
  • 原型方式 添加 方法

优势:每个对象创建时都具有独立的属性值,方法所引用的函数只会创建一次

JSON方式

直接创建对象,更简单

{
	propertyName:value,
	methodName:function(){...}
};
  • 之间逗号(,)隔开,最后一项不需要逗号
  • 最后有分号(;)
  • 方法是由 方法名:匿名函数 构成
  1. eval()方式

    字符串转换为JSON对象

    转换时,需要添加一对括号()

  2. Function对象方式

    • 第一个参数,列表,传递参数
    • 第二个参数,函数的执行体
    var movie=(new Function("","return "+movieStr)();
    movie.showInfo();
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值