JS基础篇3–JS基础练习题

  • Post author:
  • Post category:其他


1.初始js
https://blog.csdn.net/TroyeSivanlp/article/details/120274945
2.运算符与流程控制
https://blog.csdn.net/TroyeSivanlp/article/details/120329159
3.JS基础练习题
https://blog.csdn.net/TroyeSivanlp/article/details/120352803
4.数组
https://blog.csdn.net/TroyeSivanlp/article/details/120404014
5.作用域和对象
https://blog.csdn.net/TroyeSivanlp/article/details/120404112
6.内置对象
https://blog.csdn.net/TroyeSivanlp/article/details/120404155



js基础练习题



01-1到100整数累加和


    <script>
        // for 循环重复执行某些操作 比如说我们做了100次加法运算
        // 求 1~100 之间的整数累加和
        //         需要循环100次,我们需要一个计数器  i  
        // 我们需要一个存储结果的变量 sum ,但是初始值一定是 0
        // 核心算法:1 + 2 + 3 + 4 ....   ,sum  =  sum + i;
        var sum = 0; // 求和 的变量
        for (var i = 1; i <= 100; i++) {
            // sum = sum + i;
            sum += i;
        }
        console.log(sum);
    </script>



02-判断闰年


    <script>
        //         算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被 400 整除的就是闰年
        // 弹出prompt 输入框,让用户输入年份,把这个值取过来保存到变量中
        // 使用 if 语句来判断是否是闰年,如果是闰年,就执行 if 大括号里面的输出语句,否则就执行 else里面的输出语句
        // 一定要注意里面的且 &&  还有或者 || 的写法,同时注意判断整除的方法是取余为 0
        var year = prompt('请您输入年份:');
        if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
            alert('您输入的年份是闰年');
        } else {
            alert('您输入的年份是平年');
        }
    </script>



03-100之间所有数的平均值

 <script>
	var sum = 0;
    var average = 0;
    for (var i = 1; i <= 100; i++) {
     	sum = sum + i;
    }
    average = sum / 100;
    console.log(average);
</script>



04-1到100之间所有偶数和奇数的和

<script>
		var even = 0;
        var odd = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                even = even + i;
            } else {
                odd = odd + i;
            }
        }
        console.log('1~100 之间所有的偶数和是' + even);
        console.log('1~100 之间所有的奇数和是' + odd);
</script>



05-1到100之间所有能被3整除的数字的和

<script>
 var result = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 3 == 0) {
                // result = result + i;
                result += i;
            }
        }
        console.log('1~100之间能够被3整数的数字的和是:' + result);</script>



06-判断成绩

    <script>
        //  伪代码       按照从大到小判断的思路
        // 弹出prompt输入框,让用户输入分数(score),把这个值取过来保存到变量中
        // 使用多分支 if else if 语句来分别判断输出不同的值
        var score = prompt('请您输入分数:');
        if (score >= 90) {
            alert('宝贝,你是我的骄傲');
        } else if (score >= 80) {
            alert('宝贝,你已经很出色了');
        } else if (score >= 70) {
            alert('你要继续加油喽');
        } else if (score >= 60) {
            alert('孩子,你很危险');
        } else {
            alert('熊孩子,我不想和你说话,我只想用鞭子和你说话');
        }
    </script>



07-数字补0

    <script>
        //         用户输入0~59之间的一个数字
        // 如果数字小于10,则在这个数字前面补0,(加0 拼接) 否则  不做操作
        // 用一个变量接受这个返回值,输出
        var time = prompt('请您输入一个 0 ~ 59 之间的一个数字');
        // 三元表达式   表达式 ? 表达式1 :表达式2 
        var result = time < 10 ? '0' + time : time; //   把返回值赋值给一个变量
        alert(result);
    </script>



08-求学生成绩

    <script>
        // 弹出输入框输入总的班级人数(num)
        // 依次输入学生的成绩( 保存起来 score), 此时我们需要用到
        // for 循环, 弹出的次数跟班级总人数有关系 条件表达式 i <= num
        // 进行业务处理: 计算成绩。 先求总成绩( sum), 之后求平均成绩( average)
        // 弹出结果
        var num = prompt('请输入班级的总人数:'); // num 总的班级人数
        var sum = 0; // 求和的变量
        var average = 0; // 求平均值的变量
        for (var i = 1; i <= num; i++) {
            var score = prompt('请您输入第' + i + '个学生成绩');
            // 因为从prompt取过来的数据是 字符串型的需要转换为数字型
            sum = sum + parseFloat(score);
        }
        average = sum / num;
        alert('班级总的成绩是' + sum);
        alert('班级平均分是:' + average);
    </script>



