JavaScript
文章平均质量分 79
JavaScript常见问题
CODER-V
全栈干货博主
展开
-
【最佳实践之性能篇】编码惯例与作用域意识
尊重对象所有权就意味着不要修改不属于你的对象。简单来说就是,如果你不负责创建和维护某个对象及其构造函数或方法,就不应该对其进行任何修改。具体来说就是遵循以下惯例:- 不要给实例或原型添加属性- 不要给实例或原型添加方法- 不要重定义已有的方法问题在于,假如有一个stopEvent()的方法用于取消某个事件的默认行为,你将其修改了,除了取消事件的默认行为还添加了其他行为,别人对于你添加的副作用并不知情,也使用了这个方法,就会导致别人出现错误或损失。原创 2023-03-14 20:42:14 · 198 阅读 · 0 评论 -
【JavaScript】this对象
this是一个特殊的对象,他在标准函数和箭头函数中又不同的行为。在标准函数中,this对象会在运行时绑定到执行函数的上下文,如果在全局函数中调用,则this在非严格模式下指向window,在严格模式下等于undefined。如果作为某个对象的方法调用,则this等于这个对象(因而this的指向需要看函数在哪里调用,而非在哪里定义)。这时候通常称其为this值原创 2023-03-14 11:35:52 · 190 阅读 · 0 评论 -
【JavaScript】原型、原型链与继承
(原型链)继承链:在子类实例的原型上创建父类实例,父类的构造器指向了上一级原型。原型也可能是一个实例,原型的原型又调用其父类构造器创建实例,其父类构造器指向了上一级原型,以此内推直到原型指向Object.prototype对象为止。原创 2023-03-13 21:05:05 · 347 阅读 · 0 评论 -
【JavaScript】垃圾回收与内存管理(内存优化)
我们以函数正常生命周期为例,函数中的变量会在函数执行时存在,当函数执行完毕时,就不再需要哪些局部变量了,它占用的内存就可以释放掉,供后面的使用。而在引用计数策略下,objA和objB在函数执行结束后依然存在,因为它们的引用数永远不会变成0.如果函数被多次调用,则会导致大量的内存永远得不到释放,为此引用计数就被弃用掉了,转用标记清理策略,事实上引用计数的问题还不于此,但这里就不作介绍了。这种策略也被称为词法作用域,因为变量的作用域是由代码中变量声明的位置决定的,而不是有代码执行时的上下文决定的。原创 2023-03-13 16:22:18 · 689 阅读 · 0 评论 -
【JavaScript】执行上下文与作用域、作用域链
执行上下文(简称上下文)在编程语言中是一个极为重要的概念。它是一个包含执行时所需信息的数据结构,包括全局执行上下文和函数执行上下文等。变量或函数的上下文决定了它们可以访问哪些数据,以及它们的行为。每个上下文的数据和函数都保存在一个与之关联的变量对象中,虽然无法直接通过代码访问变量对象,但是后台处理数据的时会用到它们。原创 2023-03-13 10:56:02 · 441 阅读 · 0 评论 -
【GoF 23】篇4:原型模式
原型模式简单来说就是将原对象拷贝一份,然后在副本上进行相应的操作,但是原对象不会产生任何变化,可以提高效率。在JavaScript中Object对象就是所有对象的顶级原型,所有对象都有一个原型即Object,原型是JavaScript实现继承的基础。原型链就是对象逐层继承的一个链式。原型链就是描述一些列原型对象的继承关系的链式结构。原型的实现是基于拷贝的,但是注意是**深拷贝**,至于为什么我想不必我多言。原型链的理解很简单,这里就不作代码演示。>注意:copy和new是有区别的。>- n原创 2023-03-11 16:24:08 · 83 阅读 · 0 评论 -
【Java代码与架构之完美优化】篇1:代码质量优化通用准则
long类型的变量定义,都需要在后边跟上小写l或大写L,而小写l与数字1十分形似,难以分辨,者大大降低了程序的可读性,因而在定义long类型变量的时候,统一使用大写的L来标识变量。原创 2023-03-08 19:49:49 · 510 阅读 · 0 评论 -
DOM 对象所有属性方法介绍,看这一篇就够了!
注意,在 1 级 DOM 中,HTMLDocument 定义了一个名为 getElementById() 的非常有用的方法。这些集合属性都源自于 0 级 DOM。很多属性和方法都是 HTMLCollection 对象(实际上是可以用数组或名称索引的只读数组),其中保存了对锚、表单、链接以及其他可脚本元素的引用。Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。write() 方法值得注意,在文档载入和解析的时候,它允许一个脚本向文档中插入动态生成的内容。原创 2023-02-22 07:16:04 · 5041 阅读 · 0 评论 -
Browser 对象所有属性和方法介绍,看这一篇就够了!
不过 Anchor 对象表示的是文档中的超链接,Location 对象表示的却是浏览器当前显示的文档的 URL(或位置)。如果把一个含有 URL 的字符串赋予 Location 对象或它的 href 属性,浏览器就会把新的 URL 所指的文档装载进来,并显示出来。除了 URL 属性外,Location 对象的 reload() 方法可以重新装载当前文档,replace() 可以装载一个新文档而无须为它创建一个新的历史记录,也就是说,在浏览器的历史列表中,新文档将替换当前文档。原创 2023-02-22 07:02:37 · 657 阅读 · 0 评论 -
JavaScript 对象所有方法介绍,看这一篇就够了!
实际上,ECMAScript 标准没有规定全局对象的类型,JavaScript 的实现或嵌入的 JavaScript 都可以把任意类型的对象作为全局对象,只要该对象定义了这里列出的基本属性和函数。但通常不必用这种方式引用全局对象,因为全局对象是作用域链的头,这意味着所有非限定性的变量和函数名都会作为该对象的属性来查询。全局对象是作用域链的头,还意味着在顶层 JavaScript 代码中声明的所有变量都将成为全局对象的属性。全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。原创 2023-02-22 06:49:51 · 762 阅读 · 0 评论