【原创纯手打】JavaScript逻辑题型看这一篇就够了(持续更新)

用户输入一个数字,然后判断这个数字能否被5、6整除的情况

<body>
  <input type="text" name="" id=""><button>点击</button>
</body>
<script>
  let input = document.querySelector("input")
  let btn = document.querySelector("button")

  btn.onclick = function () {
    let val = parseInt(input.value)
    if (val % 5 == 0 && val % 6 == 0) {
      alert("这个数字能同时被5和6整除")
    } else if (val % 5 == 0) {
      alert("这个数字能被5")
    } else if (val % 6 == 0) {
      alert("这个数字能被6整除")
    } else {
      alert("这个数字不能被5整除,也不能被6整除")
    }
  }
</script>

用户输入一个数字,然后再输入一个数字。然后弹出警告框,我们并不关心他们“都为奇数”、“都为偶数”,只是关心奇偶性一致的情况

    var num = parseInt(prompt("请输入第一个整数")),
        sum = parseInt(prompt("请输入第二个整数"));
    if (num % 2 == 0 && sum % 2 == 0) {
        alert("你好,这两个数字的奇偶性相同");
    } else if (num % 2 != 0 && sum % 2 != 0) {
        alert("你好,这两个数字的奇偶性相同");
    } else {
        alert("你好,这两个数字的奇偶性不同");
    }

用户输入一个年份,判断这个年是否是闰年

<body>
  <div><input type="text" name="" id=""><button>点击</button></div>
</body>
<script>
  let input = document.querySelector("input")
  let button = document.querySelector("button")
  button.onclick = function () {
    let val = parseInt(input.value)
    if (val % 100 == 0) {
      //整百年
      if (val % 400 == 0) {
        alert("是闰年")
      } else {
        alert("不是闰年")
      }
    } else {
      //非整百年
      if (val % 4 == 0) {
        alert("是闰年")
      } else {
        alert("不是闰年")
      }
    }
  }
</script>

某个公司要给员工发年终奖,为了奖励老员工,所以工作时间越长,发的越多,规则如下:

工作满0年  发月薪的1倍月薪年终奖,如果月薪大于8000,那么就是发1.2倍

工作满1年  发月薪的1.5倍月薪年终奖,如果月薪大于10000,那么就是发1.7倍

工作满2年,甚至更多 发月薪的3倍月薪年终奖,如果月薪大于12000,那么就是发3.2倍

用JS编写程序,让用户输入工作了几年,可以输入0,然后输入月薪。然后算年终奖

var num = parseInt(prompt("请输入工作了多少年"))
var sum = parseInt(prompt("请问目前月薪多少"))
if (num == 0 && sum < 8000) {
    alert("你的工资是" + sum)
} else if (num == 0 && sum >= 8000) {
    alert("你的工资是" + (sum * 1.2))
} else if (num == 1 && sum < 10000) {
    alert("你的工资是" + (sum * 1.5))
} else if (num == 1 && sum >= 10000) {
    alert("你的工资是" + (sum * 1.7))
} else if (num == 2 && sum < 12000) {
    alert("你的工资是" + (sum * 3))
} else if (num == 2 && sum >= 12000) {
    alert("你的工资是" + (sum * 3.2))
} else {
    alert("请输入正确的数字")
}

批量检测数据类型

    function checkType() {
      //参数的数量不一定,用arguments全部获取,转换成数组
      var arr = Array.from(arguments)   
      var newArr = []
      arr.forEach(item => {
        //获取类型
        var result = Object.prototype.toString.call(item)
        //截取字符串,添加到数组
        newArr.push(result.slice(8, -1))
      })
      //数组转字符串,用逗号分隔
      return newArr.join(",")

    }
    var result = checkType([], {}, "", 100)
    console.log(result)

如果今天是星期二,那么1000天后是星期几?用户输入一个天数,计算这个天数后是星期几

<body>
  <input type="text" name="" id="">
  <button>点击</button>
</body>
<script>
  var input = document.querySelector("input")
  var button = document.querySelector("button")
  button.onclick = function () {
    var now = 2;      //现在星期二
    var val = parseInt(input.value)
    var remainDay = val % 7       //取余之后剩余的天数
    if (remainDay == 6) {
      now = 1;
    } else {
      now = now + remainDay
    }
    switch (now) {
      case 1:
        alert("星期一")
        break;
      case 2:
        alert("星期二")
        break;
      case 3:
        alert("星期三")
        break;
      case 4:
        alert("星期四")
        break;
      case 5:
        alert("星期五")
        break;
      case 6:
        alert("星期六")
        break;
      default:
        alert("星期日")
    }
  }
