‘壹’ js常用的方法有几种
concat()连接两个或更多的数组,并返回结果。
join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()删除并返回数组的最后一个元素
push()向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()颠倒数组中元素的顺序。
‘贰’ 如何封装常用的JS方法
1、JS封装就是尽量把使用的方式简单化,内部逻辑和使用解耦。通俗的说就是使用的时候只需要知道参数和返回值,其他条件尽量不要使用人员进行设置。
2、JS封装的方法有函数方式、对象的方式、闭包的方式。
举例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1)函数方式
function kk(a,b){
内部对a,b怎么处理就不需要关心了
}
2)对象方式
function kk(a,b){
this.x = a;
this.y = b;
}
var k = new kk(1,2);//通过面向对象的方式
alert(k.x);
3)闭包方式
function kk(a,b){
var k = 1;
return function tt(){
k++;
}
}
var u = kk(1,2);
u();//闭包实现累加
u();//闭包实现累加
‘叁’ JS数组去重的几种常见方法
js 数组去重
1
注:应该也可以适用于 object数组,但是本人没有进行验证,贴出来仅供你参考
第一种是比较常规的方法思路:1.构建一个新的数组存放结果2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比3.若结果数组中没有该元素,则存到结果数组中代码如下:
Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i < this.length; i++){ var repeat = false; for(var j = 0; j < res.length; j++){ if(this[i] == res[j]){ repeat = true; break; } } if(!repeat){ res.push(this[i]); } } return res;}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]alert(arr.unique1());
第二种方法比上面的方法效率要高思路:1.先将原数组进行排序2.检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置3.如果不相同,则将该元素存入结果数组中代码如下:
Array.prototype.unique2 = function(){ this.sort(); //先排序 var res = [this[0]]; for(var i = 1; i < this.length; i++){ if(this[i] !== res[res.length - 1]){ res.push(this[i]); } } return res;}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]alert(arr.unique2());
二种方法也会有一定的局限性,因为在去重前进行了排序,所以最后返回的去重结果也是排序后的。如果要求不改变数组的顺序去重,那这种方法便不可取了。第三种方法(推荐使用)思路:1.创建一个新的数组存放结果2.创建一个空对象3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。代码如下:
Array.prototype.unique3 = function(){ var res = []; var json = {}; for(var i = 0; i < this.length; i++){ if(!json[this[i]]){ res.push(this[i]); json[this[i]] = 1; } } return res;}var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];alert(arr.unique3());
‘肆’ js 字符串操作的方法都有哪些
方法一:使用"+"将两个字符串"相加"
示例:
var longString = "One piece " + "plus one more piece.";
//结果:longString值为:"One piece plus one more piece.";
方法二: 要将多个字符串累积为一个字符串,还可以使用"+="操作符:
示例:
var result = "";
result += "My name is Anders"
result += " and my age is 25";
//结果:result值为"My name is Anders and my age is 25"
方法三:方法concat(),它完成与"+"相同的功能: string.concat(value1, value2, ...)
示例:
var str4="字符串连接";
str4=str4.concat("use concat function connec string");
//结果:"字符串链接use concat function connec string"
‘伍’ js数组几种常见的操作方法
关于js数组的用法有很多,下面主要针对一些简单的操作,比如合并,反转,添加删除等简单的操作总结一下。
关于js数组的用法有很多,下面主要针对一些简单的操作,比如合并,反转,添加删除等简单的操作总结一下。
第一:读取数组 for循环
方法如下:
var ay=[1,"sdsd","sdsd"]
for (var i=0;i<ay.length;i++) {
console.log("index:"+i+" "+ay[i]) //index:0 1 index:1 sdsd index:2 sdsd
}
第二:合并数组 concat
方法如下:
var arr1=['w','e','s'];
var arr2=['e','y','u'];
var arr3=arr1.concat(arr2);
console.log(arr3) //['w','e','s''e','y','u'];
第三:数组变为字符串格式 join
方法如下:
var arr1=['w','e','s'];
var arr4=arr1.join()
console.log(arr4) //w,e,s
第四:删除最后一个元素,针对老数组是删除最后一个,针对新数组是返回最后一个 pop
var arr6=["d","s","t"];
var arr7=arr6.pop();
console.log(arr6) //["d","s"];
console.log(arr7);// t
第五:添加最后一个元素,针对老数组最后一个元素后面添加一个元素,新数组返回元素个数 push
var arr8=["i","u","t"];
var arr9=arr8.push("k");
console.log(arr8); //["i","u","t","k"];
console.log(arr9); // 4
第六:shift() 和pop()一样,不同的是操作的是开头删除的元素shift();具体操作不在展示
第七:unshiift()和push一样,不同的是操作的是开头添加的元素unshift();具体操作不再展示
第八:反转数组 reverse
方法如下:
var arr1=['w','e','s'];
var arr10=arr1.reverse()
console.log(arr10) //['s','e','w'];
第九:数组排序 sort a-b正向 b-a 反向
正向
var arr11=[3,1,5,8,28]
var arr12=arr11.sort(function (a,b) {
return a-b;
})
console.log(arr12) //[1,3,5,8,28];
反向
var arr13=arr11.sort(function (a,b) {
return b-a;
})
console.log(arr13) //[28,8,5,3,1]
第十:数组截取 数组截取的方法主要有slice 和splice,另外说到截取我这里随便也把字符串截取带上,字符串截取的方法主要有substr 和substring
(1)slice 使用方法arr.slice(m,n);其中arr为数组,m,n为两个参数,意思是从已有数组中返回选定的元素,截取位置均为下标,其中m必须,为起始位置,可以为负值,n为结束位置(截取位置并不包含)。
示例如下:
①只有起起始值,并且为正,默认的从起始位置一直到整个数组结束,起始下标从0开始
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(1)
console.log(arr) //[2,3,5,6,8,9] 老数组是没有变化的,下面不在列举,都是一样的
console.log(arr1) //[3,5,6,8,9] 只有起始参数,并且为正值,返回新数组从下标1开始截取
②只有起始值,并且为负,默认的是从起始位置一直到整个数组结束,此处没有起始值,数组的最后一个下标是-1,比如此例,如果从-6开始取,必定是整个数组
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1)
console.log(arr1) //[9] 只有起始参数,并且为负值,从数组尾部截取元素
③有起始值和结束值,并且为正,此处需注意下标是从小到大,比如你(3,1)肯定是取不到值的,另外截取的下标个数并不包含最后一个下标
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(1,4)
console.log(arr1) //[3,5,6] 此时是从下标1开始到下标4,但是需要注意的是并不包含下标4,准确的说是1-3的下标
④有起始值和结束值,并且为负,此处需注意下秒也是从小到大,同理,比如(-1,-6)也是肯定取不到值的,另外截取的下标个数也并不包含最后一个下标
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-6,-1)
console.log(arr1) //[2,3,5,6,8]
⑤有起始值和结束值,并且正负都有
负值到0
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1,0)
//刚刚都看到了,数组下标都是从小到大的,所以说如果正负都有的情况下,理论上应该可以取值的,比如这个例子,-1为9的小标,0为2的下标,所以取值应该为 [9],但是结果并不是这样的
console.log(arr1) //[ ] 从这里可以看出他的结果是为空的,所以从负值到0结果是取不到的
负值到正直
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1,2)
//那从负值到正值呢,同样也是取不到值的
console.log(arr1) //[ ]
正直到负值
var arr=[2,3,5,6,8,9]
var arr1=arr.slice(2,-1)
//那从正直到负值,这个理论上是取不到的,但是看下结果
console.log(arr1) //[ 5,6,8] 从结果可以看出是可以取的 原理是2的下标为5,-1的下标为9,不包含结束位置下标
总结:这个方法看着可能会麻烦些(也可能被我写的麻烦啦),比如正到负等,不知道大家都是怎么操作,我一般用这个取值都是只截取正的,所以这个实际操作还是非常简单的。
(2)splice 像数组中添加或者删除元素
arr.splice(m,n,index,index1,...,indexx)
m是起始位置,n是删除元素的个数,index是要添加的元素,在不添加元素的前提下,只有第一个参数是必须的,后面两个都不是必须的,在需要添加元素的情况下,三个元素都是必须的,此方法和slice是不一样的,这个返回的是被删除的元素
示例如下:
只删除不添加
注意看此例,是(1,2)删除两个,如果是(1,0),则表示删除零个,也就是不删除的意思,如果只有一个参数则表示从这里开始删除,比如是(1)则为[2],当然这个也是可以取负值,但是这个和slice是不一样的,只能起始位置取负值,因为删除的个数不可能为负值,slice可以取(2,-1),这个就截然不同啦,但是刚刚也说啦,slice是不可以起始位置取负值,结束位置取正的,但是这个是可以的,比如(-1,0)则表示从-1开始删除零个,结果为[2,3,5,6,8,9],(-6,2),结果为[5,6,8,9],另外这个删除的第二个值如果写的过大,也只是删除从本下标到最后一个,比如(2,78)为[2,3]
var arr=[2,3,5,6,8,9]
var arr1=arr.splice(1,2)
console.log(arr) // [2,6,8,9] 注意看此处才是我们要的数组,从下标1开始删除删除两个
console.log(arr1) //[3,5] 此处是我们删除掉的数组
删除加添加 具体的和上面的差不多,主要添加了添加元素的效果,这个也可以添加多个元素
var arr=[2,3,5,6,8,9]
var arr1=arr.splice(1,2,"il")
console.log(arr) //[2,"li",6,8,9]
console.log(arr1) //[3,5]
总结:此方法用的时候,一般也都是只取正值
(3)substr 这个是字符串的用法 用法arr.substr(m,n) m必选也可以负值 n选填,注意看这个并不是结束为止而是截取的个数
示例如下:
只有一个参数 默认从此下标开始,取后面所有的
正值
var arr="sdhgfhf"
var arr1=arr.substr(1)
console.log(arr)// "sdhgfhf"这个是不变的,下面不再列举
console.log(arr1)//"dhgfhf" 从下标1开始取后面所有的
负值
var arr="sdhgfhf"
var arr1=arr.substr(-2)
console.log(arr1)//"hf" 从下标-2开始取后面所有的
两个参数,从第一个下标开始,截取到下标2的长度
var arr="sdhgfhf"
var arr1=arr.substr(1,3)
console.log(arr1)//"dhg" 从下标1开始取后面所有的 同理如果为负值,比如(-6,3)则为"hjf";后面的始终为长度
总结:此方法需注意不要和数组的混淆,这个是截取长度的
(4)substring 用法arr.substring(m,n) 两个参数,m必须,起始位置 ,n选填,截取下标的结束位置,此用法和上面slice有点类似,但是需要注意的是此方法是不支持负值的
示例如下:
只有一个参数
var arr="sdhgfhf"
var arr1=arr.substring(1)
console.log(arr1)//"dhgfhf"从下标1开始取后面所有的
两个参数
var arr="sdhgfhf"
var arr1=arr.substring(1,3)
console.log(arr1)// "dh"从下标1开始截取到下标3,但是不包含3
总结:此方法不支持负值,只针对下标来截取的
最后,以上主要是总结的数组的一些简单的操作方法,学无止境,继续努力。
‘陆’ js 方法 书写格式
你说的是这种吧var a=function("形参1","形参2",...,"执行语句");
网络w3cschool
‘柒’ js数组常用方法
1.push方法将单个元素或者另外的数组添加到条用该方法的数组末尾去
2.concat方法就是将两个数组或者元素之间连接起来调用该方法的数组放在前面,方法实参放在后面
3.pop方法删除数组中的最后一个元素且会将这个被删除的元素返回
4.splice 方法删除或插入指定位置的元素函数的原型为splice(index,howmany,element1,.....,elementX...
5.reverse 方法即将数组的顺序反转
‘捌’ 介绍几个js对数据常用的处理方式
获取数据方式 数据获取是指从各种设备获得有关各业务所需的流量、IP、次数、协议等网络传送的原始数据,从而对用户进行管理和计费。一般通过以下三种方式获取数据。 如果目前的IP宽带网络的对用户的接入采用的是以太局域网(LAN)的接入方式,则可
‘玖’ JS自带有几种方法
js的方法可是有一些,想具体了解,可以去下载一本js手册
a
abs 返回数字的绝对值
acos 返回数的反余弦值
anchor 在对象中的指定文本两端放置一个有 NAME 属性 HTML 锚点
apply 应用某一对象的一个方法,用另一个对象替换当前对象
asin 返回数字的反正弦值
atan 返回数字的反正切值
atan2 返回由 X 轴到 ( y , x ) 点的角度(以弧度为单位)
atEnd 返回一个 Boolean 值,指明枚举算子是否位于集合的末尾
b
big 把 HTML <BIG> 标记放置在 String 对象中的文本两端
blink 把 HTML <BLINK> 标记放置在 String 对象中的文本两端
bold 把 HTML <B> 标记放置在 String 对象中的文本两端
c
call 调用一个对象的一个方法,以另一个对象替换当前对象
ceil 返回大于等于其数字参数的最小整数
charAt 返回指定索引位置处的字符
charCodeAt 返回一个整数,代表指定位置上字符的 Unicode 编码
compile 把正则表达式编译为内部格式,从而执行得更快
concat 返回一个新数组,这个新数组是由两个或更多数组组合而成的
concat(String) 返回字符串值,该值包含了两个或更多个提供的字符串的连接
cos 返回数的余弦值
d
decodeURI 返回一个已编码的统一资源标识符 (URI) 的非编码形式
decodeURIComponent 返回统一资源标识符 (URI) 的一个已编码组件的非编码形式
dimensions 返回 VBArray 的维数
e
encodeURI 将文本字符串编码为一个有效的统一资源标识符 (URI)
encodeURIComponent 将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件
escape 对 String 对象编码以便它们能在所有计算机上可读
eval 检查 JScript 代码并执行
exec 用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组
exp 返回 e(自然对数的底)的幂
f
fixed 把HTML<TT>标记放置在 String 对象中的文本两端
floor 返回小于等于其数值参数的最大整数
fontcolor 把带有 COLOR 属性的一个 HTML <FONT> 标记放置在 String 对象中的文本两端
fontsize 把一个带有 SIZE 属性的 HTML <FONT> 标记放置在 String 对象中的文本的两端
fromCharCode 从一些 Unicode 字符值中返回一个字符串
g
getDate 返回 Date 对象中用本地时间表示的一个月中的日期值
getDay 返回 Date 对象中用本地时间表示的一周中的日期值
getFullYear 返回 Date 对象中用本地时间表示的年份值
getHours 返回 Date 对象中用本地时间表示的小时值
getItem 返回指定位置的项
getMilliseconds 返回 Date 对象中用本地时间表示的毫秒值
getMinutes 返回 Date 对象中用本地时间表示的分钟值
getMonth 返回 Date 对象中用本地时间表示的月份值
getSeconds 返回 Date 对象中用本地时间表示的秒钟值
getTime 返回 Date 对象中的时间值
getTimezoneOffset 返回用分钟表示的主计算机上的时间和全球标准时间 (UTC)之间的差别
getUTCDate 返回 Date 对象中用全球标准时间 (UTC)表示的日期
getUTCDay 返回 Date 对象中用全球标准时间 (UTC)表示的一周中的日期值
getUTCFullYear 返回 Date 对象中用全球标准时间 (UTC)表示的年份值
getUTCHours 返回 Date 对象中用全球标准时间 (UTC)表示的小时值
getUTCMilliseconds 返回 Date 对象中用全球标准时间 (UTC)表示的毫秒值
getUTCMinutes 返回 Date 对象中用全球标准时间 (UTC)表示的分钟值
getUTCMonth 返回 Date 对象中用全球标准时间 (UTC)表示的月份值
getUTCSeconds 返回 Date 对象中用全球标准时间 (UTC)表示的秒钟值
getVarDate 返回 Date 对象中的 VT_DATE 值
getYear 返回 Date 对象中的年份值
i
indexOf 返回 String 对象内第一次出现子字符串的字符位置
isFinite 返回一个 Boolean 值,指明所提供的数字是否是有限的
isNaN 返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)
italics 把 HTML <I> 标记放置在 String 对象中的文本两端
item 返回集合中的当前项
j
join 返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开
l
lastIndexOf 返回 String 对象中子字符串最后出现的位置
lbound 返回在 VBArray 的指定维中所使用的最小索引值
link 把一个有 HREF 属性的 HTML 锚点放置在 String 对象中的文本两端
localeCompare 返回一个值,指出在当前的区域设置中两个字符串是否相同
log 返回数字的自然对数
match 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回
max 返回给出的零个或多个数值表达式中较大者
min 返回给出的零个或多个数值表达式中较小者
moveFirst 重新将集合中的当前项设置为第一项
moveNext 将集合中的当前项移动到下一项
p
parse 解析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间所间隔的毫秒数
parseFloat 返回由字符串转换得到的浮点数
parseInt 返回由字符串转换得到的整数
pop 移除数组中的最后一个元素并返回该元素
push 将新元素添加到一个数组中,并返回数组的新长度值
r
random 返回介于 0 和 1 之间的伪随机数
replace 返回根据正则表达式进行文字替换后的字符串 的拷贝
reverse 返回一个元素顺序被反转的 Array 对象
round 返回与给出的数值表达式最接近的整数
s
search 返回与正则表达式查找内容匹配的第一个子字符串的位置
setDate 设置 Date 对象中用本地时间表示的数字日期
setFullYear 设置 Date 对象中用本地时间表示的年份值
setHours 设置 Date 对象中用本地时间表示的小时值
setMilliseconds 设置 Date 对象中用本地时间表示的毫秒值
setMinutes 设置 Date 对象中用 本地时间表示的分钟值
setMonth 设置 Date 对象中用 本地时间表示的月份值
setSeconds 设置 Date 对象中用 本地时间表示的秒钟值
setTime 设置 Date 对象的日期和时间值
setUTCDate 设置 Date 对象中用全球标准时间 (UTC)表示的数值日期
setUTCFullYear 设置 Date 对象中用全球标准时间 (UTC)表示的年份值
setUTCHours 设置 Date 对象中用全球标准时间 (UTC)表示的小时值
setUTCMilliseconds 设置 Date 对象中用全球标准时间 (UTC)表示的毫秒值
setUTCMinutes 设置 Date 对象中用全球标准时间 (UTC)表示的分钟值
setUTCMonth 设置 Date 对象中用 全球标准时间 (UTC)表示的月份值
setUTCSeconds 设置 Date 对象中用全球标准时间 (UTC)表示的秒值
setYear 设置 Date 对象中的年份值
shift 移除数组中的第一个元素并返回该元素
sin 返回数字的正弦值
slice (Array) 返回一个数组的一段
slice (String) 返回字符串的片段
small 将 HTML 的<SMALL> 标识添加到 String 对象中的文本两端
sort 返回一个元素已经进行了排序的 Array 对象
splice 从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素
split 将一个字符串分割为子字符串,然后将结果作为字符串数组返回
sqrt 返回数字的平方根
strike 将 HTML 的<STRIKE> 标识放置到 String 对象中的文本两端
sub 将 HTML 的 <SUB> 标识放置到 String 对象中的文本两端
substr 返回一个从指定位置开始的指定长度的子字符串
substring 返回位于 String 对象中指定位置的子字符串
sup 将 HTML 的<sup> 标识放置到 String 对象中的文本两端
t
tan 返回数字的正切值
test 返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式
toArray 返回一个由 VBArray 转换而来的标准 JScript 数组
toDateString 以字符串值的形式返回一个日期
toExponential 返回一个字符串,其中包含一个以指数记数法表示的数字
toFixed 返回一个字符串,代表一个以定点表示法表示的数字
toGMTString 返回一个日期,该日期用格林威治标准时间 (GMT) 表示并已被转换为字符串
toLocaleDateString 以字符串的形式返回与宿主环境的当前区域设置相对应的日期
toLocaleLowerCase 返回一个字符串,其中所有的字母字符都被转换为小写,同时考虑到宿主环境的当前区域设置
toLocaleString 返回一个日期,该日期使用当前区域设置并已被转换为字符串
toLocaleTimeString 以字符串的形式返回与宿主环境的当前区域设置相对应的时间
toLocaleUpperCase 返回一个字符串,其中所有的字母字符都被转换为大写,同时适应宿主环境的当前区域设置
toLowerCase 返回一个字符串,该字符串中的字母被转换为小写字母
toPrecision 返回一个字符串,其中包含一个以指数记数法或定点记数法表示的,具有指定数字位数的数字
toString 返回对象的字符串表示
toTimeString 以字符串形式返回时间
toUpperCase 返回一个字符串,该字符串中的所有字母都被转化为大写字母
toUTCString 返回一个已被转换为字符串的,用全球标准时间 (UTC)表示的日期
ubound 返回在 VBArray 的指定维中所使用的最大索引值
unescape 解码用 escape 方法进行了编码的 String 对象
unshift 将指定的元素插入数组开始位置并返回该数组
UTC 返回全球标准时间 (UTC) (或 GMT) 的 1970 年 1 月 1 日到所指定日期之间所间隔的毫秒数
valueOf 返回指定对象的原始值
‘拾’ JS对象创建常用方式有哪些
1.对象字面量创建对象
var obj = { a:1,b:2 };
注意:对象字面量是一个表达式,这种表达式每次运算都会创建并初始化一个新对象,并计算这个新对象的每个属性值。所以如果在循环体内使用对象字面量,每次循环时都会创建新对象。
2.通过new运算符创建对象
var obj = new Object(); //创建空对象 var ary = new Array(); //创建空的数组对象
注意:new运算符后面跟的是一个函数调用,这个函数被称为构造函数。js中原始类型都包含内置的构造函数,也可以自己定义构造函数。
3.通过立即执行函数创建对象
var obj = (function(){ return {x:1,y:2};}());
注意:在立即执行函数内部一定要有return语句,return出的内容就是待创建的对象。
4.通过Object.create()创建对象
var obj = Object.create({x:1,y:2});
注意:Object.create()是一个静态函数,传入原型对象就可以创建继承此原型对象的对象,例如上面的例子中obj对象继承了x,y属性。