本文用于像我这样的菜鸟级别,大佬看在码子不易,给个赞(欢迎指错和指导),有的是本身写的,有的嫌麻烦复制的,此文主要用于之后进行内容回顾数组
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.多维数组
先接图一用:
传统若是要将此二维数组合并为一维数组要先拿到全部数组值,而后赋值给一个新数组,如:
先进行数组遍历:
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 相似,将数组做为字符串返回 |