</script>

用户输入一个三位数,弹出各个数位的和

<body>
  <input type="text" name="" id="">
  <button>点击</button>
</body>
<script>
  var input = document.querySelector("input")
  var button = document.querySelector("button")
  button.onclick = function () {
    var val = parseInt(input.value)     //用户输入的值
    var result = parseInt(val / 100) + parseInt(val % 100 / 10) + val % 10
    alert(result)
  }
</script>

传递一个参数,判断是什么数据类型,如果是数字则添加后两位小数,如果是字符串则每一个依次排列,如果是数组则转换成字符串,如果数据为空则非空判断

        function fn(box){
            var arr=Object.prototype.toString.call(box)
            if(typeof(box)=="number"){
                return box.toFixed(2)
            }else if(typeof(box)=="string"){
                return Array.from(box)
            }else if(arr.substr(8,5)=="Array"){
                return box.join()
            }else if(box==undefined){
                console.log("数据不能为空");
            }
        }
        fn("asdasdasdasd")
        console.log(fn("asdasdasdasd"));

在控制台输出1~1000之中,所有能被5整除,或者被6整除的数字

    function fun() {
      for (var i = 1; i <= 1000; i++) {
        if (i % 5 == 0 || i % 6 == 0) {
          console.log(i)
        }
      }
    }
    fun()

用户输入一个数字n,计算3/2+4/3+...+n+1/n

    function fun(n) {
      var sum = 0;
      for (var i = 2; i <= n; i++) {
        sum += (i + 1) / i
      }
      return sum;
    }
    console.log(fun(3))

斐波那契数列

    function fun(n) {
      if (n == 1 || n == 2) return 1;
      return fun(n - 1) + fun(n - 2)
    }

    console.log(fun(7))

用递归来实现分数加和运算

    function fun(n) {
      if (n < 2) throw Error("n不能小于2")

      if (n == 2) return 3 / 2
      return (n + 1) / n + fun(n - 1)
    }


    console.log(fun(1))

用户输入一个数字,在控制台中列出它的所有约数

    function fun(n) {
      for (i = 1; i <= n; i++) {
        if (n % i == 0) {
          console.log(i)
        }
      }
    }
    fun(12)

取1000以内的水仙花数

    function fun() {
      for (var i = 100; i < 1000; i++) {
        //分别取百位、十位和个位的数字
        var sum = parseInt(i / 100) ** 3 + parseInt(i / 10 % 10) ** 3 + parseInt(i % 10) ** 3
        if (sum == i) {
          console.log(i)
        }
      }
    }
    fun()

检测完美数:1-10000之间所有的完美数

    for (var i = 1; i <= 10000; i++) {
        var sum = 0;
        for (var j = 1; j < i; j++) {
            if (i % j == 0) {
                sum += j
            }
        }
        if (sum === i) {
            console.log(i)
        }
    }

给到一个数,检测是否是完美数

    function checkNum(n) {
      var sum = 0;
      for (var i = 1; i < n; i++) {
        if (n % i == 0) {
          sum += i
        }
      }
      return sum === n
    }
    var result = checkNum(29)
    console.log(result)

 列出1-10000之间所有的质数

var arr = []
for (var i = 2; i <= 10000; i++) {
    var count = 0;
    for (j = 2; j < i; j++) {
        if (i % j == 0) {
            //是质数
            count++
        }
    }
    if (count == 0) {
        // console.log(i)
        arr.push(i)
    }
}
console.log(arr)

 用户输入一个数字,判断是否是质数

function func(n) {
    var count = 0;
    for (var i = 1; i <= n; i++) {
        if (n % i == 0) {
            //找到因数
            count++
        }
    }
    return count === 2

}


var result = func(16)
console.log(result)

输入三个数,让这三个数以1秒后,3秒后,5秒后的形式出现,一共9秒

        function fn1(n,thod) {
            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve(n)
                }, thod);
            });
        }

        async function on(){
            await fn1(1,1000).then(res=>console.log(res))
            await fn1(3,3000).then(res=>console.log(res))
            await fn1(5,5000).then(res=>console.log(res))
        }
        on()

原创不易,看完点个赞吧~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值