var oil = prompt('请选择你要选择的妹纸类型,1号御姐/2号清纯') - 0;
console.log(typeof sister)
var price;
if (oil == 1) {
var sister = prompt('请选择为您服务的妹子数量') - 0;
if (sister >= 10) {
price = sister * 150;
alert('客官您好,' + oil + '号妹纸很高兴为您服务' + '共有' + sister + '名妹纸陪玩,本次您共消费' + price + '元');
} else if (sister > 0) {
price = sister * 200;
alert('客官您好,' + oil + '号妹纸很高兴为您服务' + '共有' + sister + '名妹纸陪玩,本次您共消费' + price + '元');
} else {
alert('客官儿别闹,请好好输出~');
}
} else if (oil == 2) {
var sister = prompt('请选择为您服务的妹子数量') - 0;
if (sister >= 10) {
price = sister * 200;
alert('客官您好,' + oil + '号妹纸很高兴为您服务' + '共有' + sister + '名妹纸陪玩,本次您共消费' + price + '元');
} else if (sister > 0) {
price = sister * 250;
alert('客官您好,' + oil + '号妹纸很高兴为您服务' + '共有' + sister + '名妹纸陪玩,本次您共消费' + price + '元');
} else {
alert('客官儿别闹,请好好输出~');
}
} else {
alert('客官儿~,请控制好您的情绪好好输入~');
}
var day = prompt("请输入周几,(用1-7)");
if (day == '1') {
alert('周一好好工作。');
} else if (day == '2') {
alert('周二制定工作计划');
} else if (day == '3') {
alert('周三,lol');
} else if (day == '4') {
alert('周四,原神');
} else if (day == '5') {
alert('周五,旅游');
} else if (day == '6') {
alert('周六,干活');
} else {
alert('你说错了');
}
作业二
方法一
var egg = prompt('请输入鸡蛋的数量') - 0;
var box = 0; //定义盒子
if (egg != '') { //判断输入egg不能为空
console.log('鸡蛋数量:' + egg)
if (egg < 20) { //当鸡蛋的数量不满足20个时
box++;
document.write('您一共买了' + egg + '个鸡蛋,共计装' + box + '个盒子。');
} else if (egg % 20 == 0) { //余数为0时
box = egg / 20;
document.write('您一共买了' + egg + '个鸡蛋,共计装' + box + '个盒子。');
} else { // 余数不为0时
box = egg / 20;
boxRound = parseInt(box) //取整
boxRound++
document.write('您一共买了' + egg + '个鸡蛋,共计装' + boxRound + '个盒子。');
}
} else {
alert('别闹!请好好输入');
}
方法二
1.如果鸡蛋数量被20整除则为“商”盒,不被整除的余数<=20为1盒+“商”盒。需要两个参数。
var egg = prompt('请输入鸡蛋数量') - 0, //创建变量,将字符串类型转换为数字类型
//console.log(typeof egg);
num = 1,
result;
if (egg % 20 !== 0) {
result = egg % 20;
if (result <= 20) {
var result = egg / 20;
console.log(parseInt(result))
alert("您一共放入" + (num + parseInt(result)) + '盒!');
}
} else {
var result = egg / 20;
// console.log(result)
alert("您一共放入" + result + '盒!');
}
方法三
var a = prompt('请输入鸡蛋数量');
var b = 20;
var c = a / b;
var d = a % b;
document.write('一共买了' + a + '个鸡蛋' + '需要' + Math.ceil(c) + '盒子')
作业三
var a = prompt('请输入一个三位数');
var b = a % 10; //获取个位数
console.log(b)
//var c = parseInt((a % 100) / 10); //获取十位数
var c = parseInt((a / 10) % 10) //获取十位数
console.log(c)
var d = parseInt(a / 100) //获取百位数
console.log(d)
var sum = b + c + d;
alert('结果:' + sum);
作业四
var year = prompt('请输入年份');
if (year % 4 == 0 && year % 100 !== 0 || year % 400 == 0) {
document.write('您输入' + year + '年份,为闰年~');
} else {
document.write('您输入的' + year + ',该年份不是闰年!');
}
作业五
var a = prompt('请输入小明同学的成绩。') - 0;
b = prompt('请输入小红同学的成绩。') - 0,
c = prompt('请输入小绿同学的成绩。') - 0,
d = prompt('请输入小黑同学的成绩。') - 0,
e = prompt('请输入小翼同学的成绩。') - 0;
if (a > 100 || a < 0 || b > 100 || b < 0 || c > 100 || c < 0 || d > 100 || d < 0 || e > 100 || e < 0) {
// var i = a;
// i = b,
// i = c,
// i = d,
// i = e;
alert('同学作弊');
}
var sum = a + b + c + d + e; //五位同学的成绩和
console.log(sum)
var ave = sum / 5;
console.log('五位同学的平均成绩')
5、 依次输入五个同学的成绩, 求成绩的平均值。
如果成绩输入的值 小于0 或者 大于100, 表示该同学作弊, 该同学成绩为0;
求5位同学的平均成绩
var sum = 0 //定义 总成绩 变量
for (i = 1; i <= 5; i++) {
num = prompt('请输入' + i + '个同学的成绩') - 0;
if (num <= 0 || num > 100) {
num = 0;
console.log('第' + i + '个同学作弊')
}
console.log('第' + i + '同学的成绩:' + num)
sum = sum + num; //sum+=num
}
var avg = sum / 5 // 定义 平均值
console.log('五位同学的总成绩:' + sum)
console.log('五位同学的平均成绩:' + avg)
var a = 10
// 9 10 10 9 9 9 //变化后的值
// 9 9 10 9 +9 9 // 公式
sum = --a + a++ - a + --a + a + a;
console.log(a)
console.log(sum)
求100以内的偶数和,偶数非0 ,0是自然数,既不是偶数也不是奇数,被2整除是偶数。
方法一
var sum = 0 //接受总数,求和。
for (i = 1; i <= 100; i++) {
// console.log(i)
if (i % 2 == 0) {
// console.log(i)
sum = sum + i; // sum+=i
}
}
console.log(sum)
方法二
var sum = 0;
for (i = 2; i <= 100; i += 2) {
// console.log
sum += i;
}
console.log(sum)
对折纸超出珠穆朗玛峰的高度
var paper = 0.0001;
var mountain = 8848;
for (i = 1; i > 0; i++) {
paper = paper * 2;
console.log('对折' + i + '次,指的高度是' + paper + '米')
if (paper > mountain) {
console.log('对折' + i + '次,指的高度是' + paper + '米超过了珠峰');
break;
}
}
模拟计算器,为什么要用swich语句。思路是什么?从哪里开始想?
var num1 = prompt('请输入第一个数字') - 0;
var num2 = prompt('请输入+,——,*,/');
var num3 = prompt('请输入第三个数字') - 0;
var sum = 0; //结果
switch (num2) {
case '+':
sum = num1 + num3;
alert(sum)
break;
case '-':
sum = num1 - num3;
alert(sum)
break;
case '*':
sum = num1 * num3;
alert(sum)
break;
case '/':
sum = num1 / num3;
alert(sum)
break;
default:
alert('输入内容有误')
break;
}
求奇数和
方法一
var sum = 0
for (i = 1; i <= 10; i += 2) {
sum = sum + i
console.log(i)
}
console.log('奇数和:' + sum)
//方法二
var sum = 0;
for (i = 1; i <= 10; i += 1) {
console.log(i)
if (i % 2 != 0) {
sum += i;
}
}
console.log('奇数和:' + sum)
求平均分
var score; //每局的成绩
var avg; //平均分
var sum = 0; //总分
for (i = 0; i <= 3; i++) {
score = prompt('请输入' + i + '局成绩')
// isNaN 判断是不是数字 isNAN('非数字'),结果是true;
if (isNaN(score)) {
i--;
continue;
}
score -= 0;
sum += score;
avg = sum / i;
}
console.log('平均成绩:' + avg)
找出1-1000以内所有能被5整除,或者6整除的数字,控制台输出
for (i = 1; i <= 1000; i++) {
if (i % 5 == 0 || i % 6 == 0) {
console.log(i)
}
}
金字塔
for (i = 70; i >= 10; i -= 10) { //i = i - 10
var str = '<hr style="width:' + i + '%">'
document.write(str)
}
for (i = 10; i <= 70; i += 10) { //i = i + 10
var str = '<hr style="width:' + i + '%">'
document.write(str)
}
while 循环
var i = 1; //先循环起始值
while (i <= 10) { // while(循环条件)
console.log(i) //循环操作
i++; //循环迭代
}
do while 循环特点: 先执行,在判断,至少会执行一次循环操作。
do {
循环操作
循环迭代
}
while (循环条件) {}
var i = 0;
do {
console.log('好好学习第' + i + '次')
i++;
} while (i <= 10);
模拟时钟
for (i = 1; i <= 12; i++) {
console.log('--- ' + i + '时 ---')
//分钟
for (j = 0; j <= 59; j++) {
console.log(i + '时' + j + '分');
}
}
第一种 九九乘法表
for (var i = 1; i <= 9; i++) { // 先写外层循环
// console.log('外层'+i)
for (var j = 1; j <= i; j++) { // 再写内层循环
console.log('内层' + j)
document.write(i + '*' + j + '=' + (i * j) + ' ')
}
document.write('<br>')
}
第二种 九九乘法表
for (var i = 9; i >= 1; i--) {
// console.log('外层' + i)
for (var j = 1; j <= i; j++) {
// console.log('里层' + j)
document.write(i + '*' + j + '=' + i * j + ' ');
}
document.write('<br>')
}
依次输入5名学生的成绩,如果成绩输入为负数,则强制停止输入并给出提示;
for (var i = 1; i <= 3; i++) {
var score = prompt('请输入第' + i + '名同学的考试成绩')
if (score < 0 || isNaN(score)) {
//输入有误直接跳出判断
// alert('输入有误!请重新输入');
// break;
alert('输入有误!请重新输入');
i--
continue;
}
document.write('第' + i + '名同学的成绩:' + score + '<br>')
}
请输入1班,2班,3班的同学成绩
for (j = 1; j <= 3; j++) {
for (var i = 1; i <= 3; i++) {
var score = prompt('请输入第' + j + '班,第' + i + '名同学的考试成绩') - 0
if (score < 0 || isNaN(score)) {
//输入有误直接跳出判断
// alert('输入有误!请重新输入');
// break;
alert('输入有误!请重新输入');
i--
continue;
}
document.write('第' + j + '班,第' + i + '名同学的成绩:' + score + '<br>')
}
}
判断整数是几位数。
var num = prompt('请输入数字') - 0;
for (var i = 1; i > 0; i++) {
num = parseInt(num / 10);
if (num <= 0) {
alert('您输入的数字,是' + i + '位数')
break;
}
}
判断1000以内的质数
外层是被除数, 质数:能被1整除或者可以被自身整除
内层是除数,测试课可以被 被除数整除的数
for (i = 2; i <= 100; i++) {
for (j = 2; j <= i; j++) {
if (i % j == 0) {
break;
}
}
if (i == j) {
document.write('质数是:' + i + '<br>')
}
}
遍历定义:把数组里面所有的值,一次性取出来。
var array = ['峰峰', '彬彬', '贱贱', '龙龙','旭旭','车干','川川','催催'];
console.log(array)
console.log(array[0]) //数组取值是从0开始取值的。
array 方法 找到数组的长度,array.length 长度是从1开始的
for (i = 0; i < array.length; i++) {
console.log('下标' + i + '是:' + array[i]);
}
数组添加数据
var array = [10, 20, 30, 40, 50];
console.log('原始数组:' + array)
// array.push(100) // 数组名.push(值),在数组的后边添加值。
// array.unshift('000') // 数组名.unshift(值),在数组的前边添加值。
array.splice(1, 2) // 数组名(a,b) a是从下标那个位置开始删除的,b是删除了几个。
console.log('改变后的数组:' + array)
遍历 for in 增强型for循环,取得数组的下标
var nums = [10, 20, 30, 40, 50];
for (i in nums) {
console.log(i)
console.log(nums[i])
}
遍历 for of 增强型for循环,取得数组的值
for (i of nums) {
console.log(i)
}
数组去重
var nums = [1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]
console.log('去重前的nums' + nums)
for (var i = 0; i < nums.length; i++) {
for (var j = i + 1; j < nums.length; j++) {
if (nums[i] == nums[j]) {
nums.splice(j, 1);
j--
}
}
}
console.log('去重后的nums:' + nums);
等腰三角形
方法一: body{ text-align:center}
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= 2 * i - 1; j++) {
document.write('*')
}
document.write('<br>')
}
方法二,补齐空格
for (var i = 1; i <= 5; i++) {
for (var k = 1; k <= 5 - i; k++) {
document.write(' ')
}
for (var j = 1; j <= 2 * i - 1; j++) {
document.write('*')
}
document.write('<br>')
}
冒泡排序
var arr = [7, 8, 4, 3, 7, 1, 6, 4, 9];
console.log('原数组' + arr)
for (var i = 0; i <= arr.length; i++) {
for (j = i + 1; j <= arr.length; j++) {
if (arr[i] < arr[j]) {
// var c = arr[j];
// arr[j] = arr[i]
// arr[i] = c
var c = arr[i];
arr[i] = arr[j];
arr[j] = c;
}
}
}
console.log('降序后的排序:' + arr)
sort排序方法
对数组里面全是数字进行比较的时候
数组名.sort(function (a, b) {
return a - b //升序 小→大
return b - a // 降序 大→ 小
})
var arrys = new Array(1, 2, 3)
console.log(arrys)
判断数组中a出现的次数
方法一:
var arr = ['a', 'b', 'd', 'a', 'a', 'c']
var index = 0; //计时器,
for (var i = 0; i <= arr.length; i++) {
console.log(i)
if (arr[i] == 'a') {
index++;
}
}
方法二:
for (var i of arr) {
console.log(i)
if (i == 'a') {
index++;
}
}
方法三:
for (var i in arr) {
console.log(i)
if (arr[i] == 'a') {
index++;
}
}
console.log('a出现的次数:' + index)
给数组去重并排序
var arr = [5, 4, 26, 9, 4, 8, 5, 14];
for (i = 0; i <= arr.length; i++) {
for (j = i + 1; j <= arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
console.log('去重后的数组:' + arr)
arr.sort(function (a, b)
return a - b;
});
console.log('去重后的排序数组:' + arr)
var num = prompt('请输入数字') - 0
for (i = 1; i >= 0; i++) {
num = parseInt(num / 10);
// console.log(num)
if (num <= 0) {
alert('您输入的数字,是' + i + '位数')
break;
}
}
如何获取内置时间对象
时间对象 new Date(); 定义一个类
var dateTime = new Date() //定义了一个内置的时间对象
var year = dateTime.getFullYear(); //获取年
document.write(year + '年' + '<br>')
var month = dateTime.getMonth() + 1 //获取月,因为月份是从0开始的
document.write(month + '月' + '<br>')
var date = dateTime.getDate() //获取日
document.write(date + '日' + '<br>')
var h = dateTime.getHours() //获取小时
h = h > 9 ? h : '0' + h
h = h >= 10 ? h : '0' + h
document.write(h + '时' + '<br>')
var m = dateTime.getMinutes(); //获取分
document.write(m + '分' + '<br>')
var s = dateTime.getSeconds(); //获取分
document.write(s + '秒' + '<br>')
获取星期几
方法一:
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
var day = dateTime.getDay();
document.write(week[day])
方法二
var day = dateTime.getDay();
day = day == 0 ? '日' : day;
document.write('星期' + day)
判断几天后星期几
var date = new Date;
var num = prompt('请输入几天后。') - 0;
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var index = (date.getDay() + num) % 7;
console.log(date.getDay())
console.log(num)
console.log((date.getDay() + num))
console.log((date.getDay() + num) % 7)
document.write(num + '天后' + week[index])
编写时钟
var div_ = document.getElementsByTagName('div')[0];
setInterval(function () {
var dateTime = new Date(); //声明的一个内置时间对象的变量
var year = dateTime.getFullYear(); //年
var month = dateTime.getMonth() + 1; //月
month = month > 9 ? month : '0' + month;
var date = dateTime.getDate(); //日
date = date > 9 ? date : '0' + date;
var h = dateTime.getHours(); //小时
h = h > 9 ? h : '0' + h;
var m = dateTime.getMinutes(); //分钟
m = m > 9 ? m : '0' + m;
var s = dateTime.getSeconds() //秒
s = s > 9 ? s : '0' + s;
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; //取星期几
var day = dateTime.getDay();
day = week[day];
var time = year + '年' + ' ' + month + '月' + date + '日' + ' ' + h + ':' + m + ':' + s +
' ' + day
div_.innerHTML = time;
}, 1000);
查找下标(思路:使用数组来取下标)
var str1 = 'abcdcefcc';
str1 = str1.split(''); //把字符串分割成数组
console.log(str1)
var arr1 = [];
for (var i = 0; i < str1.length; i++) {
console.log(str1[i])
if (str1[i] == 'c') {
arr1.push(i);
}
}
str1 = str1.join(''); //把数组分割成字符串
console.log('字符串:' + str1)
console.log('只包含c数组的下标:' + arr1)
找出包含a与A在数组中的个数
var arr = ['America', 'Greece', 'Britain', 'Canada', 'China', 'Egypt'];
var num = 0 //计时器
console.log(arr.length)
for (var i = 0; i < arr.length; i++) {
if (arr[i].indexOf('a') != -1 || arr[i].indexOf('A') != -1) {
num++
}
}
console.log('包含a与A在数组中的个数:' + num)
数组内容首字母大写
var str = 'border-left-color';
//把字符串转成数组
str = str.split('-')
console.log(str);
for (var i = 0; i < str.length; i++) {
str[i] = str[i].substring(0, 1).toUpperCase() + str[i].substring(1);
}
str = str.join('');
console.log(str)
生成10--100之间的随机数
var arr = [];
for (var i = 0; i < 10; i++) {
var num = Math.round(Math.random() * 100);
//方法一:
// if (num < 10) {
// num = num + 10
// }
// arr.push(num)
//方法二
num = num < 10 ? num + 10 : num;
arr[i] = num;
}
arr.sort(function (a, b) {
return a - b;
});
console.log(arr)
function on() {
var val = document.getElementById('ipt').value;
console.log('你好')
if (val.length == 0) {
alert('用户名不能为空');
} else if (val.length < 6) {
alert('用户名不能超过6位数');
} else {
alert('恭喜你登录成功')
}
}
使用字符串的方法: 把l筛选出来
var str = 'hello';
var str1 = '';
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) == 'l') {
// console.log(str.charAt(i))
str1 = str1.concat(str.charAt(i));
}
}
console.log(str1)
使用数组的方法
var str = 'hello';
var str_arry = str.split('');
// console.log(str_arry)
var arry = [];
for (var i = 0; i < str_arry.length; i++) {
if (str_arry[i] == 'l') {
// console.log(str.charAt(i))
arry.push(str_arry[i]);
}
}
console.log(arry)
var str = '123';
var arr = str.split('');
console.log(arr);
arr.sort(function (a, b) {
return b - a;
})
console.log(arr)
<button onclick = 'fn(prompt('请输入要弹出的次数'>点我 < /button>
function fn(num) {
for (var i = 1; i <= 5; i++) {
document.write(i + '欢迎你')
}
}
JS函数中形参和实参的区别
1.形参就是相当于函数中定义的变量。
2.实参是在运行时的函数调用时传入的参数。
举例:
function fn(a, b) { //这里的a,b称为 形参
console.log(a); //a=1
console.log(b); //b=2
}
fn(1, 2) //这里的1,2称为实参,指用来传递的参数
测试你的性格
function fn(name) {
var num = Math.round(Math.random() * 10);
console.log(num);
if (num <= 3) {
document.write(name + ',出将入相的不二人选!');
} else if (num <= 7) {
document.write(name + ',天降紫微星,贵人在眼前!');
} else {
document.write(name + ',扑通跪倒,吾皇万岁!');
}
}
问题1
function fn(a, b) {
return a + b;
}
fn(3, 5) //为什么没结果 回答只是去到的结果而已,并没有打印,或者没有把值赋值给变量。
console.log(fn(3, 5)) //有结果
var num = fn(3, 5)
console.log(num) //有结果
关于 函数() 的解释。
function fn() {
console.log('11')
return '哈哈哈'
}
console.log(fn) // 不加()是打印的函数本身
console.log('值:' + fn()) //加()会打印:只有在console.log(fn()),才会共同执行console.log+return
fn; //不加 () 调用函数的本身,但不会立马执行
fn() //加(),正确结论,只有fn()只会执行,打印.
错误结论:不论里面是console.log还是return,都会执行,走的整个函数体。
document.write(fn())
function fn1() { //自定义函数
}
function fn2(a, b) { //带参函数
}
fn2(3, 5)
var fn3 = function (a, b) { //通过声明变量来接受函数。再通过调用变量来达到调用函数的目的。
alert(a + b)
}
fn3();
自执行函数的第一种写法。
(function (a) { //形参 //自执行函数,函数声明完之后,需要调用才能够使用。有些时候需要自执行函数,无需调用自己来执行
// //javascript 语句。
document.write(a + '自执行函数');
})(33) //实参
自执行函数的第二方法
(function (b) {
document.write('我是第二种写法:' + b)
}('嘿嘿'));
闭包(保护里面的变量不被污染)
function fn() {
var num = 0;
return function () {
num++;
console.log(num);
undefined
}
}
var fn1 = fn()
fn1() // 1
fn1() //2
对于js函数闭包的理解:
function zs() { // 整个函数体都是闭包。
var sum = '祖母绿宝石戒指'; // 定义的局部变量
return function () { // return 让这个 子函数叛变,并拿到这个函数叛变的 return 的结果。
return sum;
}
}
// console.log(zs) //打印zs整个函数体。
// console.log(zs()) //打印 zs return的函数
var xzs = zs(); //将zs return的函数赋值给一个新的变量 xzs ,这个时候定义了一个匿名函数。
var jz = xzs(); // 拿到xzs return的结果
console.log(jz) // 打印 xzs 将return 的结果赋值给jz的结果
对js函数闭包的释放理解。
function fn() {
var x = 100;
return function () { //匿名函数
console.log(x)
// return x;
}
}
console.log(fn()) //打印fn return的一个结果。
var fn1 = fn(); //声明一个变量,将fn()return的结果赋值给变量 fn1
fn1() // 执行fn1()打印的结果为100;
console.log(fn1()); //执行fn1()打印以及return的结果为100,100;
fn() == null //将该闭包函数进行释放,
fn1()
console.log(fn())
console.log(fn1 = null)