javascript 基础

260 阅读2分钟

变量声明

当变量声明和函数声明同时存在,函数声明会覆盖变量声明,但是如果变量有赋值的话就会是变量的值

commonJS是一种规定,标准 promises就是他提出的一种规范

封装mybind

  • bind与call、apply的区别,他不会执行函数
  • 可以接受参数、改变this指向
  • 他是函数原型上的方法,所以需要返回出一个函数
Function.prototype.myBind = function(page,...info){
    return ()=>{
        this.call(page,...info)
    }
}

在字符串中找出其中的最大数

  • 遍历字符串,找出每一个字符
  • 利用对象键的唯一性,找出每一个字符出现几次
var str = "assadfghjkl";
var obj = {}
for(var i=0; i<str.length;i++){
    var val = str.charAt(i);
    if(!obj[val]){
        obj[val] = 1;
    }else{
        obj[val]++
    }
}
  • 遍历对象拿出出现最多的
var max = 0 ;
var most = 0;
for(var i in obj){
    if(obj[i] > max){
        max = obj[i];
        most = i;
    }
}

输入字符串,输出他的倒数

  <script>
        var str = document.getElementById("str");
        var btn = document.getElementById("btn");
        var arr = ["h" , "e" , "l" , "l" , "o"];
        console.log(arr.reverse())
        btn.onclick = function(){
           console.log(str.value.split("").reverse())
        }
        
    </script>
  1. 类型判断

typeof判断数据类型? no! no! no!
function typeof(obj) {
    let res = Object.prototype.toString().call(obj);   //"[object Date]" 直接拿来判断也可以, 感觉不好看的话,截取一下嘛
    res = res.split('')[1].substring(0, res.length - 1).toLowerCase();
    return res;
}

数组扁平化

其实就是[1,[2,[3]]]变成[1,2,3]

[1,[2,[3]]].falt()
该方法就可以实现这个效果

DOM操作

  • 获取节点:

    • children: 属性返回报错子元素集合(只返回元素节点『标签』)
    • childNodes: 返回子元素内所有数据(文本(text 节点))image.png
    • prentNode:获取父节点
    • offsetPrent:指向最近定位过的父元素
    • firstChild | lastChild: 获取元素的首尾节点(会获取到折行)
    • firstElementChild | lastElementChild: 获取元素的首尾节点(解决折行问题) 高级浏览器使用
    • nextSibiling | nextElementSibiling :获取下一个兄弟节点
    • previousSibiling: 获取上一个兄弟节点
  • 创建节点

    • createElement('p'): 创建标签
    • createTextNode('超超'): 创建文本节点
  • 追加节点

    • ul.appendChild('li':)向元素末尾追加元素
    • insertBefore('div', 'p'): 在div元素之前插入p标签
  • 删除节点

    • remove(): 移出元素
    • removeChild():接受一个参数,要删除的元素节点
  • 替换元素

    • replaceChild():方法接受两个参数,要插入的节点&& 替换的节点
  • 复制元素

    • choneNode():方法拷贝节点并返回节点副本(接受一个参数来决定要不要复制内容,默认是false,不复制内容)
  • 获取节点

    • queryselect: 获取节点
    • querySelectAll: 获取节点组
  • 获取与设置属性

    • getAttribute(): 接受一个参数,要获取的属性, 获取属性的值
    • steAttribute(): 接受两个参数,需要设置的属性,需要设置的属性值