当前位置: 首页 > wzjs >正文

网站建设与运营预算品牌营销策划ppt

网站建设与运营预算,品牌营销策划ppt,称多网站建设,佛山室内设计公司排名提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议 由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议


由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题,在这里只提供部分原题代码

本题目为:2024年十五届省赛职业院校组真题第六题:简易JSX解析器


题目:

需要考生作答的代码段如下:

  const jsx = (type, config) => {/* TODO: 待补充代码 */};

题目要求:

    完成元素的 DOM 节点转换,即只转换 `config` 中的 `children`。

    完成元素的属性转换,其中元素样式如果是小驼峰写法需要转换成 `-` 连接,如 `fontSize` 需转换成 `font-size`。`js/index.js` 文件中的 `isUpperCase` 函数功能为判断字符是否为大写。**注意:样式必须转换为行内样式。**

    完成元素事件正确绑定与触发。

答案:

const jsx = (type, config) => {/* TODO: 待补充代码 */const dom = document.createElement(type)// 将 children 添加到子节点for (const child of config.children)dom.innerHTML += child.outerHTML || child// 将 style 添加到样式Object.assign(dom.style, config.style)// 删除已添加的属性delete config.children, delete config.style// 其余属性放到元素里,并返回return Object.assign(dom, config)
};

拓展学习

本题作者想说

理解题目要求,首先题目给出一个函数参数说明,即对jsx属性传入的两个参数进行说明

既然是解析器,那么就会有类似“翻译”一样的功能,用户输入一种语言,之后经过一种算法,将输入的语言进行翻译,之后输出出去

既然我们了解了基本的操作原理,那么我们就知道了该去找什么

首先我们找输入的语句,示例一个最简单输入

     ```jsjsx("div", {children: "hello"})```

我们发现输入的语言中存在div {children: "hello"} 这样我们根据上述的参数说明即可找到之间的关系,div 即为type ,也就是我们要加入的标签属性,{children: "hello"} 即为config 中的其中一个属性,这个children 属性即为我们要加的文本

有了这个最基本的理解,那么其他的比较复杂的传入我们也就懂了,像是

     ```jsjsx("div", {children: ["hello",jsx("span", {children: "world"})]});```

在其中,不同的就是加入了另一个jsx,其处理的原理一样

像是

     ```jsjsx("div", {style: {color:'red';fontSize:'12px'}, // 样式,可以有多个id:'id-1', // idchildren: "hello"})```

在其中,不同的是加入了style样式属性

像是

     ```jsjsx("div", {children: "hello",onclick: () => { // 点击触发的事件alert("div clicked")}})```

在其中,不同的是加入了onclick出发事件

我们来验证一下,是否输入我们需要的东西

在操作之前加入console.log(config) 来输出一下我们输入进去的jsx在后台的类型

这里我们先用下图这个代码

我们可以看到在控制台输出的格式是

这样我们对基本的数据传入就了解了

之后我们就要想,我们做些什么,首先我们要处理这个转换的操作,另外还要输出到页面上

我们首先去想怎么输出,之前在页面上这段文字是在哪显示的?我们去页面中寻找

我们可以看到在页面中输出这个代码块在这个类名为show-box-body,id为app-code的div之中,我们去index.html中找一找

我们可以看到一件奇怪的事情,在代码中没有其他的元素。仅仅只有这一个盒子

这是我们应该想到,在js中我们可以通过createElement来创建一个DOM元素,这样我们的思路一下就明确了

创建DOM元素->对DOM元素进行添加一系列操作->返回这个值,把DOM元素渲染上

创建DOM元素

使用document.createElement方法创建了一个新的DOM元素,其类型由type参数指定。

 document.createElement(type)

对DOM元素进行添加一系列操作

遍历config.children数组,将每个子节点添加到新创建的DOM元素中。如果子节点有outerHTML属性,则使用该属性;否则,直接使用子节点本身。

   for (const child of config.children)dom.innerHTML += child.outerHTML || child

使用Object.assign方法将config.style对象中的样式属性复制到新创建的DOM元素的style属性中。

   Object.assign(dom.style, config.style)

删除了config对象中的childrenstyle属性,因为这些属性已经被处理过了。

   delete config.children, delete config.style

返回这个值,把DOM元素渲染上

config对象中的剩余属性添加到新创建的DOM元素中,并返回这个元素。

   return Object.assign(dom, config)

这样代码就完成啦!!!

这里我们拓展两个知识

outerHTML

outerHTML属性获取描述元素(包括其后代)的序列化 HTML 片段。它也可以设置为用从给定字符串解析的节点替换元素。

要仅获取元素内容的 HTML 表示形式或替换元素的内容,请使用 [innerHTML] 属性

Object.assign

Object.assign() 静态方法将一个或者多个源对象中所有可枚举的自有属性复制到目标对象,并返回修改后的目标对象。


感谢观看此篇文章,谢谢大家的支持,本片文章只是我自己学习的历程,有些写的不好地方欢迎大家交流改动。

长路漫漫,我们还需努力!

http://www.dtcms.com/wzjs/153444.html

相关文章:

  • 大连网站建设-中国互联seo助手
  • 做网站的职员称呼什么网站制作策划书
  • 做网站需要投标吗哪里有竞价推广托管
  • jsp 哪些网站手机百度云网页版登录
  • 深圳做网站三网合一360排名检测
  • 西安做网站的公司电话网站优化方案范文
  • 顶呱呱网站开发seo权重优化软件
  • 自己搭建小程序搜狗seo查询
  • 企信网官网查询入口常州seo
  • 学做网站需要买什么书市场调研分析报告
  • 松原建设局网站优化课程体系
  • 悟空crm下载seo关键词排名技术
  • 江苏省城乡和建设厅网站2022近期时事热点素材摘抄
  • 2015军考网站建设网站备案
  • 诸城网站建设哪家好广州seo招聘
  • 商城购物网站建设品牌整合营销
  • 西安网站价格手机百度提交入口
  • 常熟做公司网站阿里云空间+1对1私人专属设计师
  • wordpress 页面列表seo智能优化公司
  • wordpress插件网庆云网站seo
  • 三网一体网站建设免费推广引流怎么做
  • 做ppt的模板的网站百度股市行情上证指数
  • 广西网站建设公司招聘运营推广渠道有哪些
  • 网站app充值记账凭证怎么做河南企业站seo
  • 网站做聚合页面方案如何写开车搜索关键词
  • wordpress建站详解网络营销热点事件案例分析
  • 郑州哪家公司做网站seo是搜索引擎吗
  • 新开传奇网站发布网单职业天津seo培训
  • 网页游戏交易网站哪里有学电脑培训班
  • 企业信用信息公示系统(辽宁)深圳百度推广排名优化