首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不应该在"删除"之后尝试使用"this"值?

在编程中,当您删除一个对象或变量时,您实际上是在释放该对象或变量所占用的内存。在某些编程语言中,尝试使用已删除的对象或变量可能会导致错误或未定义的行为。因此,在删除对象或变量后,您应该避免再次使用它们。

例如,在JavaScript中,当您删除一个对象或变量时,您可以使用delete关键字。但是,如果您尝试在删除后访问该对象或变量,将会收到一个错误,因为该对象或变量已经被删除并不再存在。

因此,为了避免出现错误或未定义的行为,您应该在删除对象或变量后,不再尝试使用它们。如果您需要在删除后继续使用该对象或变量,您应该考虑使用其他方法,例如将其值设置为nullundefined,以便在删除后仍然可以访问它们,但是需要注意的是,这样做可能会导致内存泄漏,因此需要谨慎使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么你永远不应该在CSS中使用px来设置字体大小

在Josh Collinsworth的博客文章“永远不要用px作为字体大小”中,作者讨论了为什么不应使用像素(px)作为网页字体大小的单位[1]。...在我们讨论为什么应该避免使用 px 作为 font-size 之前,让我们确保我们都清楚我们正在谈论哪些单位,以及它们的一般行为。...现在让我们回答为什么使用哪个单位很重要。 为什么这一切都很重要 再次强调的误解是:既然 1em 和 16px 相等,那么选择哪个单位并不重要。...即便如此,仍建议使用 clamp() 或媒体查询来设置最小和最大,因为屏幕尺寸往往远远超出我们所期望或测试的范围。...因此,仍然有一个微小的侧边栏,里面塞满了难以辨认的巨大文本,因为没有考虑用户的偏好。在那之后立即改为 rem ,问题得到了解决。

1.6K20

使用两年之后为什么卸载了Istio?

作者 | Eric Fossas 译者 | 刘雅梦 策划 | Tina 在生产中使用了 Istio 近两年之后,我们要和它说再见了。 服务网络大战正在肆虐。现在把票投给了 Linkerd。...很少相信这些功能是有用的,或者认为这不应该是由 Sidecar 代理来处理的功能。它们经常被错误地用来尝试解决一个本该以其他方式解决的问题。 但另一方面服务网格很难。...不在审查集群上使用服务网格。把审查应用程序放到服务网格中有太多的问题需要解决了。 1为什么卸载了 Istio? 简而言之,因为操作复杂。...这意味着必须离开后再回来升级到最新的 Istio 版本。 2当初为什么会选择 Istio ?...在比较了所有的服务网格之后最终选择了 Linkerd,也就是最初的那个。其他的要么想偷偷进入供应商锁定,要么只是没有按照想要的方式工作(比如 Maesh,它向节点添加是代理而不是 Pod)。

63820

【译】怎样修改 HashMap 的 Key?

此外,remove() 方法返回从 map 中删除。 接下来,让我们通过一个例子来看看这种方法是如何工作的。...永不修改 HashMap 中的键 首先,我们不应该在 Java 的 HashMap 中使用一个可变对象作为键,因为这可能导致潜在的问题和意外的行为。...因此,我们不应该在 HashMap 中使用可变对象作为键。更进一步,我们永远不应该修改键。 4. 结论 在本文中,我们学习了remove() 然后 put()方法来替换 HashMap 中的一个键。...此外,我们通过一个例子讨论了为什么我们应该避免在 HashMap 中使用可变对象作为键,以及为什么我们永远不应该修改 HashMap 中的键。...Eric 这个 Key put 之后该在哪里)。

52431

React 面试必知必会 Day9

大家好,是洛竹?,一只住在杭城的木系前端??‍♀️,如果你喜欢的文章?,可以通过点赞帮我聚集灵力⭐️。 本文翻译自 sudheerj/reactjs-interview-questions 1....我们需要使用对象来将 props 映射到组件。 例如,一个切换组件可以根据 page props 显示不同的页面。 import HomePage from '....因为 this.props 和 this.state 可能被异步更新,你不应该依赖它们的来计算下一个状态。 这个计数器的例子将无法按预期更新。...为什么组件名称要以大写字母开头? 如果你使用 JSX 渲染你的组件,该组件的名称必须以大写字母开头,否则 React 将抛出一个错误,即未识别的标签。...当使用 ES6 类时,你应该在构造函数中初始化状态,而当使用 React.createClass() 时,应该在 getInitialState() 方法中初始化状态。

1K30

python 元组删除某个元素_python二维数组

