变量声明
当变量声明和函数声明同时存在,函数声明会覆盖变量声明,但是如果变量有赋值的话就会是变量的值
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>
-
类型判断
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 节点))
- 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(): 接受两个参数,需要设置的属性,需要设置的属性值