1)Math方法
Math.abs();//绝对值
Math.floor();//向下舍入
Math.ceil();//向上舍入
Math.round();//四舍五入
// 负数的四舍五入,一般都是转换为正数处理
var max=Math.max(3,5,7,9,10);//求最大值 10
var min=Math.min(3,5,7,9,10);//求最小值 3
console.log(max,min);//10 3
// 求数组元素的最大值和最小值
var arr=[3,6,9,1,5,4];
var max=Math.max.apply(null,arr);
var min=Math.min.apply(null,arr);
console.log(max); //9
x数的y次幂 Math.pow(x,y);
// 两点距离公式
function getDistance(point1,point2){
return Math.sqrt(Math.pow(point2.x-point1.x,2)+Math.pow(point2.y-point1.y,2));
}
var point1={x:100,y:100};
var point2={x:200,y:200};
var v=getDistance(point1,point2);
console.log(v);
2)string字符方法
// 这个字符串是存在栈中的
var str="abcdef";
// 这个字符串是存在堆中,构造函数创建的一般都是对象,字符型对象
// var str1=new String("abcdef");
str[1]="z";
console.log(str[1]);
下标的写法,我们可以获取字符串中第几位的字符,但是不能修改设置
length 字符的长度,就是字符串有多少字符组成,字符串的长度无法修改
length不可以修改
charAt(下标);
charCodeAt(下标); 将字符转为Unicode编码
String.fromCharCode(46) 将编码转换为字符串
concat 连接字符串 和连接数组一样的用法
indexOf
lastIndexOf 和数组中indexOf相同查找字符所在下标
search
match 查找 用于正则表达式
replace 替换 类似于数组中的splice();
》 数组的splice是修改原数组的内容
》但是replace不修改原字符的内容,会返回一个被修改后的新字符串
》如果出现两个相同的元素,那么只修改第一次被查找到的元素
slice(从下标几开始,到下标几之前结束) 截取复制字符串 允许有负值,负值表示从后向前
substring 和slice相似 不允许负数,所有的负值指0之前,因此负数都是0
substr(从下标几开始,截取长度);
split(分隔符) 将字符串以分隔符进行分割转换为数组
reverse();数组元素倒序或者反转
toLowerCase转为小写
toUpperCase转为大写
常用字符Unicode编码
// 0 48
// 9 57
// a 97
// z 122
// A 65
// Z 90
// 验证码 防止高并发
function getSecurityCode(){
var arr=[];
for(var i=48;i<123;i++){
if(i>57 && i<65){
i=64;
continue; } if(i>90 && i<97){ i=96; continue; } arr.push(String.fromCharCode(i)); } arr.sort(function(){ return Math.random()-0.5; }); arr.length=4; return arr.join(""); } var str=getSecurityCode(); console.log(str);
处理引用地址
function getURLObj(url) {
// url.split("?") 就可以将url以?分为数组的两个元素
// [1] 将刚才分割的数组的最后一项获取,获取的内容就是?后面的字符串
// .split("&") 将?后面的字符串用&符切割为数组
// reduce是返回一个值 在reduce的第二个参数中给入{},表示给初始值是一个空对象
// value就是刚才给入的初始值对象
console.log(url.split("?")[1].split("&"));
return url
.split("?")[1]
.split("&")
.reduce(function(value, item) { // value就是刚开始空对象 // item就是切好的数组每个元素,例如"fd=t"; // 用=切割为数组 // 给value对象增加属性为=的左边的字符,值为=右边的内容 // value["fd"]="t"; var arr = item.split("="); value[arr[0]] = arr[1]; // 返回这个对象,用于下一次的的添加属性 return value; }, {}); } var o = getURLObj(str); console.log(o);
3)日期对象
创建日期对象
var date=new Date();
date.getFullYear();获取年份
date.getYear();
date.getMonth()+1;获取月份 从0开始
date.getDate();获取日期
date.getDay();获取星期 从0开始 0就是星期日 1是星期1
date.getHours();获取小时
date.getMinutes();获取分钟
date.getSeconds();获取秒钟
date.getMilliseconds();获取毫秒
date.toLocaleString();转换为本地设置格式时间字符串
date.toUTCString();转换为格林尼治时间字符串
date.getTime();毫秒数,1970.1.1 0:0:0 到现在的毫秒数
倒计时
var targetTime,times,ids;
init();
function init(){
times=document.getElementById("times");
var date=new Date();
// 设置时间3小时后
date.setHours(date.getHours()+3);
// 获取这个时间的毫秒数,未来的时间戳,这个时间到1970.1.1的毫秒数
targetTime=date.getTime(); // 每16毫秒执行下面的函数 ids=setInterval(enterFrame,16); } function enterFrame(){ // 每间隔16毫秒执行这个函数 // 重新获取当前的时间 var date=new Date(); // 重新获取当前时间戳 现在到1970.1.1的毫秒数 var time=date.getTime(); // console.log(targetTime-time);//10795679 毫秒 // 用未来到1970.1.1的毫秒数-现在到1970.1.1的毫秒数,这个就是现在到未来的时间差毫秒数 // 这是毫秒变成秒数,就要/1000,做四舍五入,进到秒 time=Math.round((targetTime-time)/1000); // 10796 秒 1小时3600秒 // 1小时是3600秒 除3600向下取整就是小时数 var hours=Math.floor(time/3600); // 1小时3600毫秒,除3600取余数,就是除了小时之外的所有秒数,除60是分钟 var minutes=Math.floor((time%3600)/60); // 用当前秒-小时所用的秒-分所用的秒,就是剩余的秒数 var seconds=time-hours*3600-minutes*60; times.innerHTML=(hours<10 ? "0"+hours : hours)+":"+ (minutes<10 ? "0"+minutes : minutes)+":"+ (seconds<10 ? "0"+seconds : seconds); if(hours+minutes+seconds===0){ clearInterval(ids); } }