以链表形式构建的堆栈数据结构,可以实现动态增加节点,无需预先分配内存。
空类型:undefined null 值类型:基本数据类型 String Number Boolean 引用型:复杂数据类型 Object Array 对象
值类型的值在栈空间存储,引用类型的对象在堆中存储,地址在栈中存储 基本类型(值类型)在调用函数的时候,传递的是值 引用类型,在函数调用的时候,传递的是地址(引用)
null值表示一个空对象指针,而这也正是使用typeof操作符检测null值会返回“object”的原因,所以null放在堆中存储
Array.of 创建一个包含所有参数的数组
Array.from 接受可迭代对象或类数组对象,最终返回一个数组
Array.fill 用指定的值填充一至多个数组元素
copyWithin方法
闭包:实现在函数内部的函数 闭包的作用:
闭包的缺点:
实现属性私有化: 通过闭包实现
var ClassA = function()
{
var name = "yourname"; //私有属性
var privateMethod = function() //私有方法
{
alert("private");
};
//getter
this.getName = function() {
privateMethod();
return name;
}
//setter
this.setName = function(newName)
{
name = newName;
}
};
不改变数组的方法:
改变数组的方法
怎么判断对象是数组的
function judgeArr(arr){
return Array.isArray(arr); //或者 Object.prototype.toString.call(arr) == '[object Array]'
}
isArray是Array的方法
js有如下两种数据需要经常遍历 数组(Array) 对象(Object)
同时又提供了如下8种方法方便我们遍历元素
forEach方法放入break会报错,return也无法跳出循环 如果需要在遍历中跳出循环,可以使用Array.some()[return true时跳出循环]或者Array.every()[return false时跳出循环]
遍历,== 或者 === 判断即可
事件捕获 指的是从document到触发事件的那个节点,即自上而下的去触发事件。相反的,事件冒泡 是自下而上的去触发事件。绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获。true,事件捕获;false,事件冒泡。默认false,即事件冒泡。Jquery的e.stopPropagation会阻止冒泡,意思就是到我为止,我的爹和祖宗的事件就不要触发了。
至于为什么会并存两种完全不同的触发顺序,是因为IE用的是冒泡,其他都是捕获顺序。
当网页中需要触发事件的对象比较多的时候,为了避免内存泄漏,我们把事件委托到其父对象上,比如li上的事件委托到ul上,也可以称为交给ul进行代理。
$("ul").on("mouseover",function(e){
$(e.target).css("background-color","#ddd").siblings().css("background-color","white");
})
e.target可以判断事件发生的源节点。 event.target返回触发事件的元。 event.currentTarget返回绑定事件的元素。
CSS方法
opacity: 0
通过调整透明度从视觉上隐藏元素,元素依旧占据位置并对网页的布局起作用,也会影响用户交互。visibility: hidden
设置可见或者不可见,被隐藏的元素依然会对网页布局起作用,但不会影响用户交互。diaplsy: none
隐藏元素,确保元素不可见并且连盒模型也不生成,被隐藏的元素不占据任何空间。position:absolute
配合 top 和 left 属性,将元素移出可视区域,不会影响布局,又能让元素保持可操作。JS方法
DomNode.delete(Node)
通过JS来删除DOM树的节点,实现元素隐藏,缺点是如果要再显示该节点,需要添加该节点参考文章 JavaScript 深拷贝性能分析 - 前端进阶 - SegmentFault 思否 使用slice和concat对数组的深拷贝和浅拷贝 - 白杨-M - 博客园
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有