成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:Property和Attribute的區(qū)別

開(kāi)發(fā) 前端
在前端開(kāi)發(fā)中,property?(屬性)和 attribute(屬性/特性)是兩個(gè)不同的概念,盡管它們?cè)?HTML 和 JavaScript 中經(jīng)常被混用.

在前端開(kāi)發(fā)中,property(屬性)和 attribute(屬性/特性)是兩個(gè)不同的概念,盡管它們?cè)?HTML 和 JavaScript 中經(jīng)常被混用,但它們的本質(zhì)區(qū)別如下:

1. 定義

  • Attribute(HTML 特性)

a.是 HTML 標(biāo)簽上的原始值,用于初始化元素的狀態(tài)。

b.存在于 DOM 元素的 attribute 節(jié)點(diǎn)中,只能通過(guò) getAttribute() / setAttribute() 訪問(wèn)和修改。

c.字符串類型,即使是數(shù)值屬性,HTML 特性存儲(chǔ)的值也始終是字符串。

  • Property(DOM 屬性)
  • 是 DOM 對(duì)象的屬性,它代表的是元素在 JavaScript 運(yùn)行時(shí)的當(dāng)前狀態(tài)。
  • 可以直接通過(guò) JavaScript 訪問(wèn)和修改(如 element.property = value)。
  • 數(shù)據(jù)類型多樣,可以是 string、boolean、object 等,而不只是字符串。

2. 主要區(qū)別

對(duì)比項(xiàng)

Attribute(HTML 特性)

Property(DOM 屬性)

存儲(chǔ)位置

HTML 元素的特性(attributes)

JavaScript DOM 對(duì)象的屬性(properties)

獲取方式

element.getAttribute("attr")

element.propertyName

修改方式

element.setAttribute("attr", "value")

element.propertyName = value

數(shù)據(jù)類型

始終為 string

string

、boolean、object 等

是否同步

部分同步

(某些屬性如 value 可能不同步)

僅反映 JavaScript 運(yùn)行時(shí)狀態(tài)

3. 示例分析

示例 1:input.value vs input.getAttribute("value")

<input type="text" id="myInput" value="Hello">
const input = document.getElementById("myInput");

// 獲取 HTML 特性(初始值,不變)
console.log(input.getAttribute("value")); // "Hello"

// 獲取 DOM 屬性(可能變化)
console.log(input.value); // "Hello"

// 修改 DOM 屬性(用戶輸入后,value 變了)
input.value = "World";
console.log(input.value); // "World"

// 但 HTML 特性(attribute)還是原來(lái)的值
console.log(input.getAttribute("value")); // "Hello"

// 修改 HTML 特性
input.setAttribute("value", "New Value");
console.log(input.getAttribute("value")); // "New Value"
console.log(input.value); // "New Value" (同步修改)

結(jié)論

  • getAttribute("value") 讀取的是 HTML 初始值,不受用戶輸入影響。
  • input.value 讀取的是 當(dāng)前值,會(huì)隨著用戶輸入變化

示例 2:checked(布爾屬性)

<input type="checkbox" id="myCheckbox" checked>
const checkbox = document.getElementById("myCheckbox");

// 讀取 HTML 特性(attribute)
console.log(checkbox.getAttribute("checked")); // ""

// 讀取 DOM 屬性(property)
console.log(checkbox.checked); // true

// 取消選中(修改 property)
checkbox.checked = false;
console.log(checkbox.checked); // false

// 但 HTML 特性仍然存在
console.log(checkbox.getAttribute("checked")); // ""

結(jié)論

  • getAttribute("checked") 讀取的是 HTML 原始特性,即使 checked=false 仍然返回 ""(存在即為 true)。
  • checkbox.checked 讀取的是 當(dāng)前選中狀態(tài),隨用戶操作變化。

4. 什么時(shí)候使用 attribute,什么時(shí)候使用 property

使用場(chǎng)景

用 attribute

用 property

讀取/修改 HTML 原始值

? getAttribute() / setAttribute()

?

