js内置对象基本概念梳理
标签:
JavaScript
字符串
/*字符串对象属性和方法概述
获取字符串长度Length属性
连接字符串:concat
获取索引值:indexOf()
根据索引值获取单个字符:charAt()*/
var s1="a";
var s2="b";
var s3="c";
console.log(s1.concat(s2,s3));//abc
// 等同于:result = s1 + s2 + ... + s
// 关联记忆:数组中的concat
var arr = [1, 2, 3];
console.log(arr.concat(4, 5));//[1,2,3,4,5]
// ndexof用法:可以传入第二个参数:indexOf(str,fromIndex)
// 表示从索引位置fromIndex开始查找,如果fromIndex省略或为负值,则表示默认从起始索引0开始查找
var myString='javascript';
var b1 = myString.indexOf("v",5);//-1
var b2 = myString.indexOf("v",1);//2
//charAt返回指定索引位置的字符,若索引越界,返回空字符串。
//返回指定索引位置的字符,(因为Javascript中没有字符类型,所以返回的是长度为1的字符串)。
myString="JavaScript";
console.log(myString.charAt(1));//a
console.log(myString.charAt(10000000000000000));//若索引越界,返回空字符串
console.log(myString.charAt(-1));//若索引越界,返回空字符串 -- ""
console.log(myString.charAt(-10000000000000000000000));//若索引越界,返回空字符串
// substr(fromIndex,length)获取部分字符串从起始索引fromIndex开始截取长度length的字符串
//从起始索引fromIndex开始截取长度length的字符串 - 正向截取
myString="JavaScript";
console.log(myString.substr(1,1));//a 表示从第1个索引值开始截取,截取1个字符
console.log(myString.substr(1,2));//av女忧 表示从第1个索引值开始截取,截取2个字符
console.log(myString.substr(1,3));//ava 表示从第1个索引值开始截取,截取3个字符
console.log(myString.substr(1,4));//avaS 表示从第1个索引值开始截取,截取4个字符
//若不指定length或者length超过可截取的最大长度,则截取到结尾。
console.log(myString.substr(1));//avaScript
console.log(myString.substr(1,4000000));//avaScript
//反向截取
//若起始索引为负,则从右往左开始截取 - -1表示倒数第一个, -2表示倒数第二个
myString="JavaScript";
console.log(myString.substr(-1,1));//t 表示从倒数第一个开始截取,截取1个字符
//其他小点:
//如果省略个数,则自动获取后面所有
console.log(myString.substring(4));//Script
//若startIndex或者endIndex为负,则会被替换为0。
console.log(myString.substring(-1,1));//J
//若startIndex = endIndex,则返回空字符串。
console.log(myString.substring(3,3));//返回空
//若startIndex > endIndex,则执行方法时,两个值会被交换。
console.log(myString.substring(3,1));//等价于myString.substring(1,3)
/*slice(startIndex,endIndex)获取部分字符串
截取 起始索引startIndex 到 结束索引endIndex的子字符串,
结果包含startIndex处的字符,不包含endIndex处的字符。*/
myString="JavaScript";
console.log(myString.slice(1,3)) //av
console.log(myString.slice(4,5)) //S
console.log(myString.slice(4)) //Script //如果省略个数,则自动获取后面所有
// 基本用法和substring用法一样,不同点如下:
// stringObj.slice(start, [end])
// 如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。
console.log(myString.slice(-1,3))
// 如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。
console.log(myString.slice(2,-3))
// 如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。
// 如果 end 大于 start,不复制任何元素到新数组中。
// strVariable.substring(start, end)
// 如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
// 子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。
// slice可以对数组操作,substring不行。。。
/*split()分割按给定字符串分割,返回分割后的多个字符串组成的字符串数组。*/
var s="a,bc,d";
console.log(s.split(","));//["a", "bc", "d"]
s="a1b1c1d1";
console.log(s.split("1"));//["a", "b", "c", "d", ""]
/*Join()合并使用您选择的分隔符将一个数组合并为一个字符串*/
var myList=new Array("jpg","bmp","gif","ico","png");
var imgString=myList.join("|");//结果是jpg|bmp|gif|ico|png
//split()还可以结合正则表达式
myString = 'javascript is a good script language';
console.log(myString.split(/\s/)); //javascript,is,a,good,script,language
//传入\s表示要匹配空格,我们将字符串分割为一个数组,如果你要访问某一个,那么可以明确指出:
console.log(myString.split(/\s/)[3]); //good
/*字符串大小写转换使用您选择的分隔符将一个数组合并为一个字符串*/
myString="JavaScript";
myString = myString.toLowerCase();//javascript
console.log(myString)
myString = myString.toUpperCase();//JAVASCRIPT
console.log(myString)
数组
/*
组合记忆 shift unshift pop push
添加和删除
shift unshift 从数组开头开始添加或者删除
pop push 从数组末尾添加或者删除*/
//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var arr1 = [1,2,3,4,5];
var arr2 = [1,2,3,4,5];
var result = arr1.shift(); //arr1 [2,3,4,5] result:1
console.log(result)
//unshift:将参数添加到原数组开头,并返回数组的长度
arr1 = [1,2,3,4,5];
result = arr1.unshift(-2,-1); //arr1:[-2,-1,1,2,3,4,5] result:7
console.log(result)
//pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
arr1= [1,2,3,4,5];
result = arr1.pop(); //a:[1,2,3,4] b:5
console.log(result)
//push:将参数添加到原数组末尾,并返回数组的长度
arr1 = [1,2,3,4,5];
result = arr1.push(6,7); //a:[1,2,3,4,5,6,7] b:7
console.log(result)
//数组合并concat,返回一个新数组,是将参数添加到原数组中构成的
arr1 = [1,2,3,4,5];
result = arr1.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]
console.log(result)
//排序 sort 从小到大 reverse 从大到小
// sort(orderfunction):按指定的参数对数组进行排序
arr1 = [1,2,3,4,5];
result = arr1.sort(); //[1,2,3,4,5]
console.log(result)
// reverse:将数组反序
arr1 = [1,2,3,4,5,8,34];
result = arr1.reverse(); //[34,8,5,4,3,2,1]
console.log(result)
//slice(start,end) 数组截取
//slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组,但不包括结束位置的项
arr1 = [1,2,3,4,5];
result = arr1.slice(2,5); //[3,4,5]
result = arr1.slice(2); //[3,4,5] 在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项;
// join(separator) 数组拼接成字符串
//将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
arr1 = [1,2,3,4,5];
result = arr1.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"
//splice
//splice(start,deleteCount,val1,val2,...):
// 从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
arr1 = [1,2,3,4,5];
result = arr1.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]
result = arr1.splice(0,1); //同shift
arr1.splice(0,0,-2,-1);
result = arr1.length; //同unshift
result = arr1.splice(arr1.length-1,1); //同pop
arr1.splice(arr1.length,0,6,7);
result = arr1.length; //同push
日期
// 获取具体的某个日期或者时间
//获取日期 - 年(1970-????) 月(0-11) 日(0-31) 星期(0-6)
console.log('获取日期')
date = new Date();
console.log(date.getFullYear()) //获取完整的年份(4位,1970-????)
console.log(date.getYear()) //获取当前年份(2位,不准确,已淘汰) 从 ECMAScript v3 开始,JavaScript 的实现就不再使用该方法,而使用 getFullYear() 方法取而代之
console.log(date.getMonth()) //获取当前月份(0-11,0代表1月)
console.log(date.getDate()); //获取几号 - 0 - 31 比如25
console.log(date.getDay()); //获取星期几 - 比如星期3的3
//获取时间 - 小时(0-23) 分(0-59) 秒(0-659) 毫秒值(0-999) 比如:12:23:45 375
console.log('获取时间')
date = new Date();
console.log(date.getHours()) //获取小时 12
console.log(date.getMinutes()); //获取分 23
console.log(date.getSeconds()); //获取秒 45
console.log(date.getMilliseconds()); // 获取毫秒 375
console.log(date.getTime()); // 获取相对于1970-01-01的毫秒值 1443085759313
//设置具体的某个日期或者时间
//setFullYear(year, opt_month, opt_date) :设置Date对象的年份值;4位年份。
//setMonth(month, opt_date) :设置Date对象的月份值。0表示1月,11表示12月。
//setDate(date) :设置Date对象的月份中的日期值;值的范围1~31 。
//setHours(hour, opt_min, opt_sec, opt_msec) :设置Date对象的小时值。
//setMinutes(min, opt_sec, opt_msec) :设置Date对象的分钟值。
//setSeconds(sec, opt_msec) :设置Date对象的秒数值。
//setMilliseconds(msec) :设置Date对象的毫秒值。
//比如根据太阳的衰变动态计算太阳消失的时间
date = new Date();
date.setFullYear(9999); // => 9999年
date.setMonth(11); // => 11:月;实际为12月份(月份从0开始计算)
date.setDate(25); // => 25:日
date.setHours(15); // => 15:时
date.setMinutes(30); // => 30:分
date.setSeconds(40); // => 40:秒
date.setMilliseconds(333); // => 333:毫秒
console.log(date); // => 9999年12月25日 15点30分40秒 333毫秒
Math及综合
function addSpace(str){
return str.split('').join('*');
};
var str = 'hello world'
console.log(addSpace(str));
// math容器中的功能 -- 四舍五入
var a=12.52;
b=10.35;
c=Math.round(a);
d=Math.round(b);
document.write(c+' '+d)
// 使用substring改造
function combo2(msg){
var arr=msg.split("-");
for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1,arr[i].length);
}
return arr.join("");
}
str='get-element-by-id'
console.log(combo2(str))
//思路:先将字符串转换为数组 split(),利用数组的反序函数 reverse()颠倒数组,再利用 jion() 转换为字符串
function strReverse(str){
return str.split('').reverse().join('');
}
var str = '12345678';
console.log(strReverse(str))
点击查看更多内容
43人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