html5自定义数据属性?rgba()和 opacity的透明效果有什么不同?数组的方法(一)

简介: html5允许给元素指定非标准的属性,但要以`data-`开头,获取时通过元素的dataset属性来访问。如果做过小程序的同学会发现,小程序已经经常使用这个属性了。

一省:HTML

18. html5自定义数据属性?

html5允许给元素指定非标准的属性,但要以data-开头,获取时通过元素的dataset属性来访问。如果做过小程序的同学会发现,小程序已经经常使用这个属性了。

<div class="myDiv" data-name="Jack" data-age="18"></div>
<script>
  let box = document.querySelector(".myDiv")
  console.log(box.dataset);//DOMStringMap {name: 'Jack', age: '18'}
  console.log(box.dataset.name);//Jack
  console.log(box.dataset.age);//18
</script>

二省: CSS

18. rgba()和 opacity的透明效果有什么不同?

rgba(0)和 opacity:0; 都能实现透明效果,但它们最大的不同是opacity作用于元素,并且可以设置元素内所有内容的透明度;而 rgba(0)只作用于元素的颜色或其背景色(设置rgba透明的元素的子元素不会继承透明效果)。

三省:JavaScript

18. 数组的方法(一)

1.检测数组

  • instanceof
    let str = "123"
    let obj = {
         0:123}
    let arr = [123]
    console.log(str instanceof Array);//false
    console.log(obj instanceof Array);//false
    console.log(arr instanceof Array);//true
    
    • isArray()
      //ES6方法 Array.isArray()
      console.log(Array.isArray(str));//false
      console.log(Array.isArray(obj));//false
      console.log(Array.isArray(arr));//true
      

2.迭代器方法

let arr = ["Jack", "Marry", "Jarry", "Bob"]
  • keys()返回数组索引的迭代器
    console.log(arr.keys());//Array Iterator {}  
    // 因为返回的是迭代器对象,可以通过Array.from()直接转化为数组实例
    console.log(Array.from(arr.keys()));//[0, 1, 2, 3]
    
  • values()返回数组元素的迭代器

    console.log(arr.values());//Array Iterator {}  
    console.log(Array.from(arr.values()));//['Jack', 'Marry', 'Jarry', 'Bob']
    
  • entries()返回键值对的迭代器

    console.log(arr.entries());//Array Iterator {}  
    console.log(Array.from(arr.entries()));//[[0, 'Jack'], [1, 'Marry'], [2, 'Jarry'], [3, 'Bob']]
    

    3.填充和复制方法

    • fill()填充数组
// fill()填充
let arr = ["old", "old", "old", "old"]
// 用new填充整个数组
console.log(arr.fill("new"));//['new', 'new', 'new', 'new']
arr.fill("old");//重置
// 填充下标大于2的元素
console.log(arr.fill("new", 2));//['old', 'old', 'new', 'new']
arr.fill("old");//重置
// 填充下标大于1且小于3的元素
console.log(arr.fill("new", 1, 3));//['old', 'new', 'new', 'old']
arr.fill("old");//重置
// 填充下标倒数大于等于1且小于4的元素
console.log(arr.fill("new", -4, -1));//['new', 'new', 'new', 'old']
arr.fill("old");//重置
// fill()会忽略超出边界的情况,如下标太大或者太小
console.log(arr.fill("new", 5, 10));//['old', 'old', 'old', 'old']
console.log(arr.fill("new", -10, -6));//['old', 'old', 'old', 'old']
console.log(arr.fill("new", -3, -10));//['old', 'old', 'old', 'old']
// 部分可用
console.log(arr.fill("new", 3, 10));//['old', 'old', 'old', 'new']
  • copywithin()复制数组
// copyWithin()复制
let arr 
reset = () => {
    arr = [0,1,2,3,4,5,6,7,8,9] }
reset()

// 从下标为0开始复制,从下标为4开始插入
console.log(arr.copyWithin(4));//[0, 1, 2, 3, 0, 1, 2, 3, 4, 5]
reset();
// 从下标为5开始复制,从下标为0开始插入
console.log(arr.copyWithin(0, 5));//[5, 6, 7, 8, 9, 5, 6, 7, 8, 9]
reset();
// 从下标0复制到下标为3的内容,从下标为5开始插入
console.log(arr.copyWithin(5, 0, 3));//[0, 1, 2, 3, 4, 0, 1, 2, 8, 9]
reset();
// copyWithin()也会忽略超出边界的情况

