2024年Web前端最新JavaScript 常用API — WebAPI 详细介绍+实例描述,带你全面理解View的绘制流程

前端面试题汇总

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

性能

linux

前端资料汇总


var element = document.querySelector(selectors)



  • selectors 包含一个或多个要匹配的选择器的 DOM字符串 DOMString 。 该字符串必须是有效的

  • CSS选择器字符串;如果不是,则引发 SYNTAX_ERR 异常

  • 表示文档中与指定的一组CSS选择器匹配的第一个元素的 html元素 Element 对象.

  • 可以在任何元素上调用,不仅仅是 document。 调用这个方法的元素将作为本次查找的根元素

    在这里插入图片描述

    在这里插入图片描述

当 querySelector 的参数选择器,匹配到了多个元素的时候,此时返回的对象,就是匹配到了结果中的第一个元素。

在这里插入图片描述

那么下面 querySelectorAll 就能很好的应对这个问题

querySelectorAll

使用 querySelectorAll 用法和上面类似。

在这里插入图片描述

值得提的是:querySelectorAll 返回的不是一个真正的原生数组,而是一个对象,只不过这个对象,有 length(长度),也能通过下标的方式来访问内部元素,这样的对象使用起来和数组非常相似,就把它称为“伪数组”。

JS 中的事件


事件 就是浏览器对于用户操作行为进行了一个 “统称”。JS 要构建动态页面, 就需要感知到用户的行为.

用户对于页面的一些操作(点击, 选择, 修改等) 操作都会在浏览器中产生一个个事件, 被 JS 获取到, 从而进

行更复杂的交互操作.

举一些例子来形象理解:

在这里插入图片描述

事件三要素:

  1. 事件源: 哪个 HTML 元素触发的时间

  2. 事件类型: 是点击, 选中, 还是修改?

  3. 事件处理程序: 进一步如何处理. 往往是一个回调函数.(当事件产生之后,执行什么部分的JS代码)

“点击” 事件

先来看一个例子:

在这里插入图片描述

在这里插入图片描述

  • button 按钮就是事件源.

  • 点击就是事件类型

  • function 这个匿名函数就是事件处理程序

  • 其中 button.onclick = function() 这个操作称为 注册事件/绑定事件

注意: 这个匿名函数相当于一个回调函数, 这个函数不需要程序猿主动来调用, 而是交给浏览器, 由浏览器自动在合适的时机(触发点击操作时) 进行调用回调函数:这个函数不会立即调用,而是在合适的时机,被 库/框架 自动的调用

操作元素

获取/修改元素内容

通过 对象 里面的一个属性 innerHTML 来实现,获取到元素的内容,进一步就可以来修改。

1. innerText
  • 获取

    在这里插入图片描述

通过 innerText 无法获取到 div 内部的 html 结构, 只能得到文本内容.

2.innerHTML
  • 获取

    在这里插入图片描述

  • 修改

    在这里插入图片描述

获取/修改元素属性

可以通过 Element 对象的属性来直接修改, 就能影响到页面显示效果。

在这里插入图片描述

在这里插入图片描述

  • 通过 console.dir 这个方法,打印出一个 DOM 对象的全部属性和值

在这里插入图片描述

获取/修改表单元素属性

表单(主要是指 input 标签)

因为 input 作为一个单标签,无法通过 innerHTML 来获取内容。

于是:

以下属性都可以通过 DOM 来修改。

  • value: input 的值.

  • disabled: 禁用

  • checked: 复选框会使用

  • selected: 下拉框会使用

  • type: input 的类型(文本, 密码, 按钮, 文件等)

代码示例: 切换按钮的文本.


<input type="button" value="播放">

<script>

    var btn = document.querySelector('input');

    btn.onclick = function () {

        if (btn.value === '播放') {

            btn.value = '暂停';

        } else {

            btn.value = '播放';

        }

    }

</script>



由于这些代码展示的是一个动态的效果,大家可以自行取代码去自己本地实现,这里就不做运行效果。

代码示例: 点击计数


<input type="text" id="text" value="0">

<input type="button" id="btn" value='点我+1'>



<script>

    var text = document.querySelector('#text');

    var btn = document.querySelector('#btn');



    btn.onclick = function () {

        var num = +text.value;

        console.log(num);

        num++;

        text.value = num;

    }

</script>



  • input 具有一个重要的属性 value, 这个 value 决定了表单元素的内容

  • 如果是输入框, value 表示输入框的内容, 修改这个值会影响到界面显式; 在界面上修改这个值也会影响到代码中的属性

  • 如果是按钮, value 表示按钮的内容. 可以通过这个来实现按钮中文本的替换

