一.Math对象
console.log(Math.max(1,3,5)); //输出结果为5
//利用Math得到1-10之间的随机整数,包含1和10function getRadom(min,max){return Math.floor(Math.random()*(max-min+1))+min;}console.log(getRadom(1,10));
//封装数学对象,PI、最大值和最小值var myMath = {PI:3.1415926,max:function(){var max = arguments[0];for(var i = 1; i<arguments.length; i++){if(arguments[i]>max){max = arguments[i];}}return max;},min:function(){var min = arguments[0];for(var i = 1; i<arguments.length; i++){if(arguments[i]<min){min = arguments[i];}}return min;}}console.log(myMath.PI);console.log(myMath.max(1,5,9));console.log(myMath.min(10,50,90));
//1-10猜数字游戏function getRadom(min,max){return Math.floor(Math.random()*(max-min+1))+min;}var random = getRadom(1,10);var c = 10;//次数for(i=9;i>=0;i--){var num = prompt('请输入1-10之间的数字');c = c-1;if(num > random){alert('数字大了,您还有'+i+'次机会');}else if(num<random){alert('数字小了,您还有'+i+'次机会');}else{var b = 10 - i;alert('您猜对了,用了'+b+'次机会');break;}}
二.Date对象
Date()是一个构造函数,必须使用new来创建调用
var date = new Date();console.log(date);
// 格式化年月日var date = new Date();var year = date.getFullYear();var month = date.getMonth()+1;var dates = date.getDate();var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];var day = date.getDay();console.log('今天是:'+ year + '年'+ month + '月' + dates + '日' + arr[day]);
//封装函数返回当前的时分秒function getTimer(){var time = new Date();var h = time.getHours();var m = time.getMinutes();var s = time.getSeconds();h = h < 10? '0'+h : h;m = m < 10? '0'+m : m;s = s < 10? '0'+s : s;return h + ':' + m + ':' + s;}console.log(getTimer());
// 封装倒计时函数function countDown(time){var nowTime = +new Date();var inputTime = +new Date(time);var times = (inputTime - nowTime)/1000;//剩余时间毫秒数var d = parseInt(times/60/60/24);//天数d = d<10? '0'+d : d;var h = parseInt(times/60/60%24);//小时h = h<10? '0'+h : h;var m = parseInt(times/60%60);//分m = m<10? '0'+m : m;var s = parseInt(times%60);//秒s = s<10? '0'+s : s;return d + '天' + h + '时' + m + '分' + s + '秒';}console.log(countDown('2020-5-1 18:00:00'));
// 时间戳转日期function timesToDate(timesStamp) {var date = new Date(timesStamp * 1000); //时间戳10位需要*1000,时间戳位13位不需要*1000var y = date.getFullYear()var mon = date.getMonth() + 1var d = date.getDate()var h = date.getHours()var m = date.getMinutes()var s = date.getSeconds()h = h < 10? '0' + h : hm = m < 10? '0' + m : ms = s < 10? '0' + s : sreturn y + '-' + mon + '-' + d + ' ' + h + ':' + m + ':' + s}
三.数组对象
A 运算符:intanceof**
var arr= [1,2,3];console.log(arr intanceof Array);//返回结果为true,证明arr是一个数组
B 方法:Array.isArray() 它为H5新增的方法,只有IE9以上版本的浏览器支持
var arr = [4,5,6];console.log(Array.isArray(arr));//返回结果为true,arr为数组
2.添加数组元素的方法
A 在数组末尾添加新的元素:push()
var arr = ['A','B','C'];cosole.log(arr.push(4));
// 利用push(),把数组中大于2000的删除,其余保存到新数组中var arr = [1500,1200,2000,2100,1800];var newArr = [];for(var i=0; i<arr.length; i++){if(arr[i]<2000){newArr.push(arr[i]);}}console.log(newArr);
B 在数组开头添加新的元素:unshift()
var arr = ['red','green','blue'];cosole.log(arr.unshift('purple'));
3.删除数组元素
A 删除数组最后一个元素 pop()
var arr = ['张三','李四','王五'];cosole.log(arr.pop());
B 删除数组第一个元素 shift()
var arr = ['昨天','今天','明天'];cosole.log(arr.shift());
4.翻转数组和数组冒泡排序
A 翻转数组 reverse()
var arr = ['red','blue','green'];arr.reverse();console.log(arr);
B 冒泡排序 sort()
var arr = [13,4,77,1,7];arr.sort(function(a,b){return a - b;//按升序排列,降序为b-a});console.log(arr);
5.获取数组元素索引
A indexOf() PS:如果该数组里面找不到元素,则返回的是-1
var arr = ['red','blue','green'];console.log(arr.indexOf('blue'));
B lastIndexOf 从数组最末尾开始查找,其余与indexOf()相同
// 数组去重函数function unique(arr){var newArr = [];for(var i=0; i<arr.length; i++){if(newArr.indexOf(arr[i]) === -1){newArr.push(arr[i]);}}return newArr;}var demo = unique(['c','a','z','a','x','a','x','c','b']);console.log(demo);
6.数组转换为字符串
01 toSting()
var arr = ['1','2','3'];console.log(arr.toString());
02 join() 可以使用任意分隔符
var arr = ['green','blue','red'];console.log(arr.join('-'));
四.字符串对象
1.基本包装类:把简单数据类型包装成为了复杂数据类型,这样简单数据类型就有了属性和方法。
var str = 'andy';console.log(str.length);
2.根据字符返回位置indexOf(‘要查找的字符’,起始位置)
var str = '肖申克的救赎,真的好看';console.log(str.indexOf('的',0));//从索引值为0的位置开始查找,返回值为3
// 求下列字符串中o出现的位置及次数var str = 'abcoefoxyozzopp';var index = str.indexOf('o');var num = 0;while(index != -1){console.log(index);num++;index = str.indexOf('o',index+1);}console.log('o出现的次数为' + num);
3.根据位置返回字符
A charAt(index) 根据位置返回字符
var str = 'adny';console.log(str.charAt(3));
B str[index] H5新增方法,与chartAt作用相同。但只支持IE8以上版本的浏览器
// 统计出现最多的字符和次数var str = 'abcoefoxyozzopp';var o = {};for(var i=0; i<str.length; i++){var chars = str.charAt(i);if(o[chars]){o[chars]++;}else{o[chars] = 1;}}console.log(o);// 遍历对象var max = 0;var ch = '';for(var k in o){if(o[k]>max){max = o[k];ch = k;}}console.log(max);console.log('最多的字符是' + ch)
4.拼接和截取字符串
A 拼接字符串:concat()
var str = 'hello';console.log(str.concat('world'));//helloworld
B 截取字符串:substr(‘截取的起始位置’,’截取几个字符’)
var str = '我和我的祖国';console.log(str.substr(2,2));
5.替换字符和字符转换数组
A 替换字符:replace(‘被替换字符’,’替换的字符’)
//将下列字符串中的o替换为*var str = 'abcoefoxyozzopp';while(str.indexOf('o') !== -1){str = str.replace('o','*');}console.log(str);
B 字符转换数组
var str = 'red,blue,green';console.log(str.split(','));