09-打印正三角

<script>
        str=''
        for(var i=1;i<10;i++){
            for(var j=1;j<=i;j++){
                str+='*';

            }
            str+='\n';
        }
        console.log(str);
    </script>



10-打印倒三角形


    <script>
        // 打印倒三角形案例
        //第一种方法:
        var str = '';
        for (var i = 1; i <= 10; i++) { // 外层循环控制行数
            for (var j = i; j <= 10; j++) { // 里层循环打印的个数不一样  j = i
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);

		//第二种方法:
        var str = '';
        for (var i = 1; i <= 10; i++) { // 外层循环控制行数
            for (var j = 1; j <= 11-i; j++) { // 里层循环打印的个数不一样  j从1加到总行数减循环行数,j++
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);

		//第三种方法:
        var str = '';
        for (var i = 1; i <= 10; i++) { // 外层循环控制行数
            for (var j = 11-i; j >= 1; j--) { // 里层循环打印的个数不一样  j等于总行数减循环行数,j--
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);

		//第四种方法:
        var str = '';
        for (var i = 1; i <= 10; i++) { // 外层循环控制行数
            for (var j = 10; j >= i; j--) { // 里层循环打印的个数不一样  j等于总行数,j大于等于循环行数,j--
                str = str + '★';
            }
            str += '\n';
        }
        console.log(str);
    </script>



11-等腰三角形

    <script>
        // 要做出等腰三角形,就要找等腰三角形的规律,
        // 我们可以把等腰三角形看作是梯形,由两个三角形组成
        
        //第一种方法:
        
        var str=''; 
        var columns=prompt("输入几行:")
        for(var i = 0; i<columns; i++)
		{
            //for循环打印出倒三角
			for(var j =0; j<columns-i-1; j++)
			{
				str+=" ";
			}
            //for循环
            for(var k=0; k<(i*2+1); k++)
			{	
			str+="*";
            
            }
            str+="\n";
        }

        alert(str);

        //第二种方法:
        var str=''; 
        var columns=prompt("输入几行:")
        for(var i = 1; i <= (columns+1)/2; i++) {
            for(var m = 1; m <= (columns+1)/2-i; m++ ) 
			{
				str+=" ";
			}
            //for循环
            for(var j = 1; j <= 2*i-1; j++)
			{	
			str+="*";
            }
            str+="\n";
        }

        alert(str);
    </script>



12-九九乘法表

    <script>
        // 九九乘法表
        // 一共有9行,但是每行的个数不一样,因此需要用到双重 for 循环
        // 外层的 for 循环控制行数 i ,循环9次 ,可以打印 9 行  
        // 内层的 for 循环控制每行公式  j  
        // 核心算法:每一行 公式的个数正好和行数一致, j <= i;
        // 每行打印完毕,都需要重新换一行
        var str = '';
        for (var i = 1; i <= 9; i++) { // 外层循环控制行数
            for (var j = 1; j <= i; j++) { // 里层循环控制每一行的个数  j <= i
                str += j + '×' + i + '=' + i * j + '\t';
            }
            str += '\n';
        }
        console.log(str);
    </script>



js数组练习题



01-求数组中的最大值和最小值

 <script>
        // 求数组[2,6,1,77,52,25,7]中的最大值
        // 声明一个保存最大元素的变量 max。
        // 默认最大值可以取数组中的第一个元素。
        // 遍历这个数组,把里面每个数组元素和 max 相比较。
        // 如果这个数组元素大于max 就把这个数组元素存到 max 里面,否则继续下一轮比较。
        // 最后输出这个 max
        var arr = [2, 6, 1, 77, 52, 25, 7, 99];
        var max = arr[0];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        var arry = [1, 2, 3, 4, 5, 6, 7, 8];
        var min = arry[0];
        for (var i = 1; i < arry.length; i++) {
            if (min> arry[i]) {
                min = arry[i];
            }
        }
        console.log('该数组里面的最小值是:' + min);
    
    </script>



02-数组转换为字符串

 <script>
        // 将数组 ['red', 'green', 'blue', 'pink'] 转换为字符串,并且用 | 或其他符号分割
        // 需要一个新变量用于存放转换完的字符串 str。
        // 遍历原来的数组,分别把里面数据取出来,加到字符串里面。
        // 同时在后面多加一个分隔符
        var arr = ['red', 'green', 'blue', 'pink'];
        var str = '';
        var str1 = '';
        var sep = '*';
        for (var i = 0; i < arr.length; i++) {
            str += arr[i] + sep;
        }
        console.log(str);
        var arr1 = [7, 6, 9, 7, 8];
        for (var i = 0; i < arr1.length; i++) {
            str1 += arr1  [i] ;
        }
        console.log(str1);
    </script>



03-数组存放1_10个值

<script>
        // 新建一个数组,里面存放10个整数( 1~10)
        // 核心原理:使用循环来追加数组。
        // 1、声明一个空数组 arr。
        // 2、循环中的计数器 i  可以作为数组元素存入。
        // 3、由于数组的索引号是从0开始的, 因此计数器从 0 开始更合适,存入的数组元素要+1。
        var arr = [];
        for (var i = 0; i < 100; i++) {
            // arr = i; 不要直接给数组名赋值 否则以前的元素都没了
            arr[i] = i + 1;
        }
        console.log(arr);
    </script>



04-筛选数组

<script>
        // 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组。
        // 1、声明一个新的数组用于存放新数据newArr。
        // 2、遍历原来的旧数组, 找出大于等于 10 的元素。
        // 3、依次追加给新数组 newArr。
        // 方法1
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        var j = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] >= 10) {
                // 新数组索引号应该从0开始 依次递增
                newArr[j] = arr[i];
                j++;
            }
        }
        console.log(newArr);
        // 方法2 
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        // 刚开始 newArr.length 就是 0
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] >= 10) {
                // 新数组索引号应该从0开始 依次递增
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);
    </script>



