JS中容易混淆的概念。

1.attribute和porperty的区别

attribute是特性节点。每个DOM元素都有一个对应的attributes属性来存放所有的attribute节点,attributes是一个类数组的容器,说得准确点就是NameNodeMap,总之就是一个类似数组但又和数组不太一样的容器。attributes的每个数字索引以名值对(name=”value”)的形式存放了一个attribute节点。

要设置一个attribute节点使用setAttribute方法,要删除就用removeAttribute。

property只是一个属性。而DOM中的个别attribute节点都有对应的property属性。property属性既可以通过对象操作属性的形式直接获取属性值,也可以通过getAttribute()获得。

对于在HTML中默认存在的特性节点,可以通过getAttribute()来获取其特性值。但是对于不是HTML文档中默认存在的,而是在JS中动态自定义的特性节点,

则无法获取其特性值。(在IE8之前,无法区分自定义的特性节点,所以自定义节点会被当做普通默认节点来对待)。

较特殊的是一些值为Boolean类型的property,如一些表单元素(radio),只要其特性节点存在,对应的property值就为true.

最后为了更好的区分attribute和property,基本可以总结为attribute节点都是在HTML代码中可见的,而property只是一个普通的名值对属性。

时间: 2024-10-12 09:25:08

JS中容易混淆的概念。的相关文章

互联网我来了 -- 2. js中"异步/阻塞"等概念的简析

一.什么是"异步非阻塞式"? 这个名字听起来很恶心难懂,但如果以 买内裤 这件事情来比喻执行程序的话就很容易理解"异步非阻塞式"的涵义了. 例如你是一个CPU的线程,你需要去执行一段 买内裤的程序, 你所需执行的步骤大致如下, 到一个商店里问老板, 你们店里还有没有nb牌内裤? 买到内裤,穿上 去小卖店买点火腿回家喂狗 这时候,你作为一个线程,你可能会遇到几种状况或选择. 店里面没货了,老板一直不答应你(阻塞你),你也一直等着(同步),第三天有货了才告诉你有了,你赶

性能测试中容易混淆的概念

1.并发用户数≠每秒请求数 简单说,当你在性能测试工具或者脚本中设置了100并发用户数后,并不能期望着一定会有每秒100个请求发给服务器.事实上,对于一个虚拟用户来说,每秒发出多少请求只跟服务器返回响应的速度有关,如果虚拟用户在0.5秒内就收到了响应,那么它会立即发出第二个请求:而如果要一直等待3秒才能得到响应,它将会一直等到收到响应后才发出第二个请求.例如,如果用户发出请求后,0.2s内得到响应,那么100个用户每秒完成500个请求:只有当响应时间恰好是1秒时,并发用户数才会等于每秒请求数.

【Android应用开发技术:用户界面】界面设计中易混淆的概念汇总

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells [Android应用开发技术:用户界面]章节列表 一 px.dp.sp px:即像素,每个px对应屏幕上的一个点. dp:即设备独立像素,一种基于屏幕密度的抽象单位,在每英寸160点的显示器上:1 dp = 1 px. sp:即比例像素,主要用来处理字体大小,可以根据用户字体

漫谈JS中的prototype

1. 引言 ??继承(inheritance).封装(encapsulation)和多态(polymorphism)是面向对象机制的主要特性.在JS中没有"class"的概念,自然也无法直接进行JAVA.C++常用到的extends.implements等操作.但从某种意义上来说,JS是纯粹的"面向对象"编程语言,因为JS中处处皆是对象(函数也是对象),而且作为函数式脚本语言,天生就是多态的.??网上很多文章探讨JS中如何设计class和面向对象机制,这些文章的思路

通俗易懂地解释JS中的闭包

1. "闭包就是跨作用域访问变量." [示例一] ? 1 2 3 4 5 6 7 8 9 var name = 'wangxi' function user () {  // var name = 'wangxi'  function getName () {  console.log(name)  }  getName() } user() // wangxi 在 getName 函数中获取 name,首先在 getName 函数的作用域中查找 name,未找到,进而在 user 函

关于js中原生构造函数的继承

前言 最近参加了蚂蚁金服的面试,一个关于js继承的问题答的不是特别好.在如今快节奏的工作当中,很多基础的东西会渐渐被丢掉.就如继承这个话题,写React的同学应该都是class xxx extends React.Component,然而这可以理解为es5的一个语法糖,所以问题又回到了js如何实现继承.面试结束后,赶紧翻了翻积满灰尘的js高级程序设计,重新学习了一遍面向对象这一章,有一个创建对象的模式吸引到了我. 寄生构造函数模式 在oo中我们是通过类去创建自定义类型的对象,然而js中没有类的概

javascript (js)中的基本概念

1. 基本数据类型 1.1 number (数字)在js中没有整形和浮点型的区分,所有的数字都是浮点型标识, 采用64位的浮点格式来表示数字.如果数字类型用在字符串连接表达式中,则会自动转换成字符串, 在JS中表示16进制通过在数字前加"0x"或"0X"(零). 1.2 string (字符串)字符串类型是实用单引号('')或双引号("")括起来的unicode字符序列, 一些特殊的字符可以通过转义符来标识.如果字符串用在数字表达式环境中,字符串

【转】简单了介绍js中的一些概念(词法结构) 和 数据类型(部分)。

1 , javascript字符集: javascript采用的是Unicode字符集编码. 为什么要采用这个编码呢? 原因很简单,16位的Unicode编码可以表示地球人的任何书面语言.这是语言 国际化的一个重要特征.(大家也许见过用中文写脚本,比如:function 我的函数() {} ); Javascript中每个字符都是用2个字节表示的.(因为是16位编码) 2 ,大小写敏感: js是一种区分大小写的语言. 注意下:以前我也犯过的错误. HTML是不区分大小写的.经常看见有人这么写, 

JS中的一些概念的整理及理解

先看看函数定义时发什么什么? 函数定义时就确定了其作用域和作用域链. 执行时创,无法访问建执行环境(execution),执行时相当于实例化了一发.除了执行环境当然有作用域链,这时会将实例化的对象(也就是活动对象推入顶端,就是第0号位置),其他的作用域链继承定义时的作用域链. 红皮书中是这样写的:执行环境定义了变量和函数有权访问其他数据,决定他们各自行为.每个执行环境中都有一个变量对象,环境中定义的变量和函数都保存在这个对象中,无法访问. 当代码在一个环境中执行时,会创建变量对象的一个作用域链.