//猜数字游戏 //1.随机生成一个1-10的整数,我们需要用到Math.random()方法 //2.需要一直菜刀正确为止,所以要一直循环 //3.while循环更简单 //4.核心算法:使用if else if 多分支语句来判断大于雄安与等于 functiongetRandom(min,max) { returnMath.floor(Math.random() * (max - min + 1)) + min; } var random = getRandom(1,10); while (true) { //死循环 var num = prompt('你来猜?请输入1-10之间的一个数字'); if(num > random) { alert('你猜大了'); } elseif(num < random) { alert('你猜小了'); } else { alert('猜对了'); break; // 退出整个循环结束程序 } }
Data对象
Date 对象和 Math 对象不一样,Date是一个构造函数,所以使用时需要实例化后才能使用其中具体方法和属性。Date 实例用来处理日期和时间
使用Date实例化日期对象
获取当前时间必须实例化
获取指定时间的日期对象
1 2 3 4 5 6 7 8 9 10 11 12 13
// Data() 日期对象,是一个构造函数,必须使用new来调用创建我们的日期对象 var arr = newArray(); // 创建一个数组对象 var obj = newObject(); // 创建一个对象实例
// 1.使用Data 如果没有参数,返回系统当前时间 var data = new Data(); console.log(data);
// 2.参数常用的写法,数字型 2022,06,11 或者是字符串型 '2022-06-11 00:00:00' var data1 = new Data(2022,06,11); console.log(data1); //返回的是7月,不是6月 var data2 = new Data('2022-06-11 00:00:00'); console.log(data2);
日期格式化
获取日期的指定部分,通过日期对象里面的属性和方法手动得到这种格式
使用Date实例的方法和属性
getMonth()方法获取到的月份 + 1 = 当月
格式化日期
1 2 3 4 5 6 7 8 9 10 11 12 13 14
//日期格式化 // 格式化日期 年 月 日 var date = newDate(); console.log(date.getFullYear()); //返回当前日期的年 2022 console.log(date.getMonth() + 1); //月份 返回的月份小1个月,记得月份加1呦 console.log(date.getDate()); //返回的是 几号 console.log(date.getDay); //周一返回的是1 周六返回的是6 周日返回的是0 //我们写一个 2022年 6月 11日 星期六(当前日期) 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]);
//格式化日期 时分秒 var date = newDate(); console.log(date.getHours()); //时 console.log(date.getMinutes()); //分 console.log(date.getSeconds()); // 秒
//封装一个函数返回当前的 时 分 秒 格式 08:08:08 functiongetTimer() { var time = newDate(); var h = time.getHours(); var h = h < 10 ? "0" + h : h;
var m = time.getMinutes(); var m = m < 10 ? "0" + m : m;
var s = time.getSeconds(); var s = s < 10 ? "0" + s : s; return h + ":" + h + ":" + s; } console.log(getTimer());
时间戳
获取Date日期总的毫秒数(时间戳) 基于1970年1月1日(世界标准世界)起的毫秒数
1 2 3 4 5 6 7 8 9
// 实例化Date对象 var now = newDate(); // 1. 通过 value() getTime() console.log(now.valueOf()); console.log(now.getTime()); // 2. 简单写可以这么做 (最常用的) var now = + newDate(); // 3. HTML5中提供的方法,有兼容性问题 var now = Date.now();
// 倒计时案例 // 1. 核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但不能拿时分秒相减。 // 2.用时间戳来做,用户输入时间总的毫秒数减去现在时间的总的毫秒数, // 得到的就是剩余时间的毫秒数 // 3.把剩余时间总的毫秒数转换为天、时、分、秒 (时间戳转换时分秒) // 转换公式如下: // d = parseInt(总秒数/60/60/24) // 计算天数 // h = parseInt(总秒数/60/60%24) // 计算小时 // m = parseInt(总秒数/60%60); // 计算分钟 // s = parseInt(总秒数%60); // 计算当前秒数
// 倒计时案例 封装函数实现 functioncountDown(time) { var nowTime = +newDate(); // 返回的是当前时间总的毫秒数 var inputTime = +newDate(time); // 返回的是用户输入时间总的毫秒数 var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 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("2022-10-1 18:00:00")); var date = newDate(); console.log(date);
//核心算法:先查找第一个o出现的位置 //然后 只要indexOf 返回的结果不是 -1 就继续往后查找 //因为indexOf 只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查找 var str = "oabcoefoxyozzopp"; 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);
「根据位置返回字符」
字符串通过基本包装类型可以调用部分方法来操作字符串,以下是根据位置返回指定位置上的字符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// 根据位置返回字符 // 1. charAt(index) 根据位置返回字符 var str = 'andy'; console.log(str.charAt(3)); // y // 遍历所有的字符 for (var i = 0; i < str.length; i++) { console.log(str.charAt(i)); } // a n d y