数组常用方法

注意:前面7种方法会改变原数组

1. push 后面追加元素

2. pop 后面删除元素

3. unshift 前面追加元素

4. shift 前面删除元素

5. splice 删除与增加,比如arr.splice(1, 1)arr.splice(1, 0, "lz")

6. reverse 倒序

7. sort 排序:

  • 从小到大

    var arr1 = [10, 1, 7, 66, 11]
    arr1.sort(function (a, b) {
        return a-b
    })
    
    // [1, 7, 10, 11, 66]
  • 从大到小

    var arr1 = [10, 1, 7, 66, 11]
    arr1.sort(function (a, b) {
          return b-a
    })
    
    // [66, 11, 10, 7, 1]

8. concat 拼接两个数组

9. join 数组转字符串

10. slice 截取

​ 说明:这个可以用于字符串,也可以用于数组

11. indexOf 查找元素

​ 说明: 返回索引

12. forEach 遍历

var arr = ["aaa", "bbb", "ccc", "ddd"]
arr.forEach(function (value, index) {
    console.log(value)
})

// aaa bbb ccc ddd

13. map 映射

var arr = [1, 2, 3, 4, 5]
var arr1 = arr.map(function (value) {
    return value * 2
})
console.log(arr1)

// [2, 4, 6, 8, 10]

14. filter 过滤

var arr = [11, 2, 4, 1, 5]
var arr1 = arr.filter(function (value) {
    return value > 4
})
console.log(arr1)

// [11, 5]

15. every

​ 说明:返回布尔值,如果数组里面的每一项都满足条件返回true,否则为false

var arr = [90, 90, 80, 100, 95]
var arr1 = arr.every(function (item) {
    return item >= 90
})
console.log(arr1);

// false

16. some

​ 说明:返回布尔值,只要数组中的有一项满足条件就返回true,否则为false

var arr = [90, 90, 80, 100, 95]
var arr1 = arr.some(function (a) {
    return a >= 100
})
console.log(arr1);

// true

17. find

​ 说明:返回第一个满足条件的数组元素

var arr = [
    {
        name: "语文",
        grade: 90
    },
    {
        name: "数学",
        grade: 85
    },
    {
        name: "英语",
        grade: 100
    },

]
var arr1 = arr.find(function (item) {
    return item.grade >= 90
})
console.log(arr1)

// {name: '语文', grade: 90}

18. reduce

​ 说明: 每一次运行 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。

var arr = [1, 2, 3, 4, 5]
var arr1 = arr.reduce(function (accumulator, currentValue) {
    return accumulator + currentValue
})
console.log(arr1);

// 15

字符串常用方法

1. charAt

var str = "liuzhe"
var str1 = str.charAt(2)
console.log(str1)

// u

2. charCodeAt

var str = "liuzhe"
var str1 = str.charCodeAt(2)
console.log(str1)

// 117

3. fromCharCode 获取26个字母

var arr = []
for (var i = 65; i < 91; i++) {
    arr.push(String.fromCharCode(i))
}
console.log(arr)

// ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

4. toLocaleUpperCase && toLocaleLowerCase 大小写的转换

var str1 = "ASDasd", str2 = "ZXCzxc"
console.log(str1.toLocaleUpperCase())
console.log(str2.toLocaleLowerCase())

// ASDASD
// zxczxc

5. substr(开始索引,长度) && substring(开始索引,结束索引) 字符串的截取

6. replace 替换

7. split 分割 字符串转成数组

var str = "abcd"
console.log(str.split(""))

// ['a', 'b', 'c', 'd']

8. trim 去掉首尾空格

var str = "   abcd   "
console.log("|" + str + "|", "|" + str.trim() + "|")


// |   abcd   | |abcd|

new Date()常用方法

​ 注意:获取月份时记得加1

var date=new Date()
console.log(date.getFullYear())//年
console.log(date.getMonth()+1)//月
console.log(date.getDate())//日
console.log(date.getDay())//星期
console.log(date.getHours())
console.log(date.getMinutes())
console.log(date.getSeconds())


//时间戳  getTime()
console.log(date.getTime())

//修改
date.setFullYear(2020)
console.log(date)

浏览器相关

1. 事件

// 页面所有资源加载完成后执行
onload=function(){
    console.log("加载完成")
}
        
// 窗口大小改变就会执行
onresize=function(){
    console.log("resize")
}

//滚动条滚动就会执行 
onscroll=function(){
    console.log("scroll")
}

2. 滚动距离

window.document.documentElement.scrollTop||window.document.body.scrollTop

3. 回到顶部

window.scrollTo(0,0)

4. 本地存储

// 存储
localStorage.setItem("age","19")

// 获取
localStorage.getItem("age")

// 移除
localStorage.removeItem("age")

// 清除
localStorage.clear()

给dom标签挂标识

1. 新建原生属性

var a=document.getElementById("box")
a.setAttribute("name","teichui")

// <div id="box" name="teichui"></div>

2. 获取原生属性的值

console.log(a.getAttribute("name"))

// teichui

3. 移除原生属性

a.removeAttribute("name")

4. dataset

a.dataset.xiaoming="111"

//<div id="box" data-xiaoming="111"></div>


// 删除
delete a.dataset.xiaoming

操作dom类名

1. className(可以赋值,不会去重)

var a=document.querySelector("#box")
a.className="box1 box2"

// <div id="box" class="box1 box2"></div>

2. classList(会自动去重)

//增加 
a.classList.add("box4")

// 移除
a.classList.remove("box2")

获取指定dom的某个节点

var a=document.querySelector("#box")
// 获取所有子节点
console.log(a.children)

// 获取第一个元素子节点
console.log(a.firstElementChild)

// 获取上一个兄弟节点
console.log(a.previousElementSibling)

// 获取下一个兄弟节点
console.log(a.nextElementSibling)

操作dom节点

var a=document.querySelector('#aa')
var b=document.querySelector('#bb')

// 创建节点
var odiv=document.createElement('div')//创建节点
odiv.innerHTML='我是新的'

// 插入子节点
a.appendChild(odiv)

// 在谁的前面插入
a.insertBefore(odiv,bb)

// 删除子节点
a.removeChild(bb)

// 删除自己以及后代
a.remove()

// 节点的替换 replaceChild(新的节点,老的节点)

// 节点的克隆  cloneNode()
// false  不克隆后代
// true    克隆后代
var clon=a.cloneNode(true)