05-数组去重(删除指定数组元素)

<script>
        // 将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 0 去掉后,形成一个不包含 0 的新数组。
        // 1、需要一个新数组用于存放筛选之后的数据。
        // 2、遍历原来的数组, 把不是 0 的数据添加到新数组里面(此时要注意采用数组名 + 索引的格式接收数据)。
        // 3、新数组里面的个数, 用 length 不断累加。
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);
    </script>



06-翻转数组

<script>
        // 将数组 ['red', 'green', 'blue', 'pink', 'purple'] 的内容反过来存放
        // 1、声明一个新数组 newArr
        // 2、把旧数组索引号第4个取过来(arr.length - 1),给新数组索引号第0个元素 (newArr.length)
        // 3、我们采取 递减的方式  i--
        var arr = ['red', 'green', 'blue', 'pink', 'purple', 'hotpink'];
        var newArr = [];
        for (var i = arr.length - 1; i >= 0; i--) {
            newArr[newArr.length] = arr[i]
        }
        console.log(newArr);
    </script>



07-冒泡排序

<script>
        // 冒泡排序
        // var arr = [5, 4, 3, 2, 1];
        var arr = [4, 1, 2, 3, 5];
        for (var i = 0; i <= arr.length - 1; i++) { // 外层循环管趟数 
            for (var j = 0; j <= arr.length - i - 1; j++) { // 里面的循环管 每一趟的交换次数
                // 内部交换2个变量的值 前一个和后面一个数组元素相比较
                if (arr[j] < arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }

            }
        }
        console.log(arr);
    </script>



js方法练习题



