JS基础知识05-对象、Ajax、JSON
目录
一、对象
1.1.对象(Object)
1.创建对象
对象的常用方法
1.2.Math对象
1.数学常数
2.数学函数
3.随机数生成
4.对数方法
1.3.Date对象
创建Date对象
获取日期和时间的方法
设置日期和时间的方法
日期的格式化方法
二、Ajax
1.创建XMLHttpRequest对象
2.配置请求
3.发送请求
4.处理响应
5.处理错误
三、JSON
3.1.JSON的基本概念
3.2.JSON的结构
1、JSON对象
2、JSON数组
3.3.JavaScript中处理JSON的方法
1.JSON.stringify()
示例
输出
2.JSON.parse()
使用方法
示例:
注意事项
使用reviver参数
一、对象
在JavaScript中,对象(Object)是一种复合值,它允许你将多个值(包括原始值和对象)组织成一个结构。对象是由键值对(key-value pairs)组成的,其中键(key)通常是字符串(也可以是Symbol),而值(value)可以是任何数据类型,包括函数、数组、对象等。
1.1.对象(Object)
1.创建对象
a.对象字面量
let person = {name: "Alice",age: 25,greet: function() {console.log("Hello!");}
};
b.构造函数
function Person(name, age) {this.name = name;this.age = age;this.greet = function() {console.log("Hello!");};
}let person = new Person("Alice", 25);
c.Object.create方法
let personPrototype = {greet: function() {console.log("Hello!");}
};let person = Object.create(personPrototype);
person.name = "Alice";
person.age = 25;
4.类(ES6引入)
class Person {constructor(name, age) {this.name = name;this.age = age;}greet() {console.log("Hello!");}
}let person = new Person("Alice", 25);
2.访问和修改对象的属性
通过点(.
)或方括号([]
)符号来访问和修改对象的属性:
let person = {name: "Alice",age: 25
};console.log(person.name); // 输出: Alice
console.log(person["age"]); // 输出: 25person.name = "Bob";
person["age"] = 30;console.log(person.name); // 输出: Bob
console.log(person["age"]); // 输出: 30
删除对象的属性
使用 delete
操作符来删除对象的属性
let person = {name: "Alice",age: 25
};delete person.name;console.log(person.name); // 输出: undefined
对象的遍历
使用 for...in
循环来遍历对象的可枚举属性
let person = {name: "Alice",age: 25,greet: function() {console.log("Hello!");}
};for (let key in person) {if (person.hasOwnProperty(key)) { // 过滤掉从原型链上继承的属性console.log(`${key}: ${person[key]}`);}
}
对象的常用方法
Object.keys(obj)
:返回一个数组,其元素是对象自身的(非继承的)可枚举属性名称。
Object.values(obj)
:返回一个数组,其元素是对象自身的(非继承的)可枚举属性对应的值。
Object.entries(obj)
:返回一个给定对象自身可枚举属性的键值对数组,其排列与通过手动遍历该对象属性返回的顺序一致(区别在于该方法的返回是一个数组)。
Object.assign(target, ...sources)
:用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
1.2.Math对象
Math对象是JavaScript中的一个内置对象,它提供了许多数学常数和函数,用于执行各种数学计算和操作。Math对象是一个静态对象,这意味着它不需要被实例化,可以直接通过Math对象来访问其属性和方法。
1.数学常数
Math对象提供了一些数学常量作为属性,这些常量包括:
Math.E
:表示自然对数的底数e。 Math.PI
:表示圆周率π。
Math.SQRT2
:表示2的平方根。 Math.SQRT1_2
:表示1/2的平方根。
Math.LN2
:表示2的自然对数。 Math.LN10
:表示10的自然对数。
Math.LOG2E
:表示以2为底数e的对数。 Math.LOG10E
:表示以10为底数e的对数。
2.数学函数
Math对象还提供了许多数学函数作为方法,这些方法可以执行各种数学计算,包括:
Math.round(x)
:返回四舍五入后的整数。
Math.ceil(x)
:返回向上取整后的整数。 Math.floor(x)
:返回向下取整后的整数。
Math.trunc(x)
:返回去除小数部分后的整数(ES6新增)。
Math.pow(x, y)
:返回x的y次幂。 Math.sqrt(x)
:返回x的平方根。
Math.abs(x)
:返回x的绝对值。
3.随机数生成
Math.random()
方法返回一个介于0(包含)和1(不包含)之间的随机浮点数。
4.对数方法
Math对象提供了几种对数方法,包括Math.log()
(计算自然对数)、Math.log2()
(计算以2为底的对数)和Math.log10()
(计算以10为底的对数)。
1.3.Date对象
创建Date对象
使用new Date()创建一个表示当前日期和时间的date对象
获取日期和时间的方法
getFullYear():获取年份,四位数表示。
getMouth():获取月份,返回值为0到11(0表示1月,11表示12月)。
getDate:获取当前日期(一个月中的第几天),返回值为1到31。
getDay:获取星期几,返回值为0到6(0表示星期天,6表示星期六)。
getHours()、getMinutes()、getSeconds()、getMilliseconds():分别获取小时、分钟、秒、毫秒。
getTime():获取自1970年1月1日UTC零时起的毫秒数。
getTimezoneOffset():获取本地时间与UTC时间的差值,单位为分钟。
设置日期和时间的方法
setFullYear(year[,monthIndex[,day]])
setMouthIndex[,day]
setDate(day)
setHours(hours[,minutes[,seconds[,milliseconds]]])
setMinutes(minutes[,seconds[,milliseconds]])
setSeconds(seconds[.milliseconds])
setMilliseconds(milloseconds)
setTime(time)
日期的格式化方法
1、toLocaleDateString([locales[, options]])
:根据本地格式,返回日期部分的字符串表示。
2、toLocaleTimeString([locales[, options]])
:根据本地格式,返回时间部分的字符串表示。
3、toLocaleString([locales[, options]])
:根据本地格式,返回完整的日期和时间的字符串表示。
4、toISOString():返回ISO 8601格式的日期字符串。
let person = {name: "Alice",age: 25
};console.log(Object.keys(person)); // 输出: ["name", "age"]
console.log(Object.values(person)); // 输出: ["Alice", 25]
console.log(Object.entries(person)); // 输出: [["name", "Alice"], ["age", 25]]let newPerson = {};
Object.assign(newPerson, person, { job: "Developer" });
console.log(newPerson); // 输出: { name: "Alice", age: 25, job: "Developer" }
二、Ajax
AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它允许网页异步地从服务器请求额外的数据,或者在后台与服务器进行通信,而无需干扰用户的当前操作。尽管AJAX这个名字中包含了“XML”,但实际上它并不局限于使用XML格式的数据;它同样支持JSON、HTML或纯文本等多种数据格式。
2.1.Ajax的使用
1.创建XMLHttpRequest对象
首先,创建XMLHttpRequest对象,这个对象允许发送http请求到服务器,并接受服务器的响应。
var xhr = new XMLHttpRequest();
2.配置请求
使用open方法来配置请求。你需要指定请求的类型(如GET或POST)、请求的URL以及是否异步处理请求。
xhr.open('GET', 'https://example.com/api/data', true);
3.发送请求
使用send
方法发送请求到服务器。对于GET请求,通常不需要传递任何数据给send
方法(或者传递null
)。对于POST请求,你可以传递数据作为send
方法的参数
xhr.send();
4.处理响应
在发送请求后,你需要设置一个事件监听器来监听服务器的响应。通常,你会监听onreadystatechange
事件,该事件在XMLHttpRequest
对象的状态改变时触发。
xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {// 请求完成且响应成功var response = xhr.responseText; // 获取响应数据// 处理响应数据...}
};
readyState
属性表示请求的状态。它有几个可能的值,但最重要的是4,表示请求已完成且响应已就绪。status
属性表示HTTP状态码,200表示请求成功。
5.处理错误
还应该处理可能出现的错误情况,例如网络问题、服务器错误等。这通常通过检查status
属性是否不是200来实现
if (xhr.readyState === 4 && xhr.status !== 200) {// 处理错误...
}
JavaScript中,还提供了更高级的API来处理异步请求,如fetch
API。fetch
提供了一个更简洁、更强大的方式来执行网络请求,并返回一个Promise
对象,这使得处理异步操作变得更加容易。
fetch('https://example.com/api/data').then(response => {if (!response.ok) {throw new Error('Network response was not ok');}return response.json(); // 解析JSON数据}).then(data => {// 处理数据...}).catch(error => {// 处理错误...});
2.2.get请求
Ajax 无需刷新页面的情况下 更新网页内容
语法:get
get 和 post put delete
let xhr = new XMLHttpRequest();
创建ajax对象 (初始化)
xhr.open(请求类型,请求的接口地址(api));//建立链接
xhr.send()//发送请求 get里面什么都不需要写
xhr.readyState
0 请求未初始化
1 服务器连接建立
2 服务器接受到请求
3 请求处理中
4 请求处理完成 且数据已返回
xhr.onreadystatechange = function(){if(xhr.readyState == 4){// 接收数据// xhr.responseText 服务器返回的数据 存放在这个属性中// 只有 等于4 的时候 这个属性才有值}
}
fetch.api
fetch("https://example.com/api/data?param1=value1¶m2=value2").then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Error:', error));
2.3.post请求
let xhr = new XMLHttpRequest();
// 创建ajax
xhr.open("POST","接口地址");//注意这里不允许 ?拼接字符
// 只有get请求可以
xhr.setRequestHeader("Content-type","")
// 设置请求头
// Content-type设置发送数据的格式
// 第一种 application/x-www-form-urlencoded
//第二种 application/json
//第三种 只能用于上传文件multipart/form-data
xhr.send("name=张三&age=22");//post在这里传递参数
xhr.onreadystatechange = function(){if(xhr.readyState == 4){console.log(xhr.responseText);}
}
请求示例:
原生js
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://example.com/api/data", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {console.log(xhr.responseText);}
};
var data = "param1=value1¶m2=value2";
xhr.send(data);
对于发送JSON数据,需要设置Content-Type
为application/json
:
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://example.com/api/data", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {console.log(xhr.responseText);}
};
var data = JSON.stringify({ param1: "value1", param2: "value2" });
xhr.send(data);
使用fetch.API
fetch("https://example.com/api/data", {method: "POST",headers: {"Content-Type": "application/x-www-form-urlencoded"},body: "param1=value1¶m2=value2"
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
fetch发送JSON数据
fetch("https://example.com/api/data", {method: "POST",headers: {"Content-Type": "application/json"},body: JSON.stringify({ param1: "value1", param2: "value2" })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
三、JSON
3.1.JSON的基本概念
在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于语言的文本格式来存储和表示数据。简单说,JSON是一种数据格式,不是一种编程语言,虽然它具有相同的语法形式,但它是JavaScript的一个子集。
3.2.JSON的结构
JSON对象在JavaScript中是以对象字面量的形式来表示的,它使用键值对的方式来存储数据。键(key)必须是字符串,而值(value)则可以是字符串、数字、布尔值、数组、对象或null。
1、JSON对象
{"key1": "value1","key2": 2,"key3": true,"key4": {"nestedKey": "nestedValue"},"key5": [1, 2, 3, "four"]
}
在JavaScript中,可以使用对象字面量来创建一个与上述JSON对象等价的JavaScript对象:
let person = {"key1": "value1","key2": 2,"key3": true,"key4": {"nestedKey": "nestedValue"},"key5": [1, 2, 3, "four"]
};
2、JSON数组
[{"name": "John", "age": 30},{"name": "Anna", "age": 22},{"name": "Peter", "age": 35}
]
在JavaScript中,可以使用数组字面量来创建一个与上述JSON数组等价的JavaScript数组
let people = [{name: "John", age: 30},{name: "Anna", age: 22},{name: "Peter", age: 35}
];
3.3.JavaScript中处理JSON的方法
在JavaScript中,处理JSON数据通常会用到两个方法:JSON.stringify()
和JSON.parse()
。
1.JSON.stringify()
JSON.stringify()
方法可以将一个JavaScript值(通常是一个对象或数组)转换为一个JSON字符串。这个方法接收三个参数:
value:要转换的JavaScript值(对象、数组等)。
replacer(可选):一个函数或数组,用于控制哪些值应该被序列化到JSON字符串中。
space(可选):用于美化输出的字符串,可以是数字或字符串。如果是数字,表示每一级缩进的空格数;如果是字符串(如\t
),则使用该字符串作为缩进。
示例
let obj = { name: "John", age: 30, city: "New York" };
let jsonString = JSON.stringify(obj, null, 2);
console.log(jsonString);
输出
{"name": "John","age": 30,"city": "New York"
}
2.JSON.parse()
JSON.parse()
方法用于将JSON字符串解析为JavaScript对象。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于语言的文本格式来存储和表示数据。简单说,JSON是一种数据格式,不是一种编程语言,虽然它具有相同的语法形式,但它并不遵循JavaScript的语法规则。
使用方法
JSON.parse(text[,reviver])
text:必需,一个有效的JSON字符串
reviver:可选。一个转换函数,该函数将对键值对执行一次处理,然后再将结果返回
返回值:返回由字符串转换来的对象
示例:
// 一个简单的JSON字符串
var jsonString = '{"name": "John", "age": 30, "city": "New York"}';// 使用JSON.parse()将JSON字符串转换为JavaScript对象
var obj = JSON.parse(jsonString);console.log(obj.name); // 输出: John
console.log(obj.age); // 输出: 30
console.log(obj.city); // 输出: New York
注意事项
安全性:由于
JSON.parse()
会执行JSON字符串中的代码(如果有的话),因此不要解析不受信任的JSON字符串,因为这可能会导致安全问题,比如代码注入。异常处理:如果传入的字符串不是有效的JSON格式,
JSON.parse()
会抛出一个SyntaxError
异常。因此,在解析JSON字符串时,最好使用try...catch
语句来捕获可能发生的错误。
使用reviver参数
reviver
参数是一个可选的函数,它按照从外到内,从上到下的顺序(即先遍历最外层的键值对,然后是内层的,依此类推),对解析出来的对象的每个键值对执行一次处理。这个函数接收两个参数,键(key)和值(value),并返回一个新的值,这个值会被插入到结果对象中。如果返回undefined
,则当前属性会从结果中被删除。
var jsonString = '{"name":"John", "age":30, "city":"New York"}';var obj = JSON.parse(jsonString, function(key, value) {if (key === "age") {return value + 1; // 将年龄加1}return value;
});console.log(obj.age); // 输出: 31
通过JSON.parse()
方法,我们可以轻松地将JSON格式的字符串转换为JavaScript对象,从而方便地进行后续的数据处理。
亲们~~,没写完不小心点了发布,后续还会完善此文
相关文章:
JS基础知识05-对象、Ajax、JSON
目录 一、对象 1.1.对象(Object) 1.创建对象 对象的常用方法 1.2.Math对象 1.数学常数 2.数学函数 3.随机数生成 4.对数方法 1.3.Date对象 创建Date对象 获取日期和时间的方法 设置日期和时间的方法 日期的格式化方法 二、Ajax 1.创建XM…...
pandas 读写excel
在Python中,使用Pandas库读写Excel文件是一个常见的操作。Pandas提供了read_excel和to_excel方法来分别实现读取和写入Excel文件的功能。以下是一些基本的示例: ### 读取Excel文件 python import pandas as pd # 读取Excel文件 df pd.read_excel(pat…...
Windows加固脚本
echo off REM 清屏 cls title 安全策略设置批处理 color f0 echo **************************************** echo write by afei echo https://www.jianshu.com/u/ea4c85fbe8c7 echo **************************************** pause cls color 3f echo ********************…...
28.100ASK_T113-PRO Linux+QT 显示一张照片
1.添加资源文件 2. 主要代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QImage> #include <QPixmap>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);QIm…...
Vue中的计算属性和监听属性
在Vue中,计算属性和监听属性是两种非常有用的功能,它们可以帮助我们更好地管理数据和响应数据的变化。 计算属性 计算属性是基于它们的依赖进行缓存的。只有当依赖发生变化时,计算属性才会重新计算。这使得计算属性非常适合用于执行昂贵的计…...
基于vite创建的react18项目的单元测试
题外话 最近一个小伙伴进了字节外包,第一个活就是让他写一个单元测试。 嗯,说实话,在今天之前我只知道一些理论,但是并没有实操过,于是我就试验了一下。 通过查询资料,大拿们基本都说基于vite的项目&…...
网络——HTTP与HTTPS三次握手和四次挥手
HTTP协议本身并不直接处理TCP连接的建立和关闭,这些是由底层的TCP协议来完成的。但是,由于HTTP通常运行在TCP之上,因此理解TCP的三次握手(用于建立连接)和四次挥手(用于关闭连接)对于理解HTTP通…...
自然语言处理:第六十六章 17 种 prompt engineering 方法大集合
本人项目地址大全:Victor94-king/NLP__ManVictor: CSDN of ManVictor 原文地址:17 种 prompt engineering 方法大集合 写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!! 写在前面: 笔者更新不易,希望走过路…...
MySQL —— MySQL 程序
目录 前言 一、MySQL 程序简介 二、mysqld -- MySQL 服务器 三、mysql -- MySQL 客户端 1. mysql 客户端简介 2. mysql 客户端选项 (1)指定选项的方式 (2)mysql 客户端命令常用选项 (3)在命令行中使…...
AI蛋白质设计与人工智能药物设计
AI蛋白质设计与人工智能药物设计 AI蛋白质设计 一、蛋白质相关的深度学习简介 1.基础概念 1.1.机器学习简介:从手写数字识别到大语言模型 1.2.蛋白质结构预测与设计回顾 1.3.Linux简介 1.4.代码环境:VS code和Jupyter notebook* 1.5.Python关键概…...
Java基础之控制语句:开启编程逻辑之门
一、Java控制语句概述 Java 中的控制语句主要分为选择结构、循环结构和跳转语句三大类,它们在程序中起着至关重要的作用,能够决定程序的执行流程。 选择结构用于根据不同的条件执行不同的代码路径,主要包括 if 语句和 switch 语句。if 语句有…...
安装Fcitx5输入框架和输入法自动部署脚本(来自Mark24)-Ubuntu通用
在Ubuntu22.04上安装rime中文输入法的基本教程 上述文章接近废弃。 使用新逻辑配置基本的Fcitx5的输入法。 安装 第一步,下载相关组件 sudo nala install vim sudo nala install ruby sudo nala install fcitx5-rime第二步,设置语言为Fcitx5 而非 默认…...
软件无线电(SDR)的架构及相关术语
今天简要介绍实现无线电系统调制和解调的主要方法,这在软件定义无线电(SDR)的背景下很重要。 外差和超外差 无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率(称为外差),而第二种超外差是通过两个调制阶段来实…...
刷题分享11_30
刷题分享 1.(力扣216)这是一道回溯算法的经典题目。对于回溯算法,一般backtracking是没有返回值的,参数也比较不固定,需要根据每个题的特点来具体分析。这道题因为不能取到重复元素,所以需要额外加一个参数startindex,…...
Java技术复习提升 17反射
本章涉及到框架开发中必用的反射以及常用方法 很重要 注重理解并实践 第17章 反射 17.1 一个需求引出反射 package com.fsl; public class Cat {private String name "招财猫";public int age 10; //public的public Cat() {} //无参构造器public Cat(String name)…...
Python中的字符串
Python中的字符串 在Python中,字符串是用于表示文本数据的基本数据类型。字符串可以包含字母、数字、符号和空格等字符。Python提供了多种方式来定义和操作字符串。 字符串的定义 在Python中,字符串可以用单引号 或双引号 "" 括起来。例如…...
B站狂神说Mybatis+Spring+SpringMVC整合理解(ssm框架整合)
文章目录 0.写在前面(对mybatis,spring的理解)(不看可跳过)0.1 为什么需要mybatis0.2 为什么需要spring0.3为什么需要springmvc 1.新建ssmbuild数据库2.新建Maven项目3.初始化步骤3.1 配置下载maven依赖,构建资源导出3.2 连接数据库3.3建包&a…...
python:文件操作
一、文件路径 在Windows系统中,每个磁盘都有自己的根目录,用分区名加反斜杠来表示。我们定位文件的位置有两种方法,一种是绝对路径,另一种是相对路径。绝对路径是从根目录出发的路径,路径中的每个路径之间用反斜杠来分…...
ECharts柱状图-极坐标系下的堆叠柱状图,附视频讲解与代码下载
引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…...
HDMI协议
HDMI设计3--HDMI 1.4/2.0 Transmitter Subsystem IP - 皮皮祥 - 博客园 HDMI设计4--HDMI 1.4/2.0 Receiver Subsystem IP - 皮皮祥 - 博客园 HDMI协议 - 标签 - 皮皮祥 - 博客园...
SpringBoot集成Flowable
一、工作流介绍 1、概念 通过计算机对业务流程的自动化管理。工作流是建立在业务流程的基础上,一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。 解决的是:在多个参与者之间按照某种预定义的规则自动进行传递文…...
五,[GXYCTF2019]Ping Ping Ping1
进入靶场,有提示 我们在url试着输入本地IP,返回了ping命令 既然要在url处传参,那就用postman,再输入ip127.0.0.1 & ls,试着列出目录内容 ok,好像是个脏话,它过滤了空格 试着穿越又看到了脏话࿰…...
Linux -初识 与基础指令1
博客主页:【夜泉_ly】 本文专栏:【Linux】 欢迎点赞👍收藏⭐关注❤️ 文章目录 📚 前言🖥️ 初识🔐 登录 root用户👥 两种用户➕ 添加用户🧑💻 登录 普通用户⚙️ 常见…...
单片机学习笔记 12. 定时/计数器_定时
更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...
采用片上光学相控阵的激光雷达
激光雷达基础知识 LIDAR 基于众所周知的 RADAR 原理雷达是20世纪初就存在的著名技术激光雷达使用光频率而不是无线电波 激光雷达和雷达 使用相控阵的激光雷达通过干涉来提高方向性 激光雷达的输出剖面是阵列因子和单天线远场的乘积。 N :天线数量 k :…...
LeetCode Hot100 11~20
目录 子串11. 滑动窗口最大值12. 最小覆盖子串 数组13. 最大子数组和14. 合并区间15. 翻转数组16. 除数字自身以外的乘积17. 缺失的第一个正数 矩阵18. 矩阵置零19. 螺旋矩阵20 旋转图像90度 子串 11. 滑动窗口最大值 本题使用deque来维护一个单调队列 注意删除元素和添加元素…...
泰州榉之乡全托机构探讨:自闭症孩子精细动作训练之法
当发现自闭症孩子精细动作落后时,家长们往往会感到担忧和困惑。那么,自闭症孩子精细动作落后该如何训练呢?今天,泰州榉之乡全托机构就来为大家详细解答。 榉之乡大龄自闭症托养机构在江苏、广东、江西等地都有分校,一直…...
Mybatis:CRUD数据操作之修改数据update
Mybatis基础环境准备请看:Mybatis基础环境准备 本篇讲解Mybati数据CRUD数据操作之修改数据 用户在该页面书写需要修改的数据,点击 提交 按钮,就会将数据库中对应的数据进行修改。注意一点,如果哪儿个输入框没有输入内容ÿ…...
模拟器快速上手,助力HarmonyOS应用/服务高效开发
文章目录 1 创建模拟器1)打开设备管理界面2)设置本地模拟器实例存储路径3)创建一个模拟器(1)选择模拟器设备(2)创建模拟器(3)启动模拟器(4)关闭模…...
ERROR in [eslint] Invalid Options ‘extensions‘ has been removed.
看着这个报错 感觉是版本不对引起的 ERROR in [eslint] Invalid Options: - Unknown options: extensions - extensions has been removed. ERROR in Error: Child compilation failed: [eslint] Invalid Options: - Unknown options: extensions - extensions has b…...
40分钟学 Go 语言高并发:GC原理与优化
GC原理与优化 一、GC基础知识概览 方面核心概念重要性优化目标GC算法三色标记法、并发GC⭐⭐⭐⭐⭐理解GC工作原理垃圾回收策略触发条件、回收步骤⭐⭐⭐⭐⭐掌握GC过程GC调优参数设置、性能监控⭐⭐⭐⭐优化GC效果内存管理内存分配、内存逃逸⭐⭐⭐⭐⭐减少内存压力 让我们…...
【UG\NX二次开发-Block UI】指定方位 VisibleManipulatorHandles 设置控制器手柄可见
特定于块属性 VisibleManipulatorHandles 值 Origin 0x1 原点 Ratate X 0x10 旋转 Ratate Y 0x20 Ratate Z 0x40 Translate X 0x2 平移 Translate Y 0x4 Translate Z 0…...
【Spring】聊聊@EventListener注解原理
1.一个Demo出发 在平时的开发中,其实编写同步线程代码是比较容易的,但是如何将一些操作和另外一些操作进行解除耦合,而事件方式 是一种很好的解耦合方式,比如当一个用户注销一个APP之后,需要发送一些短信 让他引流回来…...
Online Judge——【前端项目初始化】全局状态管理
状态管理:所有页面全局共享的变量,而不是局限在某一个页面中。 适合作为全局状态的数据:比如已登录用户信息。 目录 一、创建user.ts文件二、定义user模块三、获取静态变量四、修改状态变量 一、创建user.ts文件 我们要实现状态管理的话&am…...
微信小程序构建npm失败,没有找到可以构建的npm包
方法:打开终端输入 npm init -y npm install 或 yarn install我用 npm install 下载后并没有出现node_modules, 又用 yarn install 下载,成功了 下载好后,在project.config.json文件添加 "showShadowRootInWxmlPanel": true, …...
《数字图像处理基础》学习07-图像几何变换之最近邻插值法放大图像
目录 一,概念 二,题目及matlab实现 1,解题思路 2,matlab实现 1)matlab思路 2)完整代码 三,放大图像及matlab实现 一,概念 通过上一篇,我已经学习了使用最邻近插…...
科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次
今年12月03日是第33个国际残疾人日。在当下科技发展日新月异的时代,如何让残障人士共享科技红利、平等地参与社会生活,成为当前社会关注的热点。 中国有超过8500万残障人士,其中超过2400万为肢残人群,视力障碍残疾人数超过1700万…...
数据结构——有序二叉树的构建遍历查找
树节点 先定义树节点结构,代码如下: package tree;public class TreeNode {public int data;public TreeNode left;public TreeNode right;//数据的类型决定数据在内存中的存储形式,//这样可以接受本类型的数据public TreeNode(int data) {this.datada…...
React 状态管理:Redux 和 MobX 的对比与选择
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
CSDN设置成黑色背景(谷歌 Edge)
一.谷歌浏览器 浏览器地址输入:Chrome://flags搜索框输入:enable-force-dark将default 改成 enabled,点击重启浏览器 二.Edge浏览器 浏览器地址输入:edge://flags搜索里面输入Auto Dark Mode for Web Contents将default 改成 e…...
SAP Native SQL 的简单说明
Open SQL访问数据字典中声明的数据库表,不区分数据库类型,执行时会自动转换为对应的语句,且可以使用本地缓存。Native SQL使用特定于数据库的SQL语句,但是可以访问比Open SQL 更多的表,更多的操作,缺点也很明显&#x…...
shodan2-批量查找CVE-2019-0708漏洞
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
LabVIEW实现RS485通信
目录 1、RS485通信原理 2、硬件环境部署 3、串口通信函数 4、程序架构 5、前面板设计 6、程序框图设计 7、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常…...
【分页查询】.NET开源 ORM 框架 SqlSugar 系列
.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...
【QT入门到晋级】QT项目打生产环境包--(Linux和window)
前言 使用QTcreator完成正常编译后,在构建目录中有可执行程序生成,如果直接把可执行程序拷贝到干净的生产环境上是无法运行成功的,使用ldd(查看程序依赖包)会发现缺失很多QT的特性包,以及将介绍国产Linux桌…...
Milvus×Florence:一文读懂如何构建多任务视觉模型
近两年来多任务学习(Multi-task learning)正取代传统的单任务学习(single-task learning),逐渐成为人工智能领域的主流研究方向。其原因在于,多任务学习可以让我们以最少的人力投入,获得尽可能多…...
深入理解异步编程:使用 `asyncio` 和 `aiohttp` 进行并发请求
深入理解异步编程:使用 asyncio 和 aiohttp 进行并发请求 1. 异步编程简介2. 代码结构概览3. 代码详解3.1 fetch 函数3.2 fetch_all 函数3.3 main 函数3.4 主程序 4. 性能分析5. 总结 在现代的Web开发中,性能优化是一个非常重要的课题。特别是在处理大量…...
C++之虚函数
对基类中的方法进行重写; 主要是通过继承机制 V 表实现; 虚函数的引入与不加入虚函数的主要区别在于 动态多态性。通过将 Entity 类的 GetName 函数声明为 virtual,可以实现 运行时多态,这意味着程序会根据对象的实际类型调用相应…...
buildroot 制作Linux嵌入式文件系统,并添加telnet 以及ssh
在开始配置前,我们需要了解SSH和Telnet的基本概念。SSH(Secure Shell)为加密的网络协议,用于在不安全的网络中执行命令并管理网络服务。相对于SSH,Telnet是一个老旧且非加密的协议,用于进行远程登录 sshd 服…...
(Linux 系统)进程控制
目录 一、进程创建 1、fork函数初识 二、进程终止 1、正常终止 2、异常终止 三、进程等待 1、进程等待必要性 2、进程等待的方法: 四、获取子进程status 1、基本概念 2、进程的阻塞等待方式 3、进程的非阻塞等待方式 五、进程程序替换 1、六种替换函数…...