本文用于像我这样的菜鸟级别,大佬看在码子不易,给个赞(欢迎指错和指导),有的是自己写的,有的嫌麻烦复制的,此文主要用于以后进行内容回顾
持续更新中~
js基础
-
1.变量作用域---全局变量与局部变量
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里面声明的,所以仅作用在此函数本身作用域内
{3}---输出global,str2赋值为第二行
{4}---输出local,因为没有用var相当于str2在自己函数作用域内进行了全局赋值
*拓展>变量声明时使用了var如果在局部就是局部变量,未使用相当于全部变量(其实只是全局的一个属性) >>>变量与属性的区别:前者不可删除,后者可以删除!如:delete str1 不可删除, delete str2 可以删除{5}---因为{4}进行了重新赋值,此时str2为local
注:代码中应尽量减少全局变量,或使用let
-
2.操作符---三元运算符
三元运算符
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.多维数组
先借图一用:

传统如果要将此二维数组合并为一维数组要先拿到所有数组值,然后赋值给一个新数组,如:
先进行数组遍历:
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 类似,将数组作为字符串返回 |