js入门练手dom+基本逻辑(持续更新)

275 阅读2分钟

1、判断输入内容正确返回登录逻辑

    <script>
        //定义变量存储用户名
        var userName = prompt("请输入用户名");
        //定义变量存储密码
        var passWord = prompt("请输入密码");
        //补全while循环,要求:
        //用户名为”admin“,密码为”123456“,则提示用户登录成功!否则,让用户一直输入
        while (!(userName==='admin'&&passWord==='123456')) {
            var userName = prompt("请输入用户名");
            var passWord = prompt("请输入密码");
        }
        alert("用户登录成功!");
    </script>

2、求100以内个位数不为3的倍数和

 <script>
        //定义变量存放最后的累加值
        var result = 0;
        for (var i = 1; i < 100; i++) {
            //个位数为3的数即与10取余(取模)等于3,注意使用continue
            if(i%10===3){
                continue
            }
            result += i;
        }
        console.log(result);//结果4470
    </script>

3、看图输出

       for (var i = 1; i <= 10; i++) {
            if (i == 5) continue;
            if (i == 8) break;
            console.log(i);//1,2,3,4,5,6,7
        }
    </script>

4、换行输出星星

 <script>
        //定义最后要输出的★的字符串
        var str = '';
        //利用for循环嵌套完成题目要求,提示:内层循环j<=i
        for (var i = 1; i <= 5; i++) {
            for(var j =1;j<=i;j++){
                str += '★'               
            }
            str +='\n'
        }
        //输出
        console.log(str);
    </script>

5、9*9乘法表

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        //定义最后输出九九乘法表的字符串
        var str = '';
        //利用双层for循环输入题目要求结果,注意使用'\t'
        for (var i = 1; i <= 9; i++) {
            for(var j =1;j<=i;j++){
                str+= `${i}*${j}=${i*j}  `
            }
            str = str + '\n';
        }
        console.log(str);
    </script>
</head>

</html> 

6、看代码输出

             
            return num1 + '' + num2, num1 + num2 + num3;
            console.log(num1 + num2 + num3);
        }
        console.log(getSum(1, 2, 3)); //6???

7、求值

//定义变量存储1-100之间的所有整数的总和
        var sum = 0;
        //定义变量存储1-100之间的所有整数总和的平均值
        var average = 0;
        //定义变量存储1-100之间的所有偶数的和
        var even = 0;
        //定义变量存储1-100之间的所有7的倍数的和
        var result7 = 0;
        //定义一个for循环进行以上四个值的计算
        for (var i = 0; i <= 100; i++) {
            sum+=i;
            if(i===100)
            {
                average=sum/i
            }
            if(i%2===0){
                even+=i
            }
            if(i%7===0){
                result7+=i
            }
        }
        
        //输出结果
        console.log("1-100之间的所有整数的总和是" + sum);//5050
        console.log("1-100之间的所有整数总和的平均值是" + average);//50.5
        console.log("1-100之间的所有偶数的和是" + even);//2550
        console.log("1-100之间的所有7的倍数的和是" + result7);//735

8、冒泡排序

        var arr = [2, 4, 5, 3, 1];
        //利用冒泡排序将原数组进行升序排列
        for (var i = 0; i < arr.length - 1; i++) {
                for(var j=0;j<arr.length-1;j++)
                {
                   if(arr[j]>arr[j+1]){
                    var temp = arr[j+1];
					arr[j+1] = arr[j];
					arr[j] = temp;
                   }
                }
        }
        //输出排列后的数组
        console.log(arr);(理解没到位)
        
        

9、手写倒序输出字符串

function reverseStr(str){
        let arr = str.split('')  
        let i=0,j=arr.length-1;
        while(i<j){
            [arr[i],arr[j]] = [arr[j],arr[i]]   //解析结构赋值
            i++;
            j--;
        }
        return arr.join('')
}
console.log(reverseStr('hello'));//olleh


一些字符的基本方法许需要了解的,待会补充上来。

10、进化版倒序输出字符串

function reverseStr(str){
    /*
        类似于二分法的操作,和上一次的概念也是一样的
        i+j = 2*mid          [操作的是数组下标]
        mid = (0 + arr.length-1)/2
        i+j  = 2*(arr.length-1)/2)
        i+j = arr.length
        j= arr.length - 1 - i
    */
        let arr = str.split('');  
        let i=0;
        while(i<Math.floor(str.length/2)){
            j= arr.length - 1 - i;
            [arr[i],arr[j]] = [arr[j],arr[i]]   //解析结构赋值
            i++;
            
        }
        return arr.join('')
}
console.log(reverseStr('hello'));//olleh

10、es的reverse()实现倒序输出(一步到胃)

function reverseStr(str){
  
        let arr = str.split('');  
        return arr.reverse().join('')
}
console.log(reverseStr('hello'));//olleh

11、递归倒序输出字符串(剥洋葱)

function reverseStr(str){
        if(!str){
            return '';
        }
        if(str.length === 1){
            return str
        }
        let end = str.length -1;
        return str[end] + reverseStr(str.slice(1,end)) + str[0]
}
console.log(reverseStr('x'));


12、阶乘一般方法(递归)


        function jianceng(num){
            if(num===0){
                return 1;
            }
            return num * jianceng(num -1)
        }
        console.log(jianceng(5));

13、求值阶乘一般方法


        function jianceng(num){
            if(num===0){
                return 1;
            }
            let res =1;
           for(let i =2;i<=num;i++){
                res*=i
           }
           return res
        }
        console.log(jianceng(5));