4. 栈方法

  • push() 推入
  • pop() 弹出\
    两个方法都只能操作栈尾,即数组末尾
// push pop   push可以push多项,pop只能pop一项
let arr = [1,2,3,4,5]
// push一项
arr.push(6)
console.log(arr);//[1, 2, 3, 4, 5, 6]
// push两项
arr.push(7,8)
console.log(arr);//[1, 2, 3, 4, 5, 6, 7, 8]
// pop
arr.pop()
console.log(arr);//[1, 2, 3, 4, 5, 6, 7]

5. 队列方法

// shift可以从数组头部取出一个元素
// unshift可以从数组头部推入一个或多个元素
let arr = [1, 2, 3, 4, 5]
arr.shift()
console.log(arr);//[2, 3, 4, 5]
arr.unshift(0, 1);
console.log(arr);//[0, 1, 2, 3, 4, 5]

6. 排序方法

// reverse() 把数组反转
// sort() 按升序把数组排序
let arr = [1, 3, 2, 6, 4, 5]
arr.reverse()
console.log(arr);// [5, 4, 6, 2, 3, 1]
arr.sort()
console.log(arr);//[1, 2, 3, 4, 5, 6]

// 注意 sort方法会把元素转化成字符串来比较,所以很多时候会有问题
let arr1 = [1, 3, 5, 12, 25]
arr1.sort()
console.log(arr1);//[1, 12, 25, 3, 5]
// sort() 方法可以传一个比较函数来解决这个问题
arr1.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);// 第一个参数大于第二个参数就返回-1,小于就返回1,相等就返回0
console.log(arr1);//[1, 3, 5, 12, 25]
相关文章
|
5月前
|
缓存 JavaScript 前端开发
Vue 项目中动态添加 HTML 元素的方法与实践
本文探讨了 Vue 中动态添加 HTML 元素的多种技术方案,包括条件渲染(v-if/v-show)、动态组件(component :is)、手动挂载($mount)及 Vuex 状态管理等方法。通过实例分析,如动态表单生成器与全局模态框服务,展示了这些方案在实际开发中的应用。同时提供了性能优化建议和注意事项,帮助开发者根据需求选择最佳方式,在保持 Vue 响应式特性的同时实现灵活交互。附带代码示例,便于理解和实践。
121 2
|
8月前
|
数据采集 前端开发 API
SurfGen爬虫:解析HTML与提取关键数据
SurfGen爬虫:解析HTML与提取关键数据
|
10月前
|
数据采集 前端开发 数据挖掘
利用 html_table 函数轻松获取网页中的表格数据
本文介绍了如何使用 R 语言中的 `html_table` 函数结合代理 IP 技术,轻松提取网页表格数据并规避反爬机制。通过设置代理和请求头,示例代码展示了如何从 58 同城采集租房信息并保存为 CSV 文件。该方法适用于需要频繁采集数据的场景,确保数据采集的高效和稳定性。
361 2
利用 html_table 函数轻松获取网页中的表格数据
|
11月前
|
移动开发 HTML5
HTML5 表单属性3
`&lt;input&gt;` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `&lt;form&gt;` 标签中的相应属性,并且主要适用于 `type=&quot;submit&quot;` 和 `type=&quot;image&quot;` 的输入类型。
|
10月前
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `&lt;input&gt;` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
10月前
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `&lt;input&gt;` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `&lt;input&gt;` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
11月前
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `&lt;input&gt;` 元素,指示该输入在表单提交时不需验证,可覆盖 `&lt;form&gt;` 元素的 `novalidate` 属性,常与 `type=&quot;submit&quot;` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
10月前
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `&lt;input&gt;` 标签中的 `image` 类型,定义图像的高度和宽度。
|
10月前
|
移动开发 数据安全/隐私保护 HTML5
HTML5 表单属性8
`required`属性确保表单提交前输入框不能为空,适用于多种类型的 `&lt;input&gt;` 标签,如文本、邮箱、密码等。`step`属性则用于指定输入域中合法数值的间隔,常与`max`和`min`属性配合使用,适用于数字、日期等类型。例如,设置`&lt;input type=&quot;number&quot; step=&quot;3&quot;&gt;`可使输入值以3为单位递增或递减。
|
移动开发 HTML5
Html5新属性Data-type的作用
Html5新属性Data-type的作用
673 0
Html5新属性Data-type的作用

热门文章

最新文章