2021-07-21实训js

目标

学习到数组


一、if案例

<script>
        var num1 = prompt("请输入财产值(wan)");
        var num2 = prompt("请输入帅气值(px)");
        var num3 = prompt("请输入身高值(cm)");
        alert("财富是:" + num1 + "帅气值是:" + num2 + "身高值是:" + num3);
        if (num1 > 180 && num2 > 500 && num3 > 180) {
            alert("哇哦,最佳人选");
        }
        else if (num1 > 180 || num2 > 500 || num3 > 180) {
            alert("考虑一下啊");
        }
        else {
            alert("淘汰!");
        }
    </script>

二、基本语句

1.swich语句练习

成绩大于60合格,低于60不合格

代码如下(示例):

<script>
        // 成绩大于60合格,低于60不合格
        var num1 = prompt("请输入成绩");
        alert("成绩是:" + num1);
        switch (true) {
            case num1 >= 60:
                console.log("合格");
                break;
            default:
                console.log("bu合格");
                break;
        }
    </script>

2.while循环语句

练习:投资年利率为5%,从1000增长到5000,需多少年

<script>
        var num1 = 1000;
        var n = 0;
        while (num1 < 5000) {
            num1 = num1 * 1.05;
            n++;
            console.log("现在共有钱" + num1);
        }
        console.log("需要" + n + "年");
    </script>

3.for循环 

联系1-100间所有7的倍数的个数和总和

<script>
        var n = 0;
        var m = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                console.log(i);
                m = m + i;
                n++;
            }
        }
        console.log("总和是" + m)
        console.log("个数是" + n);

    </script>

 4.嵌套for循环

输出

*

**

***

<script>
        var n = prompt("输入高度:");
        for (var i = 0; i < n; i++) {
            for (var j = 0; j < i + 1; j++) {
                document.write("*");
            }
            document.write("<br/>");
        }


    </script>

 九九惩罚表

<script>
        for (var i = 1; i <= 9; i++) {
            for (var j = 1; j <= i; j++) {
                document.write("<span>" + j + "*" + i + "</span>");
            }
            document.write("<br/>");
        }
    </script>
    <style type="text/css">
        span {
            display: inline-block;
            width: 80px;
        }

三、break与continue 

break:用于swich或循环语句,终止离他最近的循环。可以在break后跟一个label这可以结束特定循环。

continue:跳过当次循环,默认离他最近的循环起作用。

四、对象

  • 基本类型数据类型的数据,都是独立的,不为一个整体。对象为复合数据类型,对象可以保持多各不同数据类型的数据.是一个容器,使用方便。
  • 读取对象中没有的属性不会报错而是返回undefind。修改可以使用够覆盖的方法。
  • 对象属性名不强制要求遵守标识符的规范,但尽量遵守,若使用特殊属性名例如123,使用对象【”属性名“】=属性值。这种方式更加灵活,可以直接传递一个变量。
  • 属性值:可以是任意类型。
<script>
        //创建使用new关键字调用的函数,构造函数,创造对象并赋值
        var obj = new Object();
        //在对象中保存的值成为属性,相对中国添加属性,
        //对象名.属性名=属性值
        obj.name = "周絮";
        obj.age = 29;
        console.log(obj);
    </script>

分类

1.内建对象

ES标准中定义的对象,ES中都可以使用,例如:Math、String、Number、Objcet。。。

2.宿主对象:

JS运行环境提供的对象,目前由浏览器提供,比如:DOM,BOM.

3.自定义对象:

开发人员创建对象。

五、引用数据类型和基本数据类型:

  • 基本数据类型:保存在栈内存。变量:值。保存的是值
  • 引用数据类型(对象):保存在堆内存,每保存一个新的对象,就会在堆内存张开辟一个新的空间而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的引用,当一个变量修改属性时,另一个也会改变(通过修改地址,则会受到影响)。两个对象相比较事情,比较的为地址。保存的地址。
<script>
        var obj2 = new Object();
        var obj1 = new Object();
        obj2.name = "zhouzishu";
        obj1.name = "zhouzishu";
        console.log(obj2);
        console.log(obj1);
        console.log(obj2 == obj1);
    </script>

 

 六、对象字面量