大家好,又见面了,是你们的朋友全栈君。 想写一些东西从数组中删除一个特定的元素。 知道必须for遍历数组以查找与内容匹配的元素。...假设有一系列电子邮件,并且想摆脱与某些电子邮件字符串匹配的元素。 实际上想使用for循环结构,因为还需要对其他数组使用相同的索引。...使用for循环,以便可以重用索引 您不应该在迭代列表时更改列表。 为什么不应该这样做? 也对不起作用。...看一下这个:在迭代过程中,您不得修改列表 @cularis更喜欢Bogdans的答案,但是如果您随后中断了for循环,可以一次修改列表吗? 您也可以以相反的顺序遍历列表。...然后,删除的元素索引将引用最后检查的元素,但是当索引递减时,它将指向您要检查的下一个元素。 不相信此行为受支持,但在迄今为止的版本中效果很好,因此很有用。 您不需要迭代数组。

1.7K20

盘点Hadoop让人讨厌的12件事

对于启动,在认证之后,它不传递信息给 Hive 或 WebHDFS 或你正在访问的东西,但是会启动它。 7....Hive 不会让制作外部表格,但也不会删除它 如果你让 Hive 来管理表格,要是你终止对表格的使用的话,它会自动将它们全部删除。如果你有一个外部表格,它就不会将它删除。...为什么不能有一个“也删除外部表”的功能呢?为什么必须在外部删除?还有,当 Hive 特别是与 RDBMS 一起应用时,为什么不能有 Update 和 Delete 功能? 8....确定它会变得更好,但是“手动安装之后”或者“我们已经创建了一个备份脚本”,这些不应该出现在的邮件和文档中。 11. 知识库管理 说到Ambari,当知识正在升级的时候,你有完成过安装吗?...Null 指针异常 经常在运行过程中遇到这样的转换错误,换句话说,他们不应该在Pig、Hive 等数据查询和处理工具中被表示为 Null 指针异常。对任何相似的抱怨,都会有的答复,“欢迎补丁!”

79980

一言难尽,Jpa这个功能差点让丢了工作

其实这是一个非常危险的功能,个人觉得不应该提供这种功能,只要留了口子就有可能会出问题。...像删除,DDL 操作这种权限就留给管理员账号就行了,不然很容易出事。 应用中的框架有 DDL 操作的功能,一律禁止使用 这次的问题,除了开发人员的大意,最主要就是框架中自带了 DDL 的功能。...像这种功能就应该禁止使用。 所有的表结构应该在上线之前确认好,最好手动执行,像 DDL 这种操作本身就会锁表,应该在业务低峰期去做。交给程序自动做不靠谱。...记得我们之前在代码中也有去自动创建表的逻辑,在 code review 的时候被指了出来,然后就去掉了。虽然说是为了使用更方便,但是增加了线上数据库的风险。...相关推荐 笑话:大厂都在用的任务调度框架能不知道吗??? 为什么参与开源项目的程序员找工作时特别抢手?

1K20

这12件事让很讨厌Hadoop

长时间的使用Hadoop,他发现了这12件事情真的影响了Hadoop的易用性。 Hadoop是一个很神奇的创造,但它发展过快而表现出一些瑕疵。爱大象,大象也爱我。...Hive 不会让制作外部表格,但也不会删除它 如果你让 Hive 来管理表格,要是你终止对表格的使用的话,它会自动将它们全部删除。如果你有一个外部表格,它就不会将它删除。...为什么不能有一个“也删除外部表”的功能呢?为什么必须在外部删除?还有,当 Hive 特别是与 RDBMS 一起应用时,为什么不能有 Update 和 Delete 功能? 8....确定它会变得更好,但是“手动安装之后”或者“我们已经创建了一个备份脚本”,这些不应该出现在的邮件和文档中。 11. 知识库管理 说到Ambari,当知识正在升级的时候,你有完成过安装吗?...Null 指针异常 经常在运行过程中遇到这样的转换错误,换句话说,他们不应该在Pig、Hive 等数据查询和处理工具中被表示为 Null 指针异常。对任何相似的抱怨,都会有的答复,“欢迎补丁!”

80180

Ask Apple 2022 中与 Core Data 有关的问答

欢迎大家在 Discord 频道[2] 中进行更多地交流Q&A是否可以在 Core Data 中存储照片Q:你好,看到一些网站建议 Core Data 不应该用于保存照片,也许他们没注意到可以使用 "...Apple 模板( Xcode 提供的 Core Data 模版 )中有一个 fatalError,并提示它不应该在生产中使用,但如果的 Core Data Stack 没有正确实例化,的用户无法对的应用程序做任何事情...当 CKContainer 已经创建了对应的 Schema 后,应该在你的代码中删除或注释掉该行代码。...小组件的运行资源有限,譬如持久化历史事务清除的操作也不应该在小组件中进行处理。...给出的示例是删除所有超过 7 天的事务。但是,为什么是 7 天?为什么不是 14 天?非常希望一个可靠而具体的示例,说明如何安全地清除历史数据以防止磁盘空间浪费。A:清除历史记录是由客户决定的。

