首页 > temp > JavaScript教程 >
-
js内置对象的常用属性和方法(Array | String | Date | Math)(2)
indexOf(value, start) 检测数据在数组中第一次出现的位置
如果有start值,则检测位置从start处开始
lastIndexOf(value) 检测数据在数组中最后一次出现的位置
不存在则为-1
兼容性:IE9+
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var arr=['a', 'b', 'c', 'd', 'a', 'b', 'c']; var pos=arr.indexOf('c'); console.log(pos);//2 var pos=arr.lastIndexOf('c'); console.log(pos);//6 var pos=arr.indexOf('m'); console.log(pos);//-1 // 自己封装兼容IE9以下版本的indexOf function ArrIndexOf(arr, value){ for(var i=0;i<arr.length;i++){ if(arr[i]===value){ return i; } } return -1; } var pos=ArrIndexOf(arr, 'c'); console.log(pos);//2 </script> </body> </html>
str.charAt(index) 返回str字符串中index位置的字符
str.charCodeAt(index) 返回str字符串中index位置的字符的字符编码
str[index] 兼容性IE7+
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var str='hello cyy~'; console.log(str[3]);//l console.log(str.charAt(3));//l console.log(str.charCodeAt(3));//108 </script> </body> </html>
str.indexOf(value)
str.lastIndexOf(value)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var str='hello cyy~'; console.log(str.indexOf('l'));//2 console.log(str.indexOf('llo'));//2 console.log(str.lastIndexOf('l'));//3 </script> </body> </html>
字符串截取
str.slice(start, end)
没有end则默认截取到最后
包含左边不包含右边
如果为负数,则转换为长度+该负数
str.substring(start, end)
与slice基本一致
如果有负数,则自动转换为0
如果前面的数字小于后面的数字,会默认将顺序对换
str.substr(start, len)
截取len为0或者负数时,返回为空
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var str='hello cyy~'; console.log(str.slice(2,5));//llo console.log(str.slice(2));//llo cyy~ console.log(str.slice(-7,5));//lo console.log(str.substring(2,5));//llo console.log(str.substring(2));//llo cyy~ console.log(str.substring(-7,5));//hello console.log(str.substring(5,2));//llo console.log(str.substr(2,5));//llo c console.log(str.substr(2));//llo cyy~ console.log(str.substr(-7,5));//lo cy </script> </body> </html>
获取扩展名
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var file="cyy.com.jpg"; function getExtension(filename){ var pos=filename.lastIndexOf("."); return filename.substr(pos); } console.log(getExtension(file));//.jpg </script> </body> </html>
str.split(" ") 字符串转数组
str.replace("", "") 字符串替换
replace() 不会改变原字符串
并且replace()只替换第一个,不是全局替换
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var str="cyy.com.jpg"; var arr=str.split("."); console.log(arr);//(3) ["cyy", "com", "jpg"] var arr2=str.split(""); console.log(arr2);//(11) ["c", "y", "y", ".", "c", "o", "m", ".", "j", "p", "g"] var newStr=str.replace(".","-"); console.log(str);//cyy.com.jpg console.log(newStr);//cyy-com.jpg </script> </body> </html>
str.toUpperCase() 字符串转大写
str.toLowerCase() 字符串转小写
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var str="cyy"; console.log(str.toUpperCase());//CYY var str2="CYY"; console.log(str2.toLowerCase());//cyy </script> </body> </html>
连字符转驼峰
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> // 方法一 function toCamel(str){ var arr=str.split("-"); var len=arr.length; for(var i=1;i<len;i++){ var word=arr[i]; word=word.charAt(0).toUpperCase()+word.substr(1); arr[i]=word; } return arr.join(""); } console.log(toCamel("border-left-color"));//borderLeftColor console.log(toCamel("margin-top"));//marginTop // 方法二 function toCamel2(str){ var arr=str.split("-"); var len=arr.length; var newStr=arr[0]; for(var i=1;i<len;i++){ var word=arr[i]; word=word.charAt(0).toUpperCase()+word.substr(1); newStr+=word; } return newStr; } console.log(toCamel2("border-left-color"));//borderLeftColor console.log(toCamel2("margin-top"));//marginTop </script> </body> </html>
Math对象
Math.min() 最小值,如果出现非数字,则返回NaN
Math.max() 最大值,如果出现非数字,则返回NaN
Math.floor() 舍去
Math.ceil() 进一
Math.round() 四舍五入
Math.abs() 绝对值
Math.random() 随机数
Math.random()方法,返回的是一个大于等于0并且小于1的随机数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> //Math.random()生成一个0-1之间的随机数(如0.1~0.9),包含0不包含1 //指定生成2-5之间的随机整数 //可能是2,3,4,5 //生成随机整数的个数=5-2+1=4 //最小值=0.1*个数+2=2.4 //最大值=9.9*个数+2=5.6 //获取n-m之间的随机整数 function getRandom(n,m){ var len=m-n+1; var num=Math.floor(Math.random()*