软件设计之JavaScript(2)

news2024/9/20 12:32:57

软件设计之JavaScript(2)

【狂神说Java】JavaScript最新教程通俗易懂

学习内容:

软件开发技能点参照:软件开发,小白变大佬,这套学习路线让你少走弯路是认真的,欢迎讨论
软件开发技能点顺序参照:Java学习完整路线,强烈建议收藏转发
建议JSON、jQuery等深入知识还是看其他人的
尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版

  1. JSON
  2. JS面向对象
  3. BOM对象
  4. DOM对象

1、JSON

JavaScript Object Notation :JS对象表示法
JSON是一个轻量级的数据交换格式,简介的层次结构使其成为理想的数据交换语言
在JS中一些皆为对象,任何js支持的类型都可以用JSON表示
格式:
(1)对象都用{}
(2)数组都用[]
(3)所有键值对 都用 key:value
JSON是一个特殊格式字符串,这个字符串可以被任意语言识别,并转换为任意语言中的对象
JSON和JS对象的格式一样,只不过JSON字符串的属性名必须加双引号

JSON分类

JSON中允许的值:字符串、数组、布尔值、null、对象(不能是函数对象)、数值

<script>
    //JSON对象
    let obj1 = '{"name":"China",“age”:5000}';
    //JSON数组
    let arr = '[1,"hello",true]';
</script>

JSON与对象格式转化

  <script >
    let user = {
        name:"Tom",
        age :2,
        sex :'男'
    }
    //对象转换为json字符串
    let jsonUser = JSON.stringify(user);

    //json字符串转化为对象
    let obj = JSON.parse(jsonUser)
    //第二种方法:eval()
    //当JSON字符串含有{}时,eval会把其当成代码块解析,若不希望如此,则字	 符串前后添加一个()
    let obj1 = eval("(" + jsonUser + ")");
    let obj1 = eval(jsonUser)
  </script>

在这里插入图片描述

2、JS面向对象

类: 模版、原型对象
对象:具体对的实例

原型对象

每一个对象都有它的原型对象,它可以使用自己原型对象上的所有属性和方法
获取原型的方法1:通过对象的__proto__获取
获取原型的方法2:通过构造函数的prototype属性获取
获取原型的方法3:通过类的prototype属性

面向对象原型获取1

Jerry的原型是user

  <script >
    let user = {
        name:"Tom",
        age :2,
        sex :'男'
    }
    let Jerry = {
        name: "Jerry"
    }
    Jerry.__proto__ = user;
  </script>

在这里插入图片描述

面向对象原型获取2

  <script >
      function Cat(name){
          this.name = name;
      }
      let cat = new Cat('Tom');
      Cat.prototype.eat = function (){
          console.log('吃鱼')
      }
      cat.eat();
  </script>

面向对象原型获取3

  <script >
      class Cat{
          constructor(name) {
              this.name = name;
          }
          }
      Cat.prototype.eat = function (){
          console.log('吃鱼')
      }
      let cat = new Cat("Tom")
      cat.eat();
  </script>

prototype实现继承(ES5)

将Schoolboy这个子类的prototype(原型)指向一个new出来的School类型的实例,则Schoolboy新建的子类就能使用School里的公共属性和方法

    <script>
        function Student(id){
            this.id = id;
        }
        function Schoolboy(grade){
            this.grade = grade;
        }
        Schoolboy.prototype = new Student();
        let boy = new Schoolboy('90')
    </script>

class继承

<script>
    class Schoolboy extends Student{
        constructor(name,grade) {
            super(name);
            this.grade = grade;
        }
        myGrade(){
            alert("我是小学生")
        }
    }
</script>

3、BOM对象

JS是为了能够在浏览器中运行才创造
BOM:浏览器对象模型
window 代表 浏览器窗口
Navigator 封装了浏览器的信息
screen 代表屏幕尺寸
location代表当前页面的URL信息(host、href、protocol、reload)
document代表当前页面:获取具体文档树节点、cookie
history代表 页面前进、后退

4、DOM对象

操作DOM对象

浏览器网页作为一个Dom树形结构
更新:更新Dom节点
遍历Dom节点:得到Dom节点
删除:删除Dom节点
添加:添加一个节点

获取节点
<body>
<div class="super">
    <h1>标题1</h1>
    <p id="p1"> p1</p>
    <p class="p2"> p2</p>