用对象的字面量创建一个对象,可以在创建对象时直接指定对象的属性

{属性名:属性值,属性名:属性值。。。}

<script>
        var obj1 = {
            name: "zhouzishu",
            friend: "wenkexing"
        };
        console.log(obj1);
    </script>

七、函数简介 

  • 封装功能,保存代码的作用。检查函数对象,返回function。
  • 调用:函数对象();函数是一个对象
 <script>
        var fun = new Function("console.log(123);");
        fun();
        fun();
    </script>
  •  一般创建方式:
 <script>

        function fun() {
            console.log("hh");
            alert("hh");
            document.write()
        }
        fun();
        fun();
    </script>
  •  形参,实参
<script>
        function fun(num1, num2) {
            console.log(num1 + num2);
        }
        fun(1, 2);
    </script>
  • 形参、实参个数不匹配

1.实参多:会取到参数的个数

2.形参多:没有接收值定义为undefined,结果为NaN。

return返回值:返回即终止。

<script>
        function fun() {
            return 111;
        }
        console.log(fun());
    </script>
  • arguments的使用 :存储所有传递过来的实参,是一个伪数组(没有真正数组的一些方法pop() push())只有函数可用
<script>
        function fun() {
            console.log(arguments);
            console.log(arguments.length);
            console.log(arguments[2]);
        }
        fun();
        fun(1, 2, 3);

    </script>

 

八、数组

array定义:

一组数据的集合存放在单个变量下,可放任何类型,

new方式:

var arr=new Array();

字面量方式:

 var arr=[];

获取数据元素:

1.索引,即下标从0开始。

2.格式:数组名【索引号】

<script>
        var arr = [1, 2, "hh"];
        console.log(arr[1]);
    </script>

3.遍历:循环方式

<script>
        var arr = [1, 2, "hh"];
        for (var i = 0; i < 3; i++)
            console.log(arr[i]);
    </script>

4.数组长度:

数组名.length,元素个数。动态监测

<script>
        var arr = [1, 2, "hh"];
        for (var i = 0; i < arr.length; i++)
            console.log(arr[i]);
    </script>

5.案例:

1.求数组中的总和平均值

<script>
        var arr = [1, 2, 17, 32];
        var sum = 0;
        for (var i = 0; i < arr.length; i++) {
            sum = sum + arr[i];

        }
        ave = sum / arr.length;
        console.log(sum);
        console.log(sum, ave);

    </script>

2.分隔字符串

<script>
        var arr = [1, 2, 17, 32];
        var str = ' ';
        var sep = '!';
        for (var i = 0; i < arr.length; i++) {
            str = str + arr[i] + sep;
        }
        console.log(str);
    </script>

6.数组扩容:

<script>
        var arr = [1, 2, 17, 32];
        arr.length = 10
        console.log(arr.length);
        console.log(arr);//多余的为空
        //修改索引号
        arr[4] = 'pink';//若位置以有元素则会替换
        console.log(arr[4]);
        console.log(arr);
        //不可以给数组元素赋值,若直接赋值则其他元素没了

    </script>

7.筛选数组:

1.

<script>
        //选出大于10的
        var arr = [1, 2, 17, 32];
        var arr1 = [];
        var j = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > 10) {
                arr1[j] = arr[i];
                j++;
            }
        }
        console.log(arr1);
    </script>

2.

<script>
        //选出大于10的
        var arr = [1, 2, 17, 32];
        var arr1 = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > 10) {
                arr1[arr1.length] = arr[i];
            }
        }
        console.log(arr1);
    </script>

冒泡排序:

 <script>
        var arr = [1, 2, 17, 32];
        var temp = 0;
        for (var i = 0; i < arr.length - 1; i++) {//外层虚幻:趟数
            for (var j = 0; j <= arr.length - i - 1; j++)//交换次数
            {
                if (arr[j] < arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }

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

九、作用域

定义:代码名字在某个范围内起作用,目的是提高可靠性,减少命明冲突。

 

总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值