js 基础知识记忆点

1. js 简单的隐式转换

1. 转为string类型
        console.log(1 + 'str');//1str
        console.log(-1 + 'str');//-1str
        console.log(0 + 'str');//0str
        conlose.log(NaN+'str');//NaNstr
        console.log(true + 'str');//truestr
        console.log(false + 'str');//falsestr
        console.log(null + 'str');//nullstr
        console.log(undefined + 'str');//undefined
        console.log(NaN+'str');//NaNstr

总结:num、Boolean、null、undefined 和 str 一起,隐式转换为 str 类型。


#### 2.转为number类型
        console.log('' + 1)//'1'             
        console.log('a' + 1);//'a1'
        console.log('1' + 1);//'11'
        console.log(NaN + 1);//NaN
        console.log(true + 1);//2
        console.log(false + 1);//1
        console.log(null + 1);//1
        console.log(undefined + 1);//NaN

总结:除了 str 类型,Boolean、null、undefined 与num一起 && ( ? + - * / % ),则Boolean、null、undefined 会隐式转换为 num 进行计算。

3. 转成boolean类型

!: 有此(逻辑非运算符)就会发生此类隐式转换

        console.log(!1);//false
        console.log(!-1);//false
        console.log(!0);//true
        console.log(!NaN)//true
        console.log(!'')//true
        console.log(!'a');//false
        console.log(!'1');//false
        console.log(!true);//false
        console.log(!false);//true
        console.log(!null);//true
        console.log(!undefined)//true
        console.log(![]) //false
        console.log(![1, 2, 3])//false
        console.log(!{})//false
        console.log(!{ a: 1 })//false

2. 数组常用的方法

  1. concat()
arr3 = arr2.concat(arr1)
  1. copyWithin()
let arr = ['a','b','c']
arr.copyWithin(2.0)
// ['a','b','a']
  1. entry()
    entry() 方法返回一个带有键/值对的数组迭代器对象。
  1. every()
    every() 方法检查 数组中的所有元素 是否 都 通过了测试(作为函数提供)。
