x-js学习笔记3

一、循环

1、循环的目的:可以重复执行某些代码

2、for循环

格式:

for(初始化变量;条件表达式;操作表达式){
}

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

            }
            str += '\n';


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

操作表达式主要目的更新变量

可以使用断点调试·

3、while循环

while(条件表达式)

{

}

 <script>
        var num = 1;
        while (num < 10) {
            console.log('nihao');
            num++;
        }
    </script>

条件表达式结果为真执行循环体,否则不执行

4、do while循环

do{

}while(表达式)

do while先执行一次循环体,再判断,表达式结果为真,继续执行循环体,否则将退出循环

和while最大的区别,循环体至少执行一次

<script>
 var i = 1;
        do {
            console.log('这个人今年' + i + '岁了');
            i++;
        } while (i <= 100);
        var sum = 0;
        for (var a = 1; a <= 100; a++) {
            if (a % 7 == 0) {
                continue;
            }
            sum += a;
        }
        alert(sum);
    </script>

5、coutinue

跳出本次循环,继续下一次循环(只跳出本次循环,整个循环体还在)

6、break

跳出整个的循环体

二、数组

 

数组时一组数据的集合(存储在单个变量下)

2.1数组的创建方式

1、利用new创建数组

2、利用数组字面量创建数组(最常用)

 

var arr=[];

数组里的元素可以是任意类型

3.1数组的索引

用来访问数组元素的序号,下标从零开始,通过下标来访问

4、遍历数组

遍历:就是把数组的元素从头到尾访问一次

var arr=[]

for(var i=0;i<3;i++)

{

console.log(arr[i]);

}

<script>
        var arr = [1, 2, 3, 5, 6, 6];
        var sum = 0;
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
            sum += arr[i];
        }
        var ave = sum / arr.length;
        console.log(sum);
        console.log(ave);
    </script>

4.1数组长度

数组名.length(可以动态检测元素的个数,for循环种使用起来很好。)

写arr.length=5;会改变数组长度为5

 <script>
        var arr = [2, 6, 1, 77, 52, 25, 7];
        var max = 0;
        for (var i = 0; i <= arr.length; i++) {
            if (max < arr[i])
                max = arr[i];
        }
        console.log(max);
    </script>

数组元素的默认值为undefined

新增时,对原来有值的进行再赋值,会对原来的元素进行替换(没有追加,有替换 )

5、冒泡排序

冒泡排序是一种简单的排序算法,它重复地走访要排序的数列,一次比较两个元素,如果他们顺序错误就把他们的顺序交换过来

<script>
        var str1 = [5, 8, 3, 7, 1];
        var tent;
        for (var i = 0; i <= str1.length - 1; i++) {
            for (var a = 0; a <= str1.length - 1; a++) {
                if (str1[a] > str1[a + 1]) {
                    tent = str1[a];
                    str1[a] = str1[a + 1];
                    str1[a + 1] = tent;
                }
            }
        }
        console.log(str1);
    </script>

三、函数

函数

1、诞生

在,js里面,可能会有定于非常多的相同功能或者功能相似的代码,重复次数太多

寒素:就是封装了一段可被重复调用执行的代码块

目的:让大量代码重复使用

 <script>
        function fn() {
            for (var i = 0; i < arguments.length; i++) {
                console.log(arguments[i]);
            }
        }
        fn(1, 2, 3, 4, 5);
        function fn() {
            console.log(arguments);//arguements展示形式是伪数组
        }
        fn(1, 2, 3);
    </script>

1.1函数的使用

(1)function是声明函数的关键字,全是小写

(2)函数名一般是动词

(3)函数不调用不自己执行

调用函数记得加小括号

函数的封装就是把一个或多个功能通过函数的方式封装起来

建议实参和形参个数相匹配

2希望返回值返回给调用者

function 函数名(){

return 需要返回的结果;

}

3、函数返回值的注意事项

3.1、return之后的代码不再执行

return一次只能返回一个值,加逗号会返回最后的

 <script>
        function isRunnian(year) {
            var flag = false;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                flag = true;
            }
            else {
                flag = false;
            }
            return flag;
        }
        console.log(isRunnian(2024));
    </script>

可以用数组输出多个值

我们的函数如果有return则返回的是return后面的值,函数没有return值就返回undefined

break:结束当前的循环体

continue:跳出本次循环,继续执行下次循环

return:不仅可以退出循环,还能够返回return语句的值,同时还可以结束当前的函数

4、arguements的使用

当不确定有多少个参数传递的时候,可以用arguements来获取。在js中它是当前函数的一个前置对象。所有的函数都内置了一个agruments对象,其包含所有的实参。

 <script>
        function fn() {
            var max = arguments[0];
            for (var i = 0; i < arguments.length; i++) {
                if (arguments[i] > max) {
                    max = arguments[i];
                }
            }
            return max;
        }
        console.log(fn(1, 2, 3));
    </script>

4.1、arguements伪数组,并不是真正意义上的数组

(1)具有数组的length属性

(2)按照索引的方式进行存储

(3)他没有真正数组的一些方法

4.2

函数是可以相互调用的

四、作用域

1、作用域

全局变量与局部变量,js现在没有块级作用域{},比如if{},for{},所以现阶段js在{}里面写的变量,外面都可以使用。之后就不可以用。

2作用域链

内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构被称为作用域链:就近原则。

<script>
​

var num=10;

function fn(){
    num=20;
    
    function fun(){
        console.log(num);
    }
    fun()
}
fn()   
</script>

五、js预解析

1.变量提升,就是把所有的变量声明提升到当前作用域的最前面,不提升赋值操作

2.函数提升,就是把所有的函数声明提升到当前作用域的最前面,不调用函数

var a=b=c=9;相当于var a=9;b=9;c=9;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值