JS的内置对象
2019-06-03
JS的内置对象
Array, Boolean, Date, Math, Number , String,Error, Function, Global , Object, RegExp
在JavaScript中除了null和undefined以外其它的数据类型都被定义成了对象,可以用创建对象的方法定义变量; String、Math、Array、Date、RegExp是JavaScript中常用的对象
数据对象: **Number数据对象; String字符串对象; Boolean布尔值对象 组合对象: Array数组对象; Math数学对象; Date日期对象 高级对象: Object自定义对象;Error错误对象;Function函数对象; RegExp正 则表达式对象;Global全局对象
自动创建对象:调用字符串的对象属性或方法时自动创建对象,用完就丢弃。 如:
1 | var str1="hello world"; |
手工创建对象:采用new创建字符串对象str1,全局有效。 如:
1 | var str1= new String("hello word"); |
1. String 字符串对象:
格式编排:anchor()锚、blink()闪烁、fixed()固定、bold()粗体、italics()斜体、strike()删除线
big()字变大、small()字变小、sub()下标、sup()上标;
- fontcolor(color) 字体颜色
- fontsize(size) 字体大小
- link(url) 超链接 大小写转换
- toLowerCase()返回小写字符串
- toUpperCase()返回大写字符串 获取指定字符:
- charAt(index)返回指定位置字符
- charCodeAt(index)返回指定位置字符Unicode编码 用法:
- str1.bold();//字体变粗;相当于“<b>str1</b>“ str1.anchor(); //把str1标识为锚 子字符串处理: 截取:
- str1.substr(start,length); //返回从索引位置start开始长为length的子字符串
- str1.substring(start,end); //返回start开始end结束的子字符串,不包括最后的一个
- str1.slice(start,end); //同substring,但允许使用负数表示从后计算位置,不包括最后的一个 替换:
- str1.replace(findstr,tostr); //返回替换finstr为tostr之后的字符串 分割:
- str1.split(bystr); //返回由bystr分割成的字符串数组(通常bystr是连接符号,如逗号或横杆) 连接:
- str1.concat(string2); //返回 str1 与 string2 连接后的字符串 查询字符串:
- indexOf(findstr,index); //返回正向的索引位置、lastIndexOf(findstr)返回反向的索引位置
- match(regexp); //返回匹配的字符串、search(regexp)返回找到字符串的首字符索
- str1.indexOf(findstr,index);//查找字符串findstr;从index位置开始的索引,省略index则从0开始找;类似下一句
- str1.lastIndexOf(findstr); //从后面找起;返回findstr在str1中出现的首字符位置下标,没有找到返回-1
- str1.match(regexp); //regexp代表正则表达式或字符串;返回匹配字符串的数组,如果没有匹配则返回null
- str1.search(regexp); //返回匹配字符串的首字符位置下标;作用同indexOf方法,但可写正则表达式
- str1.length; //获取字符串长度;汉字、字母长度均为1;返回大于或等于0的整数
2. Array 数组对象:
1) 创建数组:
1 | var a = new Array(); a[0] = "元素1"; a[1] = "元素2"; |
2) 删除数组: delete 数组名;
3) 数组操作:
- arr.length; //获取数组元素的个数;返回大于或等于0的整数 连接数组: (原数组不变)
- arr.join(bystr); //把数组的各元素由bystr连接起来作为字符串;与字符串的split功能刚好相反
- arr.toString(); //返回由逗号(,)连接数组元素组成的字符串
- document.write(v.toString());
- document.write(v); //这两句效果一样
- arr2 = arr.concat(元素, …); //把元素添加到数组尾端后,返回另一数组;在参数里填入另一数组,返回合并数组 数组排序: (返回排序后的数组;改变原数组)
- arr.reverse(); //按原顺序倒着排序
- arr.sort(); //按字典顺序排序 获取子数组: (返回被删/被截取的元素数组)
- arr.slice(start,end); //从start下标开始,截取到end;返回被截取的元素数组;不改变原数组 //start和end可用负数表倒数(-1代表最后一个元素);end<start时不截取;忽略end,截取start后的所有元素
- arr.splice(start,n,value, …); //从start下标开始删除n个,再插入value(可理解为替换);改变原数组//start为负数时表倒数;n<1表不删除;可忽略value(不插入);可忽略n,表删除后面所有;返回被删元素数组
4) 栈:(数组的基础; 改变原数组)
- arr.pop(); //删最后的一个元素;返回删除的元素
- arr.push(元素, …); //添加元素到最后位置;返回数组长度; 等价于: arr[length] = newValue;
- arr.unshift(元素, …); //添加元素到最前位置(多个参数,则按参数顺序同时插入);返回数组长度
- arr.shift(); //删最前的一个元素;返回被删除的元素
5) toString 和 valueOf
把每一项都调用 toString 方法,然后用半角逗号(,)连接每一项。
1 | var arr = [1,2,3,4,5]; alert(arr); //output:1,2,3,4,5 |
toLocaleString 方法在这里不做详细说明了,他的效果与 toString 方法类似,只是每项调用 toLocateString 方法。
4. Math 数学对象:
数学常数(可直接用)
Math.E (自然数)
- Math.LN2 (ln2)
- Math.LN10 (ln10)
- Math.LOG2E (log 2e)
- Math.LOG10E (log e)
- Math.PI (圆周率)
- Math.SQRT1_2 (根号1/2)
- Math.SQRT2 (根号2)
三角函数:
- Math.sin(x) 计算正弦值; (x在0~2π之间,返回值-1~1)
- Math.cos(x) 计算余弦值; (x在0~2π之间,返回值-1~1)
- Math.tan(x) 计算正切值; (x在0~2π之间,返回正切值)
反三角函数:
- Math.asin(x) 计算反正弦值;(x在 -1与1之间,返回0~2π)
- Math.acos(x) 计算反余弦值;(x在 -1与1之间,返回0~2π)
- Math.atan(x) 计算反正切值;(x可以为任意值,返回 -π/2 ~π/2)
- Math.atan2(y,x) 计算从X轴到一个点的角度;(y,x分别为点的纵坐标和横坐标,返回-π ~π)
计算函数:
- Math.sqrt(x) 计算平方根
- Math.pow(x,y) 计算x^y
- Math.exp(x) 计算e的指数 e^x
- Math.log(x) 计算自然对数 (x为大于0的整数)
数值比较函数:
- Math.abs(x) 计算绝对值
- Math.max(x,y,…) 返回参数中最大的一个
- Math.min(x,y,…) 返回参数中最小的一个
- * Math.random() 返回0~1之间的一个随机数 //若要整数时,如0~99的随机数:
n=parseInt(Math.random()*100);
- Math.round(x) 返回舍入为最接近的整数(四舍五入,负数时五舍六入)
- * Math.floor(x) 返回下舍入整数 (结果不大于x;正数时直接舍去小数,负数时 -1.1==-2
- Math.ceil(x) 返回上舍入整数 (结果大于等于x)
5. Date 时间对象:
创建日期对象:
a.不指定参数时:
1 | var nowd1=new Date(); |
b.参数为日期字符串:
1 | var nowd2=new Date("2008/3/20 11:12"); |
c.参数为毫秒数:
1 | var nowd3=new Date(5000); |
d.参数为年月日小时分钟秒毫秒:
1 | var nowd4=new Date(2008,10,24,11,12,0,300); |
获取和设置日期、时间的方法:
- getDate() setDate(day_of_month) 日期 (1~31)
- getDay() 星期 (1~7; 没set方法)
- getMonth() setMonth (month) 月份 (0~11; 别忘加1)
- getFullYear() setFullYear (year) 完整年份(-271820~275760)
- getYear() setYear(year) 年 (范围同上; 1900年计算为0)
- getHours() setHours (hour) 小时 (0~23)
- getMinutes() setMinutes (minute) 分钟 (0~59)
- getSeconds() setSeconds (second) 秒 (0~59)
- getMilliseconds() setMillliseconds (ms) 毫秒(0-999)
- getTime() setTime (allms) 累计毫秒数(从1970/1/1 00:00:00开始) 注意:set方法对任意整数有效,影响上一级的数;如setDate(-1)设为上个月30号。 但对小数没效。
日期和时间的转换:
- getTimezoneOffset() 返回本地时间与GMT的时间差,以分钟为单位(中国为-480;差8小时)
- toUTCString() 返回国际标准时间字符串(默认)
- toLocalString() 返回本地格式时间字符串
- Date.parse(x) 返回累计毫秒数(从1970/1/1 00:00:00到x的本地时间,忽略秒以下的数字)
- Date.UTC(x) 返回累计毫秒数(从1970/1/1 00:00:00到x的UTC时间) 不明UTC是什么