js中你不知道的一些概念知识(代码片段)

一百个Chocolate 一百个Chocolate     2022-12-31     216

关键词:

DOM 元素 e 的 e.getAttribute(propName)和 e.propName 有什么区别和联系

  • e.getAttribute(),是标准 DOM 操作文档元素属性的方法,具有通用性可在任意文档上使用,返回元素在源文件中设置的属性
  • e.propName 通常是在 HTML 文档中访问特定元素的特性,浏览器解析元素后生成对应对象(如 a 标签生成 HTMLAnchorElement),这些对象的特性会根据特定规则结合属性设置得到,对于没有对应特性的属性,只能使用 getAttribute 进行访问
  • e.getAttribute()返回值是源文件中设置的值,类型是字符串或者 null(有的实现返回"")
  • e.propName 返回值可能是字符串、布尔值、对象、undefined 等
  • 大部分 attribute 与 property 是一一对应关系,修改其中一个会影响另一个,如 id,title 等属性
  • 一些布尔属性<input hidden/>的检测设置需要 hasAttribute 和 removeAttribute 来完成,或者设置对应 property
  • <a href="../index.html">link</a>中 href 属性,转换成 property 的时候需要通过转换得到完整 URL
  • 一些 attribute 和 property 不是一一对应如:form 控件中<input value="hello"/>对应的是 defaultValue,修改或设置 value property 修改的是控件当前值,setAttribute 修改 value 属性不会改变 value property

offsetWidth/offsetHeight,clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别

  • offsetWidth/offsetHeight 返回值包含content + padding + border,效果与 e.getBoundingClientRect()相同
  • clientWidth/clientHeight 返回值只包含content + padding,如果有滚动条,也不包含滚动条
  • scrollWidth/scrollHeight 返回值包含content + padding + 溢出内容的尺寸

Measuring Element Dimension and Location with CSSOM in Windows Internet Explorer 9

https://docs.microsoft.com/en-us/previous-versions//hh781509(v=vs.85)?redirectedfrom=MSDN

XMLHttpRequest 通用属性和方法

  1. readyState:表示请求状态的整数,取值:
  • UNSENT(0):对象已创建
  • OPENED(1):open()成功调用,在这个状态下,可以为 xhr 设置请求头,或者使用 send()发送请求
  • HEADERS_RECEIVED(2):所有重定向已经自动完成访问,并且最终响应的 HTTP 头已经收到
  • LOADING(3):响应体正在接收
  • DONE(4):数据传输完成或者传输产生错误
  1. onreadystatechange:readyState 改变时调用的函数
  2. status:服务器返回的 HTTP 状态码(如,200, 404)
  3. statusText:服务器返回的 HTTP 状态信息(如,OK,No Content)
  4. responseText:作为字符串形式的来自服务器的完整响应
  5. responseXML: Document 对象,表示服务器的响应解析成的 XML 文档
  6. abort():取消异步 HTTP 请求
  7. getAllResponseHeaders(): 返回一个字符串,包含响应中服务器发送的全部 HTTP 报头。每个报头都是一个用冒号分隔开的名/值对,并且使用一个回车/换行来分隔报头行
  8. getResponseHeader(headerName):返回 headName 对应的报头值
  9. open(method, url, asynchronous [, user, password]):初始化准备发送到服务器上的请求。method 是 HTTP 方法,不区分大小写;url 是请求发送的相对或绝对 URL;asynchronous 表示请求是否异步;user 和 password 提供身份验证
  10. setRequestHeader(name, value):设置 HTTP 报头
  11. send(body):对服务器请求进行初始化。参数 body 包含请求的主体部分,对于 POST 请求为键值对字符串;对于 GET 请求,为 null

「译」foreach循环中你不知道的3件事(代码片段)

前言本文925字,阅读大约需要7分钟。总括:forEach循环中你不知道的3件事。原文地址:3thingsyoudidn’tknowabouttheforEachloopinJS公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍自弃者扶不起,自强者击不倒。正文你... 查看详情

vue中你不知道但却很实用的黑科技(代码片段)

最近数月一直投身于iView的开源工作中,完成了大大小小30多个UI组件,在Vue组件化开发中积累了不少经验。其中也有很多带有技巧性和黑科技的组件,这些特性有的是Vue文档中提到但却容易被忽略的,有的更是没有写在文档里,... 查看详情

asp.netcore中间件应用实践中你不知道的那些事(代码片段)

