请看菜鸟如何看书(憋住,别笑我)

本文用于像我这样的菜鸟级别,大佬看在码子不易,给个赞(欢迎指错和指导),有的是本身写的,有的嫌麻烦复制的,此文主要用于之后进行内容回顾数组

持续更新中~

js基础


  • 1.变量做用域---全局变量与局部变量bash

    var str1 = 'global';
    str2 = 'global';
    function myFunction() {
        var str1 = 'local';
        return str1;
    }
    function myOtherFunction() {
        str2 = 'local';
        return str2;
    }
    console.log(str1); //{1}
    console.log(myFunction()); //{2}
    console.log(str2); //{3}
    console.log(myOtherFunction()); //{4}
    console.log(str2); //{5}
    复制代码

    {1}---输出global,由于他是全局变量函数

    {2}---输出local,由于str1是在函数myFunction里面声明的,因此仅做用在此函数自己做用域内ui

    {3}---输出global,str2赋值为第二行spa

    {4}---输出local,由于没有用var至关于str2在本身函数做用域内进行了全局赋值code

    *拓展>变量声明时使用了var若是在局部就是局部变量,未使用至关于所有变量(其实只是全局的一个属性)
      >>>变量与属性的区别:前者不可删除,后者能够删除!如:delete str1 不可删除, delete str2  能够删除
    复制代码

    {5}---由于{4}进行了从新赋值,此时str2为localcdn

    注:代码中应尽可能减小全局变量,或使用let对象


  • 2.操做符---三元运算符blog

    三元运算符排序

    let a = 1
           let b = 2
           let c = 3
           let d = 4
       //1.
           p = a == 1 ? a : b          //a是否等于1,是p=a,不然p=b
           
       //2. ---这里至关于一个增强版,直接能够避免写switch...case,可是也很差理解
           p = a == b ? 1 : (a == c ? a : (a == d ? a : d))     
           //a是否与b相等,若是是p=1. 若是不是,a是否与c相等,若是是,p=a. 若是不是,a是否与d相等,若是p=a,若是不是p=d
    复制代码

  • 真假 ---这里直接贴出来参考

    数值类型 转换成布尔值
    undefined false
    null false
    布尔值 true是 true ,false是 false
    数字 +0、0和 NaN 都是 false ,其余都是 true
    字符串 若是字符串是空的(长度是0)就是 false ,其余都是 true
    对象 true

数组

1.斐波那契数列

此数列就是入门级别的,不知道我档次怎么都不会(别笑我,笑我我也不认可)

    已知第一个数为1,第二个数为2,第三个是前两个数之和,一次类推,列出前20个数
    已知数组arr[0] = 1, arr[1] = 2;
    而后得出arr[i] = arr[i-1] + arr[i-2]
    那么就容易了:
复制代码
let arr = [1,2]
        for (let i=2; i<20; i++) {
            arr[i] = arr[i-1] + arr[i-2]
        }
复制代码

结果就是

2.组件插入值

在一个数组开头插入一个值
若是用unshift很简单,直接arr.unshift(number)
如今用原始方法实现它,原理就是把全部值日后移一位,而后把arr[0]赋值
复制代码
let arr = [1, 2, 3, 4, 5]
     let newArr = [10]
     for (let i = arr2.length; i>0 ;i--) {
             newarr[i] = arr2[i-1]
     }
复制代码

结果:

3.多维数组

先接图一用:

此二维数组,[[72,75,79,79,81,81],[81,79,75,75,73,73]]

传统若是要将此二维数组合并为一维数组要先拿到全部数组值,而后赋值给一个新数组,如:
先进行数组遍历:
            for (var i=0; i<arr.length; i++) {
                for (var j=0; j<arr[i].length; j++) {
                    newArr.push(arr[i][j])
                }
            }
//更加多维数组也能够用同样的方法
复制代码
使用稍微新点的方法
    var newArr=[]
    arr.forEach(item => {
        newArr = [...newArr, ...item]     //这里使用concat也能够
    })
复制代码

都为

其余数组方法本身再探索了! 相关数组方法:

方法名 描 述
concat 链接2个或更多数组,并返回结果
every 对数组中的每一项运行给定函数,若是该函数对每一项都返回 true ,则返回 true
filter 对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组
forEach 对数组中的每一项运行给定函数。这个方法没有返回值
join 将全部的数组元素链接成一个字符串
indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值
map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
reverse 颠倒数组中元素的顺序,原先第一个元素如今变成最后一个,一样原先的最后一个元素变成了如今的第一个
slice 传入索引值,将数组里对应索引范围内的元素做为新数组返回
some 对数组中的每一项运行给定函数,若是任一项返回 true ,则返回 true
sort 按照字母顺序对数组排序,支持传入指定排序方法的函数做为参数
toString 将数组做为字符串返回
valueOf 和 toString 相似,将数组做为字符串返回
相关文章
相关标签/搜索