</div>

<script>
    let h1 = document.getElementsByTagName('h1');
    let p1 = document.getElementById('p1')
    let p2 = document.getElementsByClassName('p2');
    let father = document.getElementsByClassName('super');
    let children = father.children;//获取父节点下的所有子节点
</script>
</body>
更新节点
<body>
<div id="super">
</div>
<script>
    let father = document.getElementById('super');
    //修改文本值
    father.innerText = '4';
    //innerHTML 是 JavaScript 中的一个属性,用于获取或设置 HTML 元素的内容
    father.innerHTML = '<p style="color: red;">红色</p>';//设置
    let content = father.innerHTML; //获取
    console.log(content)
    //操作元素样式
    father.style.color = 'yellow'
</script>
</body>
删除节点

获取父节点,利用父节点删除

<body>
<div id="super">
    <p id = 'p1'>你好</p>
    <p id = 'p2'>世界</p>
</div>
<script>
    //通过子节点找到父节点
    let self = document.getElementById('p1');
    let father = self.parentElement;
    //删除方式1:
    father.removeChild(self);
    //删除方式2:
    //children是时刻变化的,当p1被删除之后,p2成为了father.children[0]
    father.removeChild(father.children[0])
</script>
</body>
插入节点
<body>
<div id = 'd1'>Java</div>
<div id="d2">
    <p id = 'p1'>你好</p>
    <p id = 'p2'>世界</p>
</div>
<script>
    let element1= document.getElementById('d1');
    let element2 = document.getElementById('d2');
</script>
</body>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1995680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【鸿蒙开发基础学习】组件导航 (Navigation)

组件导航 (Navigation) Navigation 是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。Navigation 组件适用于模块内和跨模块的路由切换&#xff0c;一次开发&#xff0c;多端部署场景。通过组件级路由能力…

视频剪辑SDK,人脸美化与滤镜特效,焕发直播新活力

在数字化浪潮席卷全球的今天&#xff0c;直播已成为连接品牌与消费者、创作者与观众的重要桥梁。为了在激烈的直播竞争中脱颖而出&#xff0c;提供高质量、富有创意的直播内容成为关键。美摄科技&#xff0c;作为视频处理技术的先行者&#xff0c;携手其强大的视频剪辑SDK解决方…

Python:构建一个算法预测类型

准确工作&#xff1a;需要下载music.csv 已上传 构建模型内容&#xff1a; import pandas as pd music_data pd.read_csv(music.csv) # music_data Xmusic_data.drop(columns[genre]) # 删除的那一列的名字为genre Ymusic_data[genre] # 访问指定的列 Y 预测用的是决策树&…

leetcode日记(65)组合

一眼递归&#xff0c;第一版写出的代码写成了排列组合&#xff0c;然后修改后&#xff1a; class Solution { public:vector<vector<int>> combine(int n, int k) {vector<int> vec;vector<vector<int>> result;for(int i1;i<n;i){vec.push_…

[MAE] Masked Autoencoders Are Scalable Vision Learners

1、目的 NLP领域的自监督预训练非常成功&#xff0c;CV领域可以参考其masked autoencoding方法。主要挑战有&#xff1a; 1&#xff09;CNN不会直接用mask tokens或者positional embeddings&#xff0c;而是在规则网格上运算 -> Vision Transformers (ViT) 2&#xff09;Lan…

SQL注入sqli-labs-master关卡四

第四关如下&#xff1a; 查看其php代码&#xff1a;发现其与前三关的区别就在于id这里。即使用")进行逃离。 则步骤与前三关一致&#xff0c;细节上改变即可。 输入?id1判断是字符型还是数字型注入 输入?id-1") union select 1,2,3--只显示2&#xff0c;3列。 输入…

C++从入门到起飞之——深浅拷贝string类补充 全方位剖析!

​ &#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1、浅拷贝 2、深拷贝 3、现代版写法的拷贝构造和赋值重载 4、再探swap! 5、写实拷贝&#xff…

[开端]如何看待“低代码”开发平台的兴起

如何看待“低代码”开发平台的兴起&#xff1f; 近年来&#xff0c;“低代码”开发平台如雨后春笋般涌现&#xff0c;承诺让非专业人士也能快速构建应用程序。这种新兴技术正在挑战传统软件开发模式&#xff0c;引发了IT行业的广泛讨论。低代码平台是提高效率的利器&#xff0…

