前端3+1-23、24、25

本文介绍了前端开发中的实用技巧,包括form标签的enctype属性、CSS优先级计算、JavaScript中的数值运算陷阱及解决方法等,同时提供了自定义数据属性data-的使用案例。

23

html

题目:说说form标签的enctype属性
答案:设置表单在提交数据时的编码方式。有以下值
1、默认值application/x-www-form-urlencode;对表单数据进行编码(空格转+号,特殊字符转ascii码),若请求方式是post则封装到body,若请求方式是get则拼接到url上
2、multipart/form-data;表单中包含文件(比如图片)必须使用该值
3、text/plain;编码方式为纯文本,即空格转+号,特殊字符不转ascii码

css

题目:css的优先级如何计算
答案:!import>内联>id>class>标签>通配符

js

题目:0.1+0.2、0.1+0.3、0.1*0.2分别等于多少,为啥
答案:

console.log(0.1 + 0.2);
console.log(0.1 + 0.4);
console.log(0.1 * 0.2);
// 0.30000000000000004
// 0.5
// 0.020000000000000004

js使用的是双精度标准,这导致有些树在转成二进制时会有精度丢失的现象,自然在计算后会有误差。(转化后位数无限的会有误差,转化后位数有限且分母是2的倍数的小数大概率不会有误差)

24

html

题目:对属性data-的理解
答案:在html元素中存储自定义数据,有如下用法:(data-*的只能是小写字母,用横线连接,不能用驼峰)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    article::after {
    /* 4、在article元素后添加内容,内容为通过attr()函数获取的data-parent属性的值 */
       content: attr(data-parent);
       color: red;
    }
    /* 5、通过属性选择器设置样式 */
    article[data-column='3'] {
       background-color: deepskyblue;
       width: 50%;
    }
    </style>
</head>

<body>
    <article id="electriccars" data-column="3" data-index-number="1234" data-parent="cars">
        语法非常简单。所有在元素上以data-开头的属性为数据属性。比如说你有一篇文章,而你又想要存储一些不需要显示在浏览器上的额外信息。请使用data属性:
    </article>
</body>

<script>
    var article = document.querySelector('#electriccars');
    
    // 1. 通过getAttribut()方法获取属性值
    console.log(article.getAttribute('data-columns'));
    console.log(article.getAttribute('data-index-number'));
    console.log(article.getAttribute('data-parent'));
   // 2. 通过dataset对象获取属性值,破折号命名需要改写为驼峰命名
    console.log(article.dataset.column);
    console.log(article.dataset.indexNumber);
    console.log(article.dataset.parent);
    // 3、可以重置
    article.dataset.column = 5;
    console.log(article.dataset.columns);
</script>

</html>

css

题目:用过哪些css预处理器,喜欢哪个,原理是啥
答案:用过less、sass。sass用到更多一些。
1、sass。基于ruby,基于服务端处理,功能强大,解析效率更高,上手相对less更难
2、less。基于nodejs,基于客户端处理,功能相对sass简单,解析效率也更低,但更容易上手
核心原理:AST抽象语法树

js

题目:如何让一个数组乱序
答案:

// // 如何快速让一个数组乱序
/**
 * 洗牌方法(Fisher–Yates Shuffle),其基本思想就是从原始数组中随机取一个之前没取过的数字到新的数组中,具体如下:

        1. 初始化原始数组和新数组,原始数组长度为n(已知);

        2. 从还没处理的数组(假如还剩k个)中,随机产生一个[0, k)之间的数字p(假设数组从0开始);

        3. 从剩下的k个数中把第p个数取出;

        4. 重复步骤2和3直到数字全部取完;

        5. 从步骤3取出的数字序列便是一个打乱了的数列。
 */
function test(originalArr) {
  const length = originalArr.length;
  let newArr = [];
  for (let i = 0; i < length; i++) {
    const randomI = parseInt(Math.random() * originalArr.length, 10);
    newArr.push(originalArr[randomI]);
    originalArr.splice(randomI, 1);
  }
  return newArr;
}
console.log(test([1, 2, 3, 4, 5]));

25

html

题目:

css

题目:应该使用奇数还是偶数的字体,为啥
答案:偶数。一般设计师给的设计稿大多是偶数,而且用偶数更容易和其它部分样式构成比例关系。

js

题目:写一个判断设备来源的方法
答案:

