javascript的小练习,关于基础语法和类型转换

1、 计算2的n次幂,n可输入,n为自然数。

<script>
    var n = prompt("请输入一个自然数");
    function powOf2(val) {
        if (parseInt(val) != val || val < 0){
            alert("抱歉,您输入的不是一个自然数");
            return;
        }
        var result = 1;
        for (var i = 0;i < val;i++){
            result *= 2;
        }
        return result;
    }
    let r = powOf2(n);
    document.write("2的"+n+"次幂运算结果:"+r)
</script>

2、 计算n的阶乘,n可输入。

<script>
    var n = prompt("请输入一个数字");
    function factorial(val) {
        if (parseInt(val) != val){
            alert("抱歉,您输入的不是一个整数");
            return;
        }
        if (val == 0){
            return 0;
        }
        var result = 1;
        var v = Math.abs(val);
        for(var i = 1; i <= v ;i++){
            result *= i;
        }
        return val < 0 ? -result : result;
    }
    var result = factorial(n);
    document.write(n+"的阶乘运算结果:"+result)
</script>

3、 著名的斐波那契数列,1 1 2 3 5 8 输出第n项。

function fibonacci(n) {
    if (isNaN(n) || n<=0){
        return;
    }
    if (n === 1 || n === 2){
        return 1;
    }
    return fibonacci(n - 2) + fibonacci(n - 1);
}
console.log(fibonacci(5));

4、 编写一个程序,输入一个正整数,输出时反向输出。如:输入456,输出654。

function reverseNum(num) {
    if (parseInt(num) != num || num <= 0){
        return;
    }
    var result = 0;
    while (num != 0){
        var minBit = num % 10;
        num = parseInt((num/10).toString());
        result = result*10 + minBit;
    }
    return result;
}
console.log(reverseNum(12345));

5、 输入a,b,c三个数字,打印出最大的。

<script>
    var a = prompt("input for a:")
    var b = prompt("input for b:")
    var c = prompt("input for c:")
    function max(...arr) {
        let max;
        if (arr.length >= 1){
            max = arr[0];
        } else {
            max = null;
        }
        for(var i = 1;i<arr.length;i++){
            if (arr[i] > max){
                max = arr[i];
            }
        }
        return max;
    }
    document.write("最大值为:"+max(a,b,c))
</script>

6、 打印出100以内的质数。

function prime(n) {
    let arr = [];
    for (var i = 2; i <= n; i++) {
        var count = 0;
        for (var j = 1; j <= Math.sqrt(i); j++) {
            if (i % j == 0) count++;
        }
        if (count == 1)
            arr.push(i);
    }
    return arr;
}
console.log(prime(100))

7、运行如下代码:

console.log(typeof(a)) //undefined
console.log(typeof(undefined)) //undefined
console.log(typeof(NaN)) //number
console.log(typeof(null)) //object
var a = "123abc";
console.log(+a) //NaN
console.log(typeof(+a)) //number
console.log(typeof(!!a)) //boolean
console.log(typeof(a + "")) //string
console.log(1 == "1") //true
console.log(NaN == NaN) //false
console.log(NaN == undefined) //false
console.log("11" + 11) //1111
console.log(1 === "1") //false
console.log(parseInt("123abc4")) //123
var num = 123123.3456789;
console.log(num.toFixed(3)) //123123.346
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值