arrs、fun()、every():  arrs.every(fun(arr)
如果arrs的每一个元素都能使得 fun() 返回 true,则 arrs.every(fun(arr) 为true。

let arr = ['4','5','6']
function checkNUm(num){
    return num >= 2;
}
result = arr.every(checkNUm)
console.log(result) //true
  1. fill()
let arr = ['4','5','6']
result = arr.fill('ss')
console.log(result)
//['ss', 'ss', 'ss']
  1. filter()
arrs、fun()、filter():  arrs.filter(fun(arr)
arrs的元素由 fun()判断 并返回,所有返回的元素形成新的数组。
let arr = ['4','5','6']
function checkNUm(num){
    return num >= 5;
}
result = arr.filter(checkNUm)
console.log(result) 
// ['5', '6']
  1. find()
find() 方法返回数组中通过测试的第一个元素的值(作为函数提供)。
  1. findIndex()
findIndex() 方法返回数组中通过测试的第一个元素的索引(作为函数提供)。
  1. forEach()
方法对数组的每个元素执行一次提供的函数。
var array = ['a', 'b', 'c'];
array.forEach(function(element) {
  console.log(element);
});
  1. includes()
 可以判断一个数组中是否包含某一个元素,并返回true 或者false;
 includes可以包含两个参数,第二个参数表示判断的起始位置
['4','5','6'].includes('5') //true
['4','5','6'].includes('5',2) // false
  1. indexOf()
indexOf() 方法在数组中搜索指定项,并返回其位置。
  1. lastIndexOf()

  1. isArray()
isArray() 方法确定对象是否是数组。如果对象是数组,Thinction 返回 true,否则返回 false
  1. join()
    将数组的元素转换为字符串。join() 方法将数组作为字符串返回。
    join('#')传入的参数 '#' 作为分隔符。 
  1. map()
map() 方法使用为每个数组元素调用函数的结果创建一个新数组。
var arr1 = [0,2,4,6,8];
var newArr = arr1.map(function(item,index,arr1){       
            console.log(arr1);
            return item/2;
 });
 console.log(newArr);

9-15. forEach() VS map()

same:
1.都是循环遍历数组中的每一项

2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组)

3.匿名函数中的this都是指向window

4.只能遍历数组

difference:
1.map()会分配内存空间存储新数组并返回,forEach()不会返回数据。

2.forEach()允许callback更改原始数组的元素。map()返回新的数组。
  1. pop()
pop() 方法删除数组的最后一个元素,并返回该元素。
  1. push()
push() 方法将新项添加到数组的末尾,并返回新长度。
  1. shift()
shift()方法:删除数组的第一项
  1. unshift()
unshift()方法: 在数组的第一项增加元素
  1. reduce()
reduce() 方法为数组的每个值(从左到右)执行提供的函数,并将数组缩减为单个值。
// 1.数组求和
var arr1 = [1,5,8,6,15,78,65,25,48,55]
var sum = arr1.reduce(function(total,currentValue){
  return total+currentValue;
});
console.log(sum);//306
var eachSum = 0;
arr1.forEach(function(currentValue){
  eachSum += currentValue;
})
console.log(eachSum);//306
//2.合并二维数组
var twoArr = [['mu','zi'],['dig','big'],['lucky','jiji']];
var oneArr = twoArr.reduce(function(total,currentValue){
  // console.log(total)
  return total.concat(currentValue);
})
console.log(oneArr);//["mu", "zi", "dig", "big", "lucky", "jiji"]
//3.统计一个数组中有多少个不重复的单词:
// 不用reduce时: 
var arr = ["apple","orange","apple","orange","pear","orange"]; 
function getWordCnt(){ 
  var obj = {}; 
  for(var i= 0, l = arr.length; i< l; i++){ 
    var item = arr[i]; 
    obj[item] = (obj[item] +1 ) || 1; 
  } 
  return obj; 
}
console.log(getWordCnt());//{apple: 2, orange: 3, pear: 1}
// 用reduce时: 
var arr = ["apple","orange","apple","orange","pear","orange"]; 
function getWordCnt(){ 
  return arr.reduce(function(prev,next){ 
    prev[next] = (prev[next] + 1) || 1; 
    return prev; 
  },{}); 
} 
console.log(getWordCnt());//{apple: 2, orange: 3, pear: 1}


  1. reduceRight()
reduceRight() 方法为数组的每个值(从右到左)执行提供的函数,并将数组缩减为单个值
  1. reverse()
reverse() 方法反转数组中元素的顺序。
  1. some()
some() 方法检查数组中的任何元素是否通过测试(作为函数提供)。它为数组中存在的每个元素执行一次函数。

23& some() VS every()

same:
every()与some()方法都是JS中数组的迭代方法。
different:
every()是对数组中每一项运行给定函数,如果该函数对  每一项   返回true,则返回true。
some()是对数组中每一项运行给定函数,如果该函数对  任一项  返回true,则返回true。

some一直在找符合条件的值,一旦找到,则不会继续迭代下去。
every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。
  1. slice()
    截取元素:
slice() 方法选择从给定 start 参数开始的元素,并以给定的 end 参数结束,但不包括。它将数组中的选定元素作为新的数组对象返回。
  1. splice()
splice() 方法从数组添加/删除项目,并返回删除的项目。

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

  1. sort()
sort() 方法对数组的项进行排序。
//arr.sort([compareFunction])
//数字排序(数字和升序)
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
1,5,10,25,40,100
  1. toString()
  2. valueOf()
valueOf() 方法返回数组。
该方法是数组对象的默认方法。
Array.valueOf() 将返回与 Array 相同的值。

引用: https://baijiahao.baidu.com/s?id=1710342804738121121&wfr=spider&for=pc https://www.jb51.net/article/154881.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值