一、概述这篇文章主要分享Endpoint终结点路由的中间件的应用场景及实践案例,不讲述其工作原理,如果需要了解工作原理的同学,可以点击查看以下两篇解读文章:Asp.NetCoreEndPoint终结点路由工作原理解读ASP.NETCORE管道模型及中... 查看详情

java8中你可能不知道的一些地方之stream实战(代码片段)

Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。Optional对象构建&值获取方法实例代码如下Optional<Str... 查看详情

java8中你可能不知道的一些地方之optional实战(代码片段)

Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。Optional对象构建&值获取方法实例代码如下Optional<Str... 查看详情

并发编程并发编程中你需要知道的基础概念(代码片段)

本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。并发编程系列博客传送门多线程是Java编程中一块非常重要的内容,其中涉及到很多概念。这... 查看详情

spring中你可能不知道的事(代码片段)

在上一节中,我介绍了Spring中极为重要的BeanPostProcessorBeanFactoryPostProcessorImportImportSelector,还介绍了一些其他的零碎知识点,正如我上一节所说的,Spring实在是太庞大了,是众多Java开发大神的结晶,很多功能,很多细节,可能一... 查看详情

java8中你可能不知道的一些地方之接口默认方法实战(代码片段)

Java8已经发布很久,是自java5(2004年发布)之后Oracle发布的最重要的一个版本。其中包括语言、编译器、库、工具和JVM等诸多方面的新特性,对于国内外互联网公司来说,Java8是以后技术开发的趋势。这里主要讲解在开发中几个... 查看详情

别再说你不知道分布式事务了(代码片段)

简介我们都知道Seata是一个分布式事务的解决方案,今天我们就来带大家了解一下什么是分布式事务,首先我们先来了解一下基础的知识——事务,我们先来了解一下事务的概念是什么。基本概念事务四部分构成——ACIDA(Atomic):... 查看详情

javascript中你不知道的5个json-使用技巧(代码片段)

开发中,经常使用 JSON.stringify(object) 来序列化对象,但除了第一个参数外,还有其它参数可用...格式化//默认的JSON.stringify(object)出来数据是一行字符串constuser=name:'JackieDYH',age:30,isAdmin:true,friends:['小可爱... 查看详情

那些你不知道的kotlin冷知识(代码片段)

Lambda表达式Lambda固然好用,但是你知道Kotlin是如何实现的吗?kotlin代码funfoo(item:Int)=print(item)转换为java字节码@NotNullpublicfinalFunction0foo(finalintitem)return(Function0)(newFunction0()//$FF:syntheticm 查看详情

php代码审计中你不知道的牛叉技术点

一、前言php代码审计如字面意思,对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞。如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输和调用过程。入门php代码审计实际并无什么门槛要求,只需要... 查看详情

别再说你不知道分布式事务了(代码片段)

简介我们都知道Seata是一个分布式事务的解决方案,今天我们就来带大家了解一下什么是分布式事务,首先我们先来了解一下基础的知识——事务,我们先来了解一下事务的概念是什么。基本概念事务四部分构成——A... 查看详情

你不知道的js系列(22)-thisnew绑定(代码片段)

在传统的面向类的语言中,“构造函数“是类中的一些特殊方法,使用new初始化类时会调用类中的构造函数。通常的形式是这样的something=newMyClass(..);然而JavaScript中new的机制实际上和面向类的语言不同。它们只是被new操作... 查看详情

你不知道的js系列(7)-欺骗词法作用域(代码片段)

如果词法作用域完全由写代码期间函数所声明的位置来定义,怎样才能在运行时来“修改”词法作用域呢?有些人喜欢特殊的办法来解决遇到的问题。我们规定词法作用域是代码写在哪里决定的,一旦决定了无法更改,因... 查看详情

你不知道的js系列(19)-this调用位置(代码片段)

我们排除了一些对于this对错误理解并且明白了每个函数的this是在调用时被绑定的,完全取决于函数的调用位置。寻找调用位置就是寻找“函数被调用的位置”,但是做起来并没有这么简单,因为某些编程模式可能会隐藏... 查看详情

node.js新手必须知道的4个javascript概念(代码片段)

...决了。一种语言就可以统治一切。而且,在整个应用程序中你只需要使用这一种语言。所以,我们需要深 查看详情

springboot基础篇之@value中哪些你不知道的知识点(代码片段)

SpringBoot基础篇@Value中哪些你不知道的知识点看到这个标题,有点夸张了啊,@Value这个谁不知道啊,不就是绑定配置么,还能有什么特殊的玩法不成?(如果下面列出的这些问题,已经熟练掌握,那确实没啥往下面看的必要了)@Value... 查看详情