訪問(wèn)/修改元素當(dāng)前狀態(tài)

?

? 直接 element.property

處理布爾型特性(如 checked, selected)

?

?

處理 class(類名)

?

? element.classList.add()

處理 style(行內(nèi)樣式)

?

? element.style.color = "red"

5. 面試官期望的標(biāo)準(zhǔn)回答

**"Attribute(特性)是 HTML 標(biāo)簽的固有屬性,用于初始化 DOM,而 Property(屬性)是 JavaScript 運(yùn)行時(shí) DOM 元素的當(dāng)前狀態(tài)。Attribute 只能存儲(chǔ)字符串值,而 Property 可存儲(chǔ)不同類型的數(shù)據(jù)。雖然某些屬性(如 idhref)在 HTML 和 DOM 之間同步,但其他屬性(如 valuechecked)可能不會(huì)同步,因此要根據(jù)具體情況選擇合適的方法讀取或修改元素。"**】

6. 總結(jié)

  • Attribute(特性):HTML 原始值,只能存儲(chǔ)字符串,不隨用戶操作變化。
  • Property(屬性):JavaScript 運(yùn)行時(shí)的 DOM 狀態(tài),隨用戶操作變化,可存儲(chǔ)多種數(shù)據(jù)類型。
  • 不是所有 attribute 都有對(duì)應(yīng)的 property,但大多數(shù) property 都有對(duì)應(yīng)的 attribute。
責(zé)任編輯:姜華 來(lái)源: 大遷世界
相關(guān)推薦

2025-03-10 11:40:00

前端開(kāi)發(fā)HTML

2015-08-10 10:58:53

dompropertyattribute

2025-03-12 00:00:00

2021-05-10 08:01:12

BeanFactoryFactoryBean容器

2022-09-13 14:44:40

HashMap哈希表紅黑樹(shù)

2021-05-12 08:20:53

開(kāi)發(fā)

2023-02-17 08:10:24

2024-04-03 15:33:04

JWTSession傳輸信息

2024-09-19 08:42:43

2015-08-13 10:29:12

面試面試官

2024-09-25 12:26:14

2025-03-07 08:44:47

Typescriptiinterfacetype

2021-12-13 06:56:45

Comparable元素排序

2021-05-14 08:34:32

UDP TCP場(chǎng)景

2024-03-20 15:12:59

KafkaES中間件

2021-12-23 07:11:31

開(kāi)發(fā)

2021-08-17 07:15:16

Git RebaseGit Merge面試

2022-05-16 11:04:43

RocketMQPUSH 模式PULL 模式

2024-10-31 09:30:05

線程池工具Java

2023-01-30 15:39:40

GETHTTP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久综合久色欧美综合狠狠 | 亚洲一区二区 | 在线免费观看亚洲 | 欧美精品在线免费观看 | 成人在线视频一区 | 伊人网一区 | 亚州精品天堂中文字幕 | 天天摸天天干 | 国内精品久久久久久影视8 最新黄色在线观看 | 在线观看视频一区二区三区 | 国产免费拔擦拔擦8x高清 | 一级全黄少妇性色生活免费看 | 久久久久国产精品免费免费搜索 | 精品一区二区三区视频在线观看 | 超碰地址 | 欧美色性| 久久久国产精品网站 | 男人的天堂久久 | 亚洲不卡在线观看 | 成人精品在线观看 | 一区二区视频免费观看 | 91.色| 亚洲成人99 | 91精品国产乱码久久久久久久久 | 欧美激情一区二区三区 | 精品日韩在线 | 中文字幕一区在线观看视频 | av黄色在线 | jdav视频在线观看免费 | 精品一区二区三区四区五区 | 日韩视频在线一区 | 久久综合一区 | 日本不卡免费新一二三区 | 久久毛片| 亚洲第1页| av男人的天堂av | 国产特一级黄色片 | 午夜精品影院 | 国产午夜精品一区二区三区 | 久久精品亚洲成在人线av网址 | 成人国产精品一级毛片视频毛片 |