代码示例: 全选/取消全选按钮


<input type="checkbox" id="all">我全都要 <br>

<input type="checkbox" class="girl">HTML<br>

<input type="checkbox" class="girl">CSS<br>

<input type="checkbox" class="girl">JavaScript<br>

<input type="checkbox" class="girl">Java <br>



<script>

    // 1. 获取到元素

    var all = document.querySelector('#all');

    var girls = document.querySelectorAll('.girl');

    // 2. 给 all 注册点击事件, 选中/取消所有选项

    all.onclick = function () {

        for (var i = 0; i < girls.length; i++) {

            girls[i].checked = all.checked;

        }

    }

    // 3. 给 girl 注册点击事件

    for (var i = 0; i < girls.length; i++) {

        girls[i].onclick = function () {

            // 检测当前是不是所有的 girl 都被选中了. 

            all.checked = checkGirls(girls);

        }

    }

    // 4. 实现 checkGirls

    function checkGirls(girls) {

        for (var i = 0; i < girls.length; i++) {

            if (!girls[i].checked) {

                // 只要一个 girl 没被选中, 就认为结果是 false(找到了反例)

                return false;

            }

        }

        // 所有 girl 中都没找到反例, 结果就是全选中

        return true;

    }

</script>



在这里插入图片描述

获取/修改样式属性
行内样式操作

element.style.[属性名] = [属性值]; element.style.cssText = [属性名+属性值];

代码示例: 点击文字则放大字体.

在这里插入图片描述

类名样式操作

代码示例: 夜间模式/白天模式 切换

在这里插入图片描述

操作节点

新增节点

分成两个步骤

最后

编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

名不虚传!字节技术官甩出的"保姆级"数据结构与算法笔记太香了

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
展示 OPC UA 节点可以分为以下几个步骤: 1. 前端 JavaScript 通过 HTTP 请求调用 Web API。 2. Web API 从 OPC UA 服务器中获取节点数据,并将数据以 JSON 格式返回给前端。 3. 前端 JavaScript 接收到返回的 JSON 数据后,解析数据并将数据渲染到 TreeView 中。 具体实现方式可以参照以下步骤: 1. 在 Web API 中使用 OPC UA 客户端库,如 node-opcua,连接 OPC UA 服务器,并获取节点数据。 2. 将获取到的节点数据转换为 JSON 格式,并使用 HTTP 协议将 JSON 数据返回给前端。 3. 在前端 JavaScript 中,使用 jQuery 或原生的 XMLHttpRequest 对象发送 HTTP 请求,获取 Web API 返回的 JSON 数据。 4. 解析 JSON 数据,并将数据渲染到 TreeView 中显示。 下面是一个简单的代码示例: Web API 代码: ```javascript const opcua = require("node-opcua"); const express = require("express"); const app = express(); const serverEndpointUrl = "opc.tcp://localhost:4840"; const client = new opcua.OPCUAClient(); let session; // 连接 OPC UA 服务器 client.connect(serverEndpointUrl, function (err) { if (err) { console.log("Cannot connect to server: ", err); } else { console.log("Connected to OPC UA server"); client.createSession(function (err, sess) { if (err) { console.log("Cannot create session: ", err); } else { console.log("Session created"); session = sess; } }); } }); // 获取节点数据 app.get("/opcua/nodes", (req, res) => { const rootFolderId = opcua.resolveNodeId("RootFolder"); session.browse(rootFolderId, function (err, browseResult) { if (err) { console.log("Cannot browse nodes: ", err); res.status(500).send({ error: "Cannot browse nodes" }); } else { const nodes = browseResult.references.map((node) => { return { id: node.nodeId.toString(), name: node.browseName.name.toString(), }; }); res.send(nodes); } }); }); app.listen(3000, () => console.log("Web API listening on port 3000")); ``` 前端 JavaScript 代码: ```javascript // 发送 HTTP 请求 $.get("http://localhost:3000/opcua/nodes", function (data) { // 解析 JSON 数据 var nodes = JSON.parse(data); // 渲染节点数据到 TreeView 中 var treeView = $("#treeView").kendoTreeView({ dataSource: nodes, dataTextField: "name", dataValueField: "id", }).data("kendoTreeView"); }); ``` 以上示例中,Web API 使用了 node-opcua 库连接 OPC UA 服务器,并通过 Express 框架提供 HTTP 服务。前端 JavaScript 使用了 jQuery 库发送 HTTP 请求,并使用 kendoTreeView 插件将节点数据渲染到 TreeView 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值