// 写一个判断设备来源的方法(比如常用的Android和ios判断)
function test() {
  const ua = window.navigator.userAgent;
  if (/android/i.test(ua)) {
    return 'android';
  }
  if (/iphone/i.test(ua)) {
    return 'iphone';
  }
  return null;
}
WONOSTATUS|WONO |WAFERIDQTY|BINCODE|LOTWAFERID|TYPE|FABSITE|CUSTOMERCODE|PRODID |DEVICE|VENDORLOTID|T7CODE|LOTID |WAFERNO|WAFERID |FLAG |STATUS |LOTTYPE|MATERIALTYPE|VALIDDATE |CANCELDATE|MAXUSECOUNT|DUMMYSTATUS |USERID|CREATEDATE |UPDATEDATE |ISDELETE|INITQTY|QTY|INITQTYX|QTYX|MATERIALNAME |PLOCATION| ----------+---------+----------+-------+----------+----+-------+------------+--------+------+-----------+------+------+-------+---------+------+------------+-------+------------+-----------------------+----------+-----------+------------+------+-----------------------+-----------------------+--------+-------+---+--------+----+-------------+---------+ Y |NTQLSTYGQ|33 |BIN1 |Q4A527-01 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|01 |Q4A527-01|Active|IssuePending| | |2025-10-01 02:28:46.000| | 0|IssuePending| |2025-07-03 02:28:46.000|2025-07-17 09:42:57.000| 0| 0| 0| 47| 47|N680 SOC_Real| | Y |NTQLSTYGQ|29 | |Q4A527-14 | |SJ_TD | |Q341A-3A| |Q4A527.02 | |Q4A527|14 |Q4A527-14|Active|IssuePending| | |2025-10-01 09:47:30.000| | 0|IssuePending| |2025-07-03 09:47:30.000|2025-07-17 09:42:57.000| 0| | | 51| 51|N680 SOC_Real| | Y |NTQLSTYGQ|41 | |Q4A527-12 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|12 |Q4A527-12|Active|IssuePending| | |2025-10-01 02:31:11.000| | 0|IssuePending| |2025-07-03 02:31:11.000|2025-07-17 09:42:57.000| 0| | | 39| 39|N680 SOC_Real| | Y |NTQLSTYGQ|27 | |Q4A527-11 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|11 |Q4A527-11|Active|IssuePending| | |2025-10-01 02:30:57.000| | 0|IssuePending| |2025-07-03 02:30:57.000|2025-07-17 09:42:57.000| 0| | | 53| 53|N680 SOC_Real| | Y |NTQLSTYGQ|33 |BIN7 |Q4A527-10 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|10 |Q4A527-10|Active|IssuePending| | |2025-10-01 02:30:42.000| | 0|IssuePending| |2025-07-03 02:30:42.000|2025-07-17 09:42:57.000| 0| | | 47| 47|N680 SOC_Real| | Y |NTQLSTYGQ|31 | |Q4A527-09 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|09 |Q4A527-09|Active|IssuePending| | |2025-10-01 02:30:31.000| | 0|IssuePending| |2025-07-03 02:30:31.000|2025-07-17 09:42:57.000| 0| | | 49| 49|N680 SOC_Real| | Y |NTQLSTYGQ|33 | |Q4A527-08 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|08 |Q4A527-08|Active|IssuePending| | |2025-10-01 02:30:21.000| | 0|IssuePending| |2025-07-03 02:30:21.000|2025-07-17 09:42:57.000| 0| | | 47| 47|N680 SOC_Real| | Y |NTQLSTYGQ|37 | |Q4A527-05 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|05 |Q4A527-05|Active|IssuePending| | |2025-10-01 02:29:56.000| | 0|IssuePending| |2025-07-03 02:29:56.000|2025-07-17 09:42:57.000| 0| | | 43| 43|N680 SOC_Real| | Y |NTQLSTYGQ|26 | |Q4A527-02 | |SJ_TD | |Q341A-3A| |Q4A527 | |Q4A527|02 |Q4A527-02|Active|IssuePending| | |2025-10-01 02:29:14.000| | 0|IssuePending| |2025-07-03 02:29:14.000|2025-07-17 09:42:57.000| 0| | | 54| 54|N680 SOC_Real| | Y |NTQLSTYGQ|34 | |Q4A527-24 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|24 |Q4A527-24|Active|IssuePending| | |2025-10-01 02:27:22.000| | 0|IssuePending| |2025-07-03 02:27:22.000|2025-07-17 09:42:57.000| 0| | | 46| 46|N680 SOC_Real| | Y |NTQLSTYGQ|35 | |Q4A527-23 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|23 |Q4A527-23|Active|IssuePending| | |2025-10-01 02:27:05.000| | 0|IssuePending| |2025-07-03 02:27:05.000|2025-07-17 09:42:58.000| 0| | | 45| 45|N680 SOC_Real| | Y |NTQLSTYGQ|31 | |Q4A527-22 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|22 |Q4A527-22|Active|IssuePending| | |2025-10-01 02:26:23.000| | 0|IssuePending| |2025-07-03 02:26:23.000|2025-07-17 09:42:58.000| 0| | | 49| 49|N680 SOC_Real| | Y |NTQLSTYGQ|25 | |Q4A527-20 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|20 |Q4A527-20|Active|IssuePending| | |2025-10-01 02:25:26.000| | 0|IssuePending| |2025-07-03 02:25:26.000|2025-07-17 09:42:58.000| 0| | | 55| 55|N680 SOC_Real| | Y |NTQLSTYGQ|37 | |Q4A527-19 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|19 |Q4A527-19|Active|IssuePending| | |2025-10-01 02:25:09.000| | 0|IssuePending| |2025-07-03 02:25:09.000|2025-07-17 09:42:58.000| 0| | | 43| 43|N680 SOC_Real| | Y |NTQLSTYGQ|42 | |Q4A527-17 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|17 |Q4A527-17|Active|IssuePending| | |2025-10-01 02:24:36.000| | 0|IssuePending| |2025-07-03 02:24:36.000|2025-07-17 09:42:58.000| 0| | | 38| 38|N680 SOC_Real| | Y |NTQLSTYGQ|35 | |Q4A527-16 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|16 |Q4A527-16|Active|IssuePending| | |2025-10-01 02:24:00.000| | 0|IssuePending| |2025-07-03 02:24:00.000|2025-07-17 09:42:58.000| 0| | | 45| 45|N680 SOC_Real| | Y |NTQLSTYGQ|34 | |Q4A527-15 | |SJ_TD | |Q341A-3A| |Q4A527.01 | |Q4A527|15 |Q4A527-15|Active|IssuePending| | |2025-10-01 02:23:40.000| | 0|IssuePending| |2025-07-03 02:23:40.000|2025-07-17 09:42:58.000| 0| | | 46| 46|N680 SOC_Real| | Y |NTQLSTYGQ|40 | |Q4A527-06 | |SJ_TD | |Q341A-3A| |Q4A527.03 | |Q4A527|06 |Q4A527-06|Active|IssuePending| | |2025-10-01 02:22:39.000| | 0|IssuePending| |2025-07-03 02:22:39.000|2025-07-17 09:42:58.000| 0| | | 40| 40|N680 SOC_Real| | Y |NTQLSTYGQ|443 |BIN1 |Q49708-01 | |SJ_TD | |Q433A-0A| |Q49708.01 | |Q49708|01 |Q49708-01|Active|IssuePending| | |2025-08-12 02:13:02.000| | 0|IssuePending| |2025-06-28 02:13:02.000|2025-09-04 07:17:30.000| 0| 0| 0| 3| 3|N680 HBM real| | Y |NTQLSTYGQ|355 |BIN1 |Q49705-03 | |SJ_TD | |Q433A-0A| |Q49705 | |Q49705|03 |Q49705-03|Active|IssuePending| | |2025-08-17 15:40:22.000| | 0|IssuePending| |2025-07-03 15:40:22.000|2025-09-04 07:30:30.000| 0| 0| 0| 1| 1|N680 HBM real| | Y |NTQLSTYGQ|269 |BIN1 |Q49707-03 | |SJ_TD | |Q433A-0A| |Q49707.02 | |Q49707|03 |Q49707-03|Active|IssuePending| | |2025-08-12 23:57:03.000| | 0|IssuePending| |2025-06-28 23:57:03.000|2025-07-17 09:42:57.000| 0| 0| 0| 0| 0|N680 HBM real| | Y |NTQLSTYGQ|139 |BIN1 |Q49700-03 | |SJ_TD | |Q433A-0A| |Q49700 | |Q49700|03 |Q49700-03|Active|IssuePending| | |2025-08-17 10:00:05.000| | 0|IssuePending| |2025-07-03 10:00:05.000|2025-07-17 09:42:57.000| 0| 0| 0| 0| 0|N680 HBM real| | 为什么很多BIN都是空的,没找到吗?
12-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值