前端学习第八天——javascript判断语句和数组

前端学习第八天——javascript判断语句和数组

if语句

if语句是最简单的条件语句,也称选择语句。

    if (condition)
    {
        当条件为 true 时执行的代码
    }
    else
    {
        当条件不为 true 时执行的代码
    }

switch语句

    switch(表达式) {
     case n:
        代码块
        break;
     case n:
        代码块
        break;
     default:
        默认代码块
    } 

break跳出循环,不书写break则后面的所哦呦case都将被视为匹配,知道预见break

三元运算符

条件表达式 ? 表达式1 : 表达式2
问号前面是判断的条件,问好后面用冒号隔开两个表达式。当条件为真时调用表达式1,为假时调用表达式2。

for语句

    for (语句 1; 语句 2; 语句 3) {
        要执行的代码块
    }

语句 1 在循环(代码块)开始之前执行。
语句 2 定义运行循环(代码块)的条件。
语句 3 会在循环(代码块)每次被执行后执行。

while语句

    while (条件) {
        要执行的代码块
    }

break表示立即终止循环
continue用于跳过循环中的一个迭代,并继续执行下一个迭代。

do while语句

该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环

    do
    {
    需要执行的代码
    }
    while (条件);

生成[a,b]之间的随机数

    Math.random()*(a-b+1)+a

算法

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

穷举法

寻找100以内的质数

    // 穷举法
    outer: for (var i = 2; i <= 100; i++) {
        // 内层循环开始从2开始到小于这个数字的每一个数字都尝试除i,如果能够整除,说明它不是质数,就可以筛选下一个数字了
        for (var j = 2; j < i; j++) {
            if (i % j == 0) {
                // 说明数字i不是质数,因为它找到了除1和它自身之外的约数了,测试下一个数字了
                // continue表示放弃这个数字,开始迭代下个数字,continue它负责的是它所在的最内层的for循环
                // 要给外层for循环加上label,然后在continue的后面加上这个label,
                // 这样就表示立即开始迭代外层for循环的下一个数字了,而不是内层for循环
                continue outer;
            }
        }

        // 能够遇见这条语句的数字i,一定是质数,否则就被continue略过了
        console.log(i);
    }

面试题

用莱布尼兹级数估算圆周率
π = 2 * (1+1/3+(12/35) + (1*…n)/(3* 5* …2n+1))

    var sum = 0;
    var item = 1;
    var n = Number(prompt('请输入一个数'));
    for(var i=1; i<=n; i++)
    {
        item *= i/(2 * i+1);
        sum +=item;
    }
    console.log((1+sum)*2);

数组

数组(Array)用来存储一组相关的值,从而方便求和、计算平均数、逐项遍历等操作。

数组的定义

  1. 方法一
    var arr = ['A','B','C','D'];
  1. 方法二
    var arr = new Array('A','B','C','D');
  1. 方法三
    定义一个长度为4的数组,但是这4项都是undefined
    var arr = new Array(4);

访问数组项

数组的每一项都有下标,下标从0开始

    arr[0]; // 数组的第一项

JavaScript规定,访问数组中不存在的项会返回undefined,不会报错

数组的长度

数组的length属性表示它的长度

    arr.length; // 数组的长度

更改数组项

如果更改的数组项超过了length-1,则会创造这项,

    var arr = [2,6,7,3];
    arr[6] = 4;
    console.log(arr);
    // (7)[2,6,7,3emptyx2,4]

数组类型的检测

  • 数组用typeof检测结果是object
  • Array.isArray()方法可以用来检测数组

数组的头尾操作

方法功能
push()在尾部插入新项
pop()在尾部删除
unshift()在头部插入新项
shift()在头部删除

  • push()方法用来在数组末尾插入新项,传入的参数就是要插入的新项。
    插入多项时,可以用逗号隔开每项。
    调用push()方法,数组会立即改变,不需要赋值
  • pop()方法删除数组中的最后一项,删除后会返回被删除的项。
  • unshift()方法用来在数组头部插入新项,传入的参数就是要插入的新项。
    插入多项时,可以用逗号隔开每项。
    调用unshift()方法,数组会立即改变,不需要赋值
  • shift()方法用来删除数组的第一项,也就是数组下标为0的项,删除后会返回被删除的项。
  • splice()方法用于替换数组中指定的项
    var arr = ['A','B','C','D','E','F','G'];
    // 从下标为3的项开始,连续替换2两项
    arr.splice(3,2,'X','Y','Z');
    console.log(arr);   // ['A','B','C','X','Y','Z','F','G']

还可以用于在指定位置插入新项

    var arr = ['A','B','C','D'];
    // 从下标为3的项开始,连续替换2两项
    arr.splice(2,0,'X','Y','Z');
    console.log(arr);   // ['A','B','X','Y','Z','C','D']

还可以用于删除指定项

    var arr = ['A','B','C','D','E','F','G'];
    // 没有设置替换的新项,仅删除4项
    arr.splice(2,4);
    console.log(arr);   // ['A','B','G']

splice()方法会以数组的形式返回被删除的项

  • slice()方法用于得到子数组。
    slice(a,b)截取的子数组从下标为a的项开始,到下标为b(不包括下标为b的项)结束。该方法不会更改原有数组
    slice()方法如果不提供第二个参数,则表示从指定项开始,提取所有后续所有项作为子数组。
    slice()方法的参数允许为负数,表示数组的倒数第几项

  • join()方法可以使数组转为字符串;字符串的split()方法可以使字符串转为数组。
    join()的参数表示以什么字符作为连接符,如果留空则默认以如同调用 以逗号分隔 toString()方法
    split()的参数表示以什么字符拆分字符串,一般不能留空

  • 字符串也可以使用方括号内写下标的形式,访问某个字符,等价于方法 charAt()

  • 字符串的一些算法问题有时候会转换为数组解决

  • concat()方法可以合并连结多个数组,不会改变原数组

    var arr1 = [ 1, 2, 3, 4];
    var arr2 = [ 5, 6, 7, 8];
    var arr3 = [ 9, 10, 11];
    var arr =  arr1.concat(arr2, arr3);
    console.log(arr);
    // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 
  • reverse()方法用来讲一个数组中的全部项顺序置反
  • indexOf()方法的功能是搜索数组中的元素,并返回它所 在的位置,如果元素不存在,则返回-1
  • includes()方法的功能是判断一个数组是否包含一个指定 的值,返回布尔值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值