01-利用函数实现求数组的和,及平均值

 <script>
  //1.利用函数实现求数组的和,及平均值
    //思路:写一个函数,for循环,让得到的值自加,返回值的和
    var arr = [1, 2, 3, 5, 86, 43];
    function sumArr(arr) {
        var sum = 0;
        for (var i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
    var result = sumArr(arr);
    alert(result);
    var avg = result / arr.length;
    alert(avg);
</script>



02-求数组的冒泡排序

<script>
//求数组的冒泡
        var arr=[2,143,43,6456,678,43,3,232,298];
        //函数冒泡
        function sort(arr){
            for(var i=0;i<arr.length;i++){
                for(var j=0;j<arr.length;j++){
                    if(arr[j]<arr[j+1]){
                        var temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
            return arr;
        }
        var result=sort(arr);
        alert(result);
   </script>   



03-利用函数函数求数组的最大值,和最小值

<script>  
//3利用函数函数求数组的最大值,和最小值
    var arr=[3234,234,5,6,67,86,8987,4321];
    //创建一个函数,循环遍历,通过if语句判断
    function getMax(arr){
        var max=arr[0];
        var min=arr[0];
        //求最大值
        for(var i=0;i<arr.length;i++){
            if(arr[i] >max){
               max=arr[i];
            }
        }
        alert('最大值为:'+max);
        //求最小值
        for(var i=0;i<arr.length;i++){
            if(arr[i]<min){
                min=arr[i];
            }
        }
        alert('最小值为:'+min);
    }
    getMax(arr);
    </script>  



04-反转数组

  <script> 
 //4.反转数组
    //创建一个方法,
    function rervse (){
    var arr=[];
    //创建一个新数组,把传进去的数字用伪数组保存,
    // 然后到序遍历伪数组将遍历的结果保存到新数组中去
        for(var i=arguments.length;i>=0;i--){
            arr[arr.length]=arguments[i];
        }
        return arr;
    }
    var newArr=rervse(1,2,3,4,5,6,7,8,9,10);
    alert(newArr)
     </script> 



05-实现判断闰年然后提示2月有多少天

<script> 
  // 6实现判断闰年然后提示2月有多少天
    var year = prompt('请输入一个年份:');
    //写一个函数,判断闰年
    function isRunYear(year) {
        if (year % 400 == 0 || year % 4 == 0 && year % 100 !=0){
            return year+"年二月有28天";
        }
        return year+"年二月有29天";
    }
    var result=isRunYear(year);
    alert(result);
    </script> 



06-实现任意两数之间的和

<script>
 //7实现任意两数之间的和
    //写一个函数,定义从num1到num2之间的for循环
    var num1=prompt('请输入第一个数:');
    var num2=prompt('请输入第二个数:');
    function getSum(num1,num2){
        var sum=0;
        for(var i=num1;i<=num2;i++){
            sum=Number(i)+Number(sum);
        }
        return sum;
    }
    var result=getSum(num1,num2);
    alert("从"+num1+"到"+num2+"的和为:"+result) 
    </script>



07-算术器

   <script>
        //1.算术器
        //让用户输入数字和运算符
        var suansufu = prompt('请输入运算符:');
        var num1 = prompt('请输入第一个数字:');
        var num2 = prompt('请输入第二个数字:');
        var sum = 0;
        //定义一个方法,当用户输入运算符和数字就执行相对的操作
        function suanshuqi(suansufu, num1, num2) {

            var flag = true;

            while (flag) {

                if (suansufu == '+') {

                    sum = Number(num1) + Number(num2);

                    alert(num1 + suansufu + num2 + '=' + sum);

                    flag = false;

                } else if (suansufu == '-') {

                    sum = num1 - num2;

                    alert(num1 + suansufu + num2 + '=' + sum);

                    flag = false;

                } else if (suansufu == '*') {

                    sum = num1 * num2;

                    alert(num1 + suansufu + num2 + '=' + sum);

                    flag = false;

                } else if (suansufu == '/') {

                    sum = (num1 / num2).toFixed(2);

                    alert(num1 + suansufu + num2 + '=' + sum);

                    flag = false;

                } else {

                    var suansufu = prompt("输入错误,请重新输入运算符:");
                }
            }
        }
        //调用当前方法
        suanshuqi(suansufu, num1, num2);
        </script>



08-得到两个数的最大值



09-比较三个数的最大值

<script>
//第三题
//让用户输入三个数:
var num1 = prompt('请输入第一个数:');
var num2 = prompt('请输入第二个数:');
var num3 = prompt('请输入第二个数:');
//创建一个方法,用于比较三个数的最大值
function getMax(num1, num2, num3) {
    
    if (num1 > num2) {
        if (num1 > num3) {
            return num1;
        } else {
            return num3;
        }
    } else if (num1 < num2) {
        if (num2 > num3) {
            return num2;
        } else {
            return num3;
        }
    }
}
var result = getMax(num1, num2, num3);
alert('最大值为:' + result);
</script>



10-判断素数

  <script>
    //判断素数
    //输入一个数:
    var sushu = prompt("请输入一个数:");
    //创建一个方法,用于判断素数
    function isSuShu(sushu) {
        //等于二时,判断为素数
        if (sushu == 2) {
            alert("2为素数");
        }
        //否则for循环,当取余该数时,余0,这说明该数不是素数
        for (var i = 2; i < sush / 2; i++) {
            if (sushu % i == 0) {
                alert(sushu + "不是素数");
                break;
            }
        }
    }
    isSuShu(sushu);
</script>



版权声明:本文为TroyeSivanlp原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。