12、
11、
// 计算时间差,返回相差的天/时/分/秒
//1 两个日期对象如何相减
var d1 = new Date();
var d2 = new Date(2017, 9, 1);
// d2.valueOf() - d1.valueOf()
console.log(d1 - d2); // 4692437476 两个时间相差的毫秒数
//4692437476 相差的总的毫秒值
//相差的天数 = 4692437476 / 1000 / 60 / 60 / 24
//相差的小时数 = 4692437476 / 1000 / 60 / 60 % 24
//相差的分钟数 = 4692437476 / 1000 / 60 % 60
//相差的秒数 = 4692437476 / 1000 % 60
function getInterval(start, end) {
// 两个日期对象,相差的毫秒数
var interval = end - start;
// 求 相差的天数/小时数/分钟数/秒数
var day, hour, minute, second;
// 两个日期对象,相差的秒数
// interval = interval / 1000;
interval /= 1000;
day = Math.round(interval / 60 / 60 / 24);
hour = Math.round(interval / 60 / 60 % 24);
minute = Math.round(interval / 60 % 60);
second = Math.round(interval % 60);
return {
day: day,
hour: hour,
minute: minute,
second: second
}
}
var d1 = new Date();
var d2 = new Date(2017, 9, 1);
var o = getInterval(d2, d1);
console.log(o);
10、
// 写一个函数,格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式
function formatDate(date) {
var year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hour = date.getHours(),
minute = date.getMinutes(),
second = date.getSeconds();
month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day;
hour = hour < 10 ? '0' + hour : hour;
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
//return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
console.log(year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
}
formatDate(new Date());
// var d = new Date();
// var dateStr = formatDate(d);
// console.log(dateStr);
// var d = new Date(2017, 8, 10);
// var dateStr = formatDate(d);
// console.log(dateStr);
9、
var d = new Date();
// 打印日期对象的时候。内部调用了toString()
console.log(d);
console.log(d.toString());
console.log(d.toDateString());
console.log(d.toTimeString());
console.log(d.toLocaleDateString());
console.log(d.toLocaleTimeString());
// 获取日期中的指定部分
var d = new Date();
console.log(d.getFullYear());
// !--------注意:月份是从0开始的-------------
console.log(d.getMonth() + 1);
console.log(d.getDate());
console.log(d.getHours());
console.log(d.getMinutes());
console.log(d.getSeconds());
// 获取当前时间的毫秒值 静态成员
var num = Date.now(); // 浏览器兼容问题 HTML5
console.log(num);
var num2 = new Date(); // 浏览器兼容问题 HTML5
console.log(num2);
// 如何获取日期对象的毫秒值
var d = new Date();
// 获取日期对象的毫秒值 不用我们调用
console.log(d.valueOf());
// 和valueOf的作用是一样的
console.log(d.getTime());
8、// Math对象和Date对象的区别
// Math 不是一个构造函数,里面提供是静态成员
// var MyMath = {
// PI: 3.14,
// max: function () {
// }
// }
// 静态成员
// MyMath.PI
// MyMath.max();
//
// Date 是一个构造函数,首先要通过new Date() 来创建日期实例(对象),实例成员
// var d = new Date();
console.log(d);
// GMT 格林威治时间 世界标准时间
// GMT+0800 (中国标准时间)
//
// 距离1970-1-1相差的毫秒数
console.log(d.valueOf());
7、 静态成员和实例成员
var MyMath = {
PI: 3.1415926,
max: function () {
},
min: function () {
}
}
// 工具中使用静态成员
// 静态成员 : 直接使用对象来调用的
console.log(MyMath.PI);
// MyMath.max()
//
// 当有很多个对象的时候 使用构造函数的形式来创建对象
// 实例成员 : 构造函数中的成员就是实例成员
// 什么是实例:对象的另一种说法
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHi = function () {
console.log("sayHi");
}
}
// 通过构造函数创建对象
var p = new Person('zs', 18);
p.sayHi();
6、
var MyMath = {
max: function () {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
},
min: function () {
var min = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (min > arguments[i]) {
min = arguments[i];
}
}
return min;
}
};
console.log(MyMath.max(10, 1, 100, 20));
console.log(MyMath.min(10, 1, 100, 20));
5、Math.max
var arr = [1,3,2,9,6];
console.log(Math.max(1,3,2,9,6));
console.log(Math.max.apply(null, arr));
4、
//取10-20之间的随机整数
var num1 = 10;
var num2 = 20;
var arry = [];
for(var i=0;i<20;i++){
var suiji = Math.floor((num2-num1+1)*Math.random())+num1;
arry.push(suiji);
}
alert(arry);
3、 // 生成 min 到 max 之间的随机数,parseInt() 函数可解析一个字符串,并返回一个整数。
var min = 10;
var max = 100;
console.log( parseInt(Math.random() * (max - min) + min));
2、// 优化数组排序
var num = 0;
function sort(array) {
for (var i = 0; i < array.length -1; i++) {
var isSort = true;
for (var j = 0; j < array.length -1 - i; j++) { //num = 9
num++;
if (array[j] > array[j+1]) {
isSort = false;
var tem = array[j];
array[j] = array[j+1];
array[j+1] = tem;
}
}
// 判断是否排好了
if (isSort) {
break;
}
}
}
var array = [34, 12, 88, 20, 30];
sort(array);
console.log(array);
console.log(num);
1、数组排序
var num = 0;
function sort(array) {
for (var i = 0; i < array.length; i++) {
console.log(i+"##########");
// for (var j = 0; j < array.length; j++) { num = 20
// for (var j = i; j < array.length; j++) { num = 15
for (var j = array.length-1; j > i; j--) { //num = 10
console.log(array[i]);
console.log(array[j]);
console.log(i+"//");
num++;
if (array[i] > array[j]) {
var tem = array[i];
array[i] = array[j];
array[j] = tem;
}
}
}
}
var array = [34, 12, 88, 20, 30];
sort(array);
console.log(array);
console.log(num);