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

Javascript全局变量与HTML数据属性

基础概念

JavaScript全局变量

  • 全局变量是在函数外部声明的变量,可以在整个程序中访问。
  • 它们存储在全局作用域中,通常是window对象的一部分(在浏览器环境中)。

HTML数据属性

  • HTML5引入了自定义数据属性,允许开发者存储页面或应用程序的私有数据。
  • 这些属性以data-开头,后面跟着自定义的名称。
  • 可以通过JavaScript的dataset属性访问这些数据。

相关优势

全局变量

  • 方便在不同函数和模块间共享数据。
  • 减少参数传递的需要,简化代码结构。

HTML数据属性

  • 提供了一种将数据与特定元素关联的方式。
  • 有助于保持HTML、CSS和JavaScript的分离,符合关注点分离原则。
  • 数据不会显示在页面上,相对安全。

类型与应用场景

全局变量

  • 类型:简单数据类型(如字符串、数字)和复杂数据类型(如对象、数组)。
  • 应用场景:跨多个脚本或模块共享配置信息、状态管理等。

HTML数据属性

  • 类型:字符串(尽管可以通过JSON格式存储更复杂的数据)。
  • 应用场景:存储用户设置、临时数据、用于JavaScript操作的元数据等。

示例代码

全局变量示例

代码语言:txt
复制
var globalVar = "I am a global variable";

function showGlobalVar() {
    console.log(globalVar);
}

showGlobalVar(); // 输出: "I am a global variable"

HTML数据属性示例

代码语言:txt
复制
<div id="myDiv" data-custom-attr="some value">Hello World</div>

<script>
    var divElement = document.getElementById('myDiv');
    console.log(divElement.dataset.customattr); // 输出: "some value"
</script>

遇到的问题及解决方法

问题:全局变量可能导致命名冲突和难以追踪的错误。 解决方法

  • 尽量减少全局变量的使用。
  • 使用模块化编程,如ES6模块或CommonJS。
  • 利用命名空间或立即执行函数表达式(IIFE)来限制变量的作用域。

问题:HTML数据属性的数据类型有限,且不适合存储大量数据。 解决方法

  • 对于复杂数据,可以在页面加载时将其存储在全局变量或使用Web存储API(如localStorage)。
  • 注意数据的安全性,避免存储敏感信息。

通过理解这些基础概念和最佳实践,可以更有效地在项目中使用全局变量和HTML数据属性。

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

相关·内容

js和html全局变量,JavaScript全局变量与局部变量