从零开始构建基于ChatGPT的嵌入式(Embedding)本地医疗客服问答机器人模型(看完就会,看到最后有惊喜)

1、前言 代码全部开源,GitHub地址为: github.com/aehyok/go-o… 前端完全也能搭建&#xff0c; 前端完全也能搭建&#xff0c; 前端完全也能搭建&#xff0c; 本文中我使用的是后端语言golang,来调用的所有外部接口&#xff0c;但它们均是restful api,所以如果你使用的是其他…

FPGA开发——IP核的FIFO调用

一、简介 FIFO 的英文全称是 First In First Out&#xff0c;即先进先出。 FPGA 使用的 FIFO 一般指的是对数据的存储具有先进先出特性的一个缓存器&#xff0c;常被用于数据的缓存或者高速异步数据的交互&#xff0c;也即所谓的跨时钟域信号传递。它与 FPGA 内部的 RAM 和 ROM…

C语言 | Leetcode C语言题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; int minPatches(int* nums, int numsSize, int n) {int patches 0;long long x 1;int index 0;while (x < n) {if (index < numsSize && nums[index] < x) {x nums[index];index;} else {x << 1;patches;}}retu…

网通设备有关工程师产品设计时如何选择适合的集成网口座呢?

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;今天分享的是网通设备有关工程师产品设计时如何选择集成网口座呢&#xff1f; 下面我们一起来看看网通设备有关工程师产品设计时是选择集成网口座的 综合多年与网通产品或相关…

微调LLama 3.1——七月论文审稿GPT第5.5版:拿早期paper-review数据集微调LLama 3.1

前言 对于llama3&#xff0c;我们之前已经做了针对llama3 早7数据微调后的测评 去pk llama2的早7数据微调后&#xff0c;推理测试集中的早期paper&#xff1a;出来7方面review去pk gpt4推理测试集中的早期paper&#xff1a;7方面reviewground truth是早期paper的7方面人工rev…

13.3 正则表达式的应用

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

vue 打包时候的分包

export default defineConfig({plugins: [vue()],resolve: {alias: {: fileURLToPath(new URL(./src/, import.meta.url))}},// 分包&#xff0c;node_modules中的单独打包成名字为vendor的js文件build: {rollupOptions: {manualChunks(id) {if (id.includes(node_modules)) {r…

汽车测试,引领国际

汽车测试及质量监控博览会&#xff08;中国&#xff09;(Testing Expo China 2024 - Automotive )是引领世界的领先国际展会&#xff0c;将于 2024 年 8 月 28-30日在上海世博展览馆举行。展示汽车测试、开发和验证技术的各个方面&#xff0c;每年在中国、欧洲和美国举办&#…

Openssh升级到>=9.6版本导致sftp不兼容的解决办法

因为要修复漏洞&#xff0c;所以得升级openssh&#xff0c;但从9.6开始&#xff0c;默认编译出来的openssh&#xff0c;无法兼容之前的sftp客户端了&#xff0c;大概的错误信息就是算法协商不一致。 解决办法其实也简单&#xff0c;就2步&#xff1a; 1. 编译的时候&#xff0c…

Linux学习记录(五)-------三类读写函数

文章目录 三种读写函数1.行缓存2.无缓存3.全缓存4.fgets和fputs5.gets和puts 三种读写函数 1.行缓存 遇到新行&#xff08;\n&#xff09;,或者写满缓存时&#xff0c;即调用系统函数 读&#xff1a;fgets,gets,printf,fprintf,sprintf写&#xff1a;fputs,puts,scanf 2.无缓…

Flink Checkpoint expired before completing解决方法

在Flink消费Kafka日志的时候出现了这样的一则报错&#xff0c; JobManager报错如下&#xff1a; 2024-03-07 15:21:12,500 [Checkpoint Timer] WARN org.apache.flink.runtime.checkpoint.CheckpointFailureManager [] - Failed to trigger or complete checkpoint 181 for …

面试官:怎样设计一个分布式任务调度平台?

大家好&#xff0c;我是君哥。 在工作中&#xff0c;批量任务调度的需求经常会遇到&#xff0c;比如下面的几个场景&#xff1a; 数据迁移&#xff1a;从数据库 A 批量读取数据&#xff0c;加工后把数据写入数据库 B&#xff1b; 消息通知&#xff1a;运营商批量给客户发送短…