2.8K20

关于Objective C编码规范,这些你一定要会

优先使用auto-synthesis。但如果有必要,@synthesize和@dynamic应该在实现中每个都声明新的一行。 应该避免以冒号对齐的方式来调用方法。...任何被使用的注释都必须保持最新或被删除。 一般都避免使用块注释,因为代码尽可能做到自解释,只有当断断续续或几行代码时才需要注释。...方法 在方法签名中,应该在方法类型(-/+ 符号)之后有一个空格。在方法各个段之间应该也有一个空格(符合Apple的风格)。在参数之前应该包含一个具有描述性的关键字来描述参数。...为什么?即使你声明一个NSString的属性,有人可能传入一个NSMutableString的实例,然后在你没有注意的情况下修改它。...break; } 私有属性 私有属性应该在类的实现文件中的类扩展(匿名分类)中声明,命名分类(比如RWTPrivate或private)应该从不使用除非是扩展其他类。

41530

写了挺久的代码,却还被异常支配?

注:异常应该只用于异常的情况下,它们永远不应该用于正常的控制流,设计良好的 API 不应该强迫它的客户端为了正常的控制流而使用异常 Java 中提供了三种可抛出结构(throwable) :受检异常(checked...通过抛出受检异常,我们应该在一个 catch 子句中处理该异常,或者将它传播出去,让调用者处理。 ? 运行时异常 和 错误 都属于 非受检可抛出结构。它们都是不需要也不应该被捕获的可抛出结构。...这相当于,父类的方法好好的,被你一继承居然出现了异常,而且还可能不知道,这不是背地里砸招牌吗! finally 使用 对于一些代码,我们希望无论 try 块中的异常是否抛出,它们都能够得到执行。...,返回不是try或catch中保存的返回 异常使用指南 上面我们复习了一遍Java 中的异常,下面是一段来自 《Java 编程思想》 的摘要。...应该在下列情况下使用异常: 在恰当的级别处理问题。

54710

番外特别篇之 为什么不建议你直接使用UIImage传?--从一个诡异的相册九图连读崩溃bug谈起

再次尝试了各种可能的情况.图片大小?它是9张1.5M的图,就用9张3M的图,也是OK的呀!选取时,顺序有问题?试着按照录屏中演示的顺序去选取图片,也是OK的.一股深深地无力感!...能描述的,可能仅仅是我处理这个问题的一个相对的完整脑洞过程.部分分析过程间,明显不是有逻辑性的.越是诡异的问题,越是不能循规蹈矩,要时刻尝试去问自己最可能地问题是什么,而不是沿着一条路,一条道走到黑....,似乎总是很好~ 4.使用requestImageDataForAsset:替换的问题requestImageForAsset: 答案原文是: I found that if i switch from...回到问题本身,用一句概括就是:永远不要直接传递UIImage对象.在需要传递UIImage的场景中,请使用图片名或者NSData二进制对代替....真没想到,一个UIImage对象,竟然会二次引起高内存占用.最终的解决方法,就是在前一个页面传递 NSData数组,在赋值处,再使用imageWithData:转换为 UIImage.这样,内存使用基本没什么起伏

1.6K70

PHP面向对象编程基本原则

不要使用一个类来完成很复杂的功能,而是拆分设计成更小更具体的类。 那有的小伙伴又要问了,为什么这样做?...对对,倒数第二个同学问的好,下面就给大家说一下为什么:首先呢,就比如前后端分离,为什么前端主做页面展示,渲染效果,后端做业务逻辑,道理是一样的,专精一样,类也是一样,专职一件事,高效,而且呢维护性已经扩展性很高...一个类在实现之后,应该是对扩展开放,对修是改封闭的,不应使用修改来增加功能,而是通过扩展来增加功能。 这个你还要问为什么?那我就不告诉你了!!! 3. 依赖倒置:一个类,不应该强制依赖另一个类。...如:有A、B两个类,A需要依赖B类,不应该在A类中直接调用B类,而是要使用依赖注入的方式,通过使用诸如,将A类依赖的B类的对象注入给A类,B类对于A类来说就是可以替换的。...这个那个同学不用蠢蠢欲动想知道为什么了,来告诉你吧:这个是降低耦合度!什么?你不知道耦合度是什么了,那么请你出去,这里不适合你! 4. 配置化: 尽可能的使用配置,而不是使用硬编码。

66390

Google程序员他们是如何去做coder review的

Reviewer不应该要求开发人员对CL的每一个微小的部分进行打磨。相反,reviewer应该在项目的进展和reviewer的改进建议两者之间做好权衡。...开发者不应该在 CL内同时包含主要风格的改动与其他代码的修改,这样会导致难以看出CL到底做出什么改动。同时也会让合并和回滚更为复杂,并产生其他问题。...如果这个变更一开始就不应该发生,请立即回复并解释为什么不应该发生变更。当您拒绝这样的变更时,最好也向开发人员建议他们应该做什么。 例如,你可以说“看起来你在这方面做得不错,谢谢!”...你不必总是遵循这个习惯,但是当你说一些可能会让人心烦意乱或有争议的话时,你绝对应该使用这个习惯。例如: 反例:“为什么您在这里使用线程,但是没有从并发中获得任何好处?”...因为没有性能上的好处,所以这段代码最好是单线程的,而不是使用多线程。” 解释为什么 关于上面的正面示例,您将注意到的一件事是,它帮助开发人员理解您为什么要发表评论。

49520

安卓应用安全指南 5.3.2 将内部账户添加到账户管理器 规则书

,并且不应该被其他应用访问。...自己的登录界面不应该在用户应用一端准备。...这意味着,恶意应用无法通过尝试直接登录,或创建帐户来攻击帐户。 5.3.2.3 登录界面活动必须是公共活动,并假设其他应用的攻击访问(必需) 登录界面活动是由用户应用加载的系统。...5.3.2.8 应该在验证认证器是否正常之后,执行帐户流程(必需) 如果有多个认证器在设备中定义了相同的帐户类型,则先前安装的认证器将生效。 所以,安装自己的认证器之后,它不会被使用。...可以通过检查认证器的包的证书散列,是否匹配预先确认的有效证书散列,来验证分配给账户类型的认证器是否是正常的。

97620

Swift入门: 常量和变量

拥有这两个选项可能看起来毫无意义,毕竟你可以只创建一个变量,然后再也不更改它——为什么需要将它设为常量?好吧,结果发现很多程序员都很震惊!——编程不能做到百分百完美,我们会犯错误。...如果我们说“让这个日期成为一个常数,因为知道它永远不会改变”,然后10行之后尝试改变它,Xcode将拒绝构建我们的应用程序。 常量也很重要,因为它们让Xcode决定如何构建应用程序。...删除除import UIKit行之外的所有内容(这是引入苹果核心iOS框架的一部分,以后需要),并添加该变量。你应该看看下面的图片。...图片发自简书 因为这是一个变量,您可以随时更改它,但不应该每次都使用var关键字,这只在声明新变量时使用。...如果尝试使用同一变量名两次,将出现错误,如下所示: var name = "韦弦zhy" var name = "Swift" 如果Playground在你的代码中发现错误,它会在一个红色的框中标记一个警告

1K10

Java 异常处理的 9 个最佳实践

使用 Finally 代码块 与前面几行 try 代码块不同,finally 代码块总是会被执行。不管 try 代码块成功执行之后还是你在 catch 代码块中处理完异常后都会执行。...不要误会的意思,你不用去写一段文字。但你也应该在1-2个短句中解释异常的原因。这有助于你的运营团队了解问题的严重性,并且还可以让你更轻松地分析任何服务突发事件。...当你尝试首先捕获较不具体的异常时,它们会报告无法访问的代码块。 但问题在于,只有匹配异常的第一个 catch 块会被执行。...你可以在 catch 子句中使用它,但是你永远不应该这样做! 如果在 catch 子句中使用 Throwable ,它不仅会捕获所有异常,也将捕获所有的错误。...有人可能会在没有意识到会造成问题的情况下,删除阻止异常事件的验证。或者是抛出异常的代码被改变,现在抛出同一个类的多个异常,而调用的代码并不能阻止所有异常。

77090

代码洁癖系列(七):单元测试的地位

测试为什么要整洁 我们对待测试代码需要像对待生产代码一样,写之前需要进行严谨的思考、详细的设计。这里分享一下自己的学习编程的一些经历。...没有单元测试 刚毕业的时候,的代码可以说是年少轻狂,总是对自己充满自信。根本就不写单元测试,写完之后自测也是随意的点两下就算自测通过了。代码提交测试后,恐怖的事情就出现了,铺天盖地的bug向我袭来。...当我意识到这样做完全是费力不讨好的时候,决心每次写完代码之后,要写一段单元测试,保证单元测试通过后再提交。 随意的单元测试 在开始写单元测试之后的工作效率提高了很多,下班都比原来早了。...可重复(Repeatable) 测试应该在各种环境中可以重复执行,不论是你的本地环境,测试环境还是生产环境。测试都应该能够跑通。这样才能保证线上的质量,测试也才有意义。...自足验证(Self-Validating) 测试应该有布尔输出(最好使用断言),我们不应该通过查看日志来判断测试是否通过,更不应该通过人为比较两个文本是否相同来判断测试是否通过。

41830
领券