原文:深入理解JavaScript的变量作用域 在学习JavaScript的变量作用域之前,我们应当明确几点:JavaScript的变量作用域是基于其特有的作用域链的。...2、函数体内部,局部变量的优先级比同名的全局变量高。...function rain(){ x = 100; //声明了全局变量x并进行赋值 } rain(); alert( x ); //会弹出100 这也是JavaScript新手常见的错误,无意之中留下的许多全局变量...6、全局变量都是window对象的属性 var x = 100 ; alert( window.x );//弹出100 alert(x); 等同于下面的代码 window.x = 100; alert(...window.x ); alert(x) 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131252.html原文链接:https://javaforall.cn

3K20
  • JavaScript 学习-26.HTML DOM节点与节点属性

    前言 DOM (Document Object Model) 文档对象模型,通过 HTML DOM,JavaScript 能够访问和改变 HTML 文档的所有元素。...HTML DOM 模型被结构化为对象树: 通过这个对象模型,JavaScript 获得创建动态 HTML 的所有力量: JavaScript 能改变页面中的所有 HTML 元素 JavaScript...能改变页面中的所有 HTML 属性 JavaScript 能改变页面中的所有 CSS 样式 JavaScript 能删除已有的 HTML 元素和属性 JavaScript 能添加新的 HTML 元素和属性...JavaScript 能对页面中所有已有的 HTML 事件作出反应 JavaScript 能在页面中创建新的 HTML 事件 什么是 HTML DOM?...nodeName 属性获取节点的名称 nodeName 是只读的 元素节点的 nodeName 与标签名相同 属性节点的 nodeName 与属性名相同 文本节点的 nodeName 始终是 #text

    1.4K20

    JavaScript数据属性和访问器属性

    看《深入理解JavaScript》的this篇时看到“访问器属性”这个不熟悉的名词,百度后找到两篇感觉比较合适的文章,整合记录一下,以参考资料2为主,参考资料1为辅助补充。...数据属性 数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有 4 个描述其行为的特性。...类似地,只指定 setter 函数的属性也不能读,否则在非严格模式下返回 undefined,严格模式下报错。 由此可以联想到数据对象与 DOM 对象的 "双向绑定"。...document.getElementById('foo').value = newValue; }, configurable: true }); 上面代码使用存取函数,将 DOM 对象 foo 与数据对象...参考资料 JavaScript笔记--数据属性和访问器属性 JavaScript 属性类型(数据属性和访问器属性)

    1.6K31

    浅谈JavaScript 数据属性和访问器属性

    在JavaScript中对象被定义为"无序属性的集合,其属性可以包含基本值、对象或函数。"通俗点讲,我们可以把对象理解为一组一组的名值对,其中值可以是数据或函数。...上面的注释中是分别对各个属性修改后的影响的测试。大家可以自己运行下试试效果。 属性类型 JavaScript中定义了两种不同的属性:数据属性和访问器属性。...在JavaScript中不能直接访问特性,我们把它放在两对方括号中,例如[[Enumerable]]。 •数据属性 数据属性主要有四个特性描述其行为: 1....其他 另外还有 Object.definePropties可以批量为属性设置特性 在javascript中,对象的属性分为数据属性和存储器属性两种: 两种属性的区别 我们使用Object.defineProperty...存储器属性与数据属性最大的不同就是增加了getter/setter,通过它们可以对属性的值进行操作,可以实现一些实用的功能。 ?

    1.4K40

    HTML5新增的标签与属性

    一、关于DTD HTML5 不基于 SGML,所以不需要引用 DTD(HTML 4.01 基于 SGML) 二、HTML5结构标签 标记定义一个页面或一个区域的头部 标记定义导航链接...重定义标签 (显示不变,只是表达的含义进行了重新定义的标签) 代表内联文本,通常是粗体,没有传递表示重要的意思 代表内联文本,通常是斜体,没有传递表示重要的意思 可以同details与figure...一同使用,定义包含文本,dialog也可用 可以同details与figure一同使用,汇总细节,dialog也可用 表示主题结束,而不是水平线,虽然显示相同 重新定义用户界面的菜单...其他属性 defer:加载完脚本后并不执行,而是等整个页面加载完之后再执行 async:加载完脚本后立刻执行,不用等整个页面都加载完,... Css JavaScript manifest=“cache.manifest”(定义页面离线应用文件) html manifest

    1.6K10

    JavaScript 学习-32.HTML DOM 获取和修改属性节点

    前言 根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点: 整个文档是一个文档节点 每个 HTML 元素是元素节点 HTML 元素内的文本是文本节点 每个 HTML 属性是属性节点...注释是注释节点 属性节点 比如有一个p标签元素节点 点我看看 那么它有2个属性节点:id="p2"和class="text-center...()    | 返回指定的属性值。                     ...,可以根据属性名称,获取对应的值,比如根据id属性,获取到”p2”, 根据class属性,获取到”text-center” 获取元素的属性 | 方法                        | 描述...修改元素属性节点的值跟前面获取属性方法一样,给属性重新复制即可 修改属性节点 <label

    1.3K10

    JavaScript基础之二——方法与属性 原

    JavaScript基础之二——方法与属性     和编译型语言必须由类产生对象不同,JavaScript语言中并没有严格的类的界定,并且对象的属性和方法也可以进行动态的绑定。...属性是对象中封装的一些值数据,其用来描述对此对象的某些特性,方法也称为行为,其用来描述对象的一些行为动作,创建对象有两种方式,可以直接使用大括号的方式创建,也可以使用new Object()来创建,示例如下...: //对象拥有属性与方法 //属性描述对象的某些值 var person = new Object(); //名字和年龄属性 person.name = 'Jaki'; person.age = 25...person.run = function(){ console.log("前进1公里"); } //调用方法 person.run(); console.log(person);     数字,字符串等数据实质上也是对象...,字符串对象内置了一些属性与方法,示例如下: var txt = "Hello WorldW"; //获取字符串长度属性 console.log(txt.length); //获取子串在字符串中的位置

    21820

    html外边距如何归零,盒子模型的overflow属性,border属性,padding与margin属性

    html外边距如何归零,盒子模型的overflow属性,border属性,padding与margin属性...具体图下图所示: ㈠概念与组成 1.页面上区域,图片,导航,列表,段落都可以是盒子。 2.页面中的所有元素都可以看成一个盒子,占据着一定的页面空间。...㈣padding与margin属性 1.对浏览器默认的设置清零,采取全局声明 注意:属性的取值,只有当它取值为零的时候,才可以省略它的单位,其他情况是不可以的。...,左与右相等 ⑶第三个是第四个值省略,表示左与右相等 ⑷第四个注意,这里虽然上下边距都为1px,但是这里不能缩写,如果缩写,位置会发生变化,值的设定就错了 *四个方向有顺序为:上右下左,顺时针,如图所示...可以任意;auto设置的是左侧和右侧的取值,设定为auto ★案例示意: ⑴首先是HTML部分如下图所示: ⑵重点说一下CSS部分 我们用“#”开头来定义这个外层盒子的样式,为了让所有图片都居中,用文字和图片的统一的居中的方式

    1.4K20

    《javascript高级程序设计》笔记:对象数据属性和访问器属性

    内置属性—数据属性 Object.defineProperty()方法介绍(摘自MDN) Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性...属性 参照数据属性中的configurable属性 3.2 enumerable 属性 参照数据属性中的enumerable属性 3.3 get 方法 在读取属性是调用的函数,默认值为undefined...set方法,这就是修改数据的时候,视图会自动更新的关键前端获取数据后,需要根据数据操作dom,视图变化后,需要修改不少代码,有没有方法将数据和dom操作隔离,看一个例子 html模版 --> 你好, <...}, 'property2': { value: 'Hello', writable: false } // etc. etc. }); 参考: Javascript

    95120

    html5 scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记…

    如果没有定位的元素,则offsetParent为最近的table,table cell或根元素(标准模式下为html;quirks 模式下为body)。...还是上面那张图,div的offsetTop为20,因为margin-top是20,距离html顶部的距离是20… scrollHeight,只读 实话,这么久了,竟然一直搞错这个scroll相关属性,其实它描述的是...outer的属性,而窝一直取inner的属性值,难怪scrollTop一直是0。。。...初始化 window.onload = () => { for (let i = 0; i < 233; i++) inner.innerText += `第${i}行\n`; } 到此这篇关于JavaScript...之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记的文章就介绍到这了,更多相关JavaScript scrollTop scrollHeight

    91020

    HTML5 自定义数据属性(data-*)

    引言 HTML5 引入的自定义数据属性(data-*)为开发者提供了一种将自定义数据嵌入HTML元素的标准方法。...这个特性使得在不使用非标准属性或额外的 DOM 属性的情况下,能够在 HTML 元素上存储额外信息。 基本概念 自定义数据属性以 data- 为前缀,后面跟着自定义的属性名。...在 HTML 中定义 自定义数据属性可以在任何 HTML 元素上定义: <article id="electriccars" data-columns="3" data-index-number...通过 JavaScript 修改 同样可以使用 dataset 来修改自定义数据属性: article.dataset.columns = 5; 4....不要过度使用:自定义数据属性应该用于存储与元素紧密相关的数据,而不是作为通用存储机制。 考虑性能:大量使用自定义数据属性可能会增加 HTML 的大小,影响页面加载速度。

    12110

    HTML中的自定义数据属性data-*

    data-* 全局属性 是一类被称为自定义数据属性的属性,它赋予我们在所有 HTML 元素上嵌入自定义数据属性的能力,并可以通过脚本(一般指JavaScript) 与 HTML 之间进行专有数据的交换。...定义和用法 data-* 属性用于存储页面或应用程序的私有自定义数据。 data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。...存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。...data-* 属性包括两部分: ①属性名不应该包含任何大写字母,并且在前缀 “data-” 之后必须有至少一个字符。 ②属性值可以是任意字符串。...注释:用户代理会完全忽略前缀为 “data-” 的自定义属性。

    1.2K20
    领券