前端三大件速成 05 javascript(2)字符串对象、数组对象、函数对象、BOM对象、DOM对象

文章目录

  • 一、字符串对象
    • 1、创建字符串对象的两种方式
    • 2、字符串属性
    • 3、字符串的方法
      • (1)编排方法
      • (2)查询字符串索引
      • (3)字符串切片
      • (4)大小写转换
      • (5)获取指定字符
      • (6)替换字符串
      • (7)分割字符串
      • (8)连接字符串
  • 二、数组对象
    • 1、数组的创建
    • 2、数组方法
      • (1)toString
      • (2)join方法
      • (3)concat方法
      • (4)slice方法
      • (5)reverse方法
      • (6)sort方法
      • (7)splice方法
      • (8)数组的进出栈操作
  • 三、函数对象
    • 1、构造方法
      • (1)基本定义方法与调用
      • (2)函数的内置对象arguments
    • 2、匿名函数
    • 3、作用域
  • 四、BOM对象
    • 1、window对象
    • 2、history对象
    • 3、location对象
  • 五、DOM对象
    • 1、DOM简介
    • 2、DOM节点与节点查找
    • 3、HTML DOM Event(事件)
      • (1)常用属性
      • (2)两种事件绑定方式
      • (3)this参数
      • (4)Event对象
      • (5)事件传播
    • 4、DOM节点的增删改
    • 5、关于class的操作

ECMA对象有11种内置对象:
Array, String, Date, Math, Boolean, Number, Function, Global, Error, RegExp, Object

一、字符串对象

1、创建字符串对象的两种方式

// 方式一
var str1 = "hello1";// 方式二
var str2 = new String("hello2"); //关键字new表示新创建一个实例console.log(typeof str1); // string
console.log(typeof str2); // object

这两种方式本质上是一样的,就是数据类型有所差异。

2、字符串属性

var str1 = "hello1";console.log(str1.length); // 6

3、字符串的方法

(1)编排方法

编排方法很少在js中应用

var str1 = "hello1";console.log(str1.italics()); // <i>hello1</i>
console.log(str1.bold());    // <b>hello1</b>
console.log(str1.anchor())   // <a name="undefined">hello1</a>

(2)查询字符串索引

var str="welcome to the world of JS!";var str1 = str.indexOf("l")
var str2 = str.lastIndexOf("l")console.log(str1)   // 2
console.log(str2)   // 18

(3)字符串切片

var str="welcome to the world of JS!";console.log(str.substr(1,3))    // elc
console.log(str.substring(1,3)) // el
var str="welcome to the world of JS!";console.log(str.slice(1,3))    // el
console.log(str.slice(-3,-1))    // JS

(4)大小写转换

var str = "ABCef"var str1 = str.toLowerCase();
var str2 = str.toUpperCase();console.log(str1);  // abcef
console.log(str2);  // ABCEF

(5)获取指定字符

var str1 = "ABCef"// 获取指定位置的字符
console.log(str1.charAt(3)) // e// 获取指定位置字符的Unicode编码
console.log(str1.charCodeAt(3)) // 101

(6)替换字符串

var str1 = "abcdefgcd";
var str2 = str1.replace("cd", "123");console.log(str2)   // ab123efgcd

(7)分割字符串

var str1 = "a,b,c,d,e";
var strArray = str1.split(",");console.log(strArray);  // ['a', 'b', 'c', 'd', 'e']
console.log(strArray[1]);  // b

(8)连接字符串

var str1 = "abcd";
var str2 = str1.concat("efg");console.log(str2)   // abcdefg

二、数组对象

1、数组的创建

var arr1 = [1, "hello", [11,2],{"age":18}];
var arr2 = new Array(3); // 参数3为数组大小,缺省表示不确定数组大小
var arr3 = new Array(1,"world",true,[1,3]); //可以把数组元素直接写进来console.log(typeof arr1); // object
console.log(typeof arr2); // object
console.log(typeof arr3); // object
var arr = new Array(10); //单个数字表示size,不是数组元素console.log(arr.length); // 10

2、数组方法

(1)toString

object对象有toString。而ECMA对象都是由object对象继承来的,所以其他对象也都有这个方法。
toString():返回对象转化为字符串

var arr = new Array(1,"hello",true);
var ret = arr.toString()console.log(ret)        // 1,hello,true
console.log(typeof ret) // string

(2)join方法

var arr = [1,2,3,"1234"];
var ret = arr.join("**");console.log(ret);   // 1**2**3**1234
console.log(typeof ret); // string

(3)concat方法

var arr = [1,2,3];
var ret = arr.concat([5,66]);console.log(ret);   // [1, 2, 3, 5, 66]
console.log(typeof ret); // object

(4)slice方法

x.slice(start, end)

var arr = [1, 2, 3, 5, 66];
var ret1 = arr.slice(2,4);
var ret2 = arr.slice(3);
var ret3 = arr.slice(1,-1);console.log(ret1);   // [3, 5]
console.log(ret2);   // [5, 66]
console.log(ret3);   // [2, 3, 5]

(5)reverse方法

var arr = [23, 45, 37, 88]
var ret = arr.reverse()console.log(ret) // [88, 37, 45, 23]

(6)sort方法

sort方法默认是按逐位比较

var arr = [10,45,100,88];
var ret = arr.sort();console.log(ret); // [10, 100, 45, 88]
var arr = [10,45,100,88];
var ret;function f(a,b) {return a-b
}ret = arr.sort(f)console.log(ret); // [10, 45, 88, 100]

(7)splice方法

splice方法的主要用途是对数组指定位置进行删除和插入
x.splice(start, deleteCount, value, …)
  start 表示开始位置索引
  deleteCount 删除数组元素的个数
  value 删除位置插入的数组元素
  value参数可以省略

var a = [1,2,3,4,5];
a.splice(1,2);console.log(a); // [1, 4, 5]a.splice(1,0,55,66);console.log(a); // [1, 55, 66, 4, 5]

(8)数组的进出栈操作

var a = [1, 2, 3];a.push([7, 8, 0]);
a.push("hello", 5)console.log(a); // [1, 2, 3, Array(3), 'hello', 5]
console.log(a.length) // 6console.log(a.pop());   // 5
console.log(a.pop());   // helloconsole.log(a); // [1, 2, 3, Array(3)]
var a = [4, 5, 6];
a.unshift([11, 22]);
a.unshift(true, "yes");console.log(a); // [true, 'yes', Array(2), 4, 5, 6]console.log(a.shift()); // true
console.log(a); // ['yes', Array(2), 4, 5, 6]

三、函数对象

1、构造方法

(1)基本定义方法与调用

//定义函数
function f(){console.log(123)
}//调用函数
f()

注意:①浏览器会先加载function,所以调用函数语句可以写在定义函数语句前面。
   ②形参和实参个数可以不一样。

var ret1 = f(2,5,6);
var ret2 = f(2);console.log(ret1);  // 7
console.log(ret2);  // NaNfunction f(x,y){return x+y;
}

(2)函数的内置对象arguments

var ret1 = ADD(2,5,6,1);console.log("sum=",ret1);   // sum= 14function ADD(){var sum = 0;console.log(arguments);for (var i=0; i<arguments.length; i++){sum += arguments[i];}return sum;
}

2、匿名函数

var func = function (arg){alert(arg);
};func("hello");
(function (arg){alert(arg)
})("hello world");

3、作用域

js的作用域和python相似,if while等控制语句没有自己的作用域,而函数是有自己的作用域的。

if (1){var x = 10;
}
console.log(x); // 10
function f(){var y=12;
}console.log(y)  // 报错
var city = 'beijing';function func(){var city = 'shanghai';function inner(){city = 'shenzhen';}inner();console.log(city);
}
func(); // 结果为 shenzhen

四、BOM对象

BOM(浏览器对象模型),可以在浏览器窗口进行访问和操作,使用BOM,可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。

1、window对象

概念上讲,一个html文档对应一个window对象。
功能上讲,是控制浏览器窗口的。
使用上讲,window对象不需要创建对象,直接使用即可。
window是全局变量,调用方法时,可以省略。

// 下面两种调用方法相同
window.alert("hellow");alert("hellow");

常用方法:
alert(): 显示带有一段消息和一个确认按钮的警告框,
confirm(): 显示带有一段消息以及确认按钮和取消按钮的对话框。

var ret = window.confirm("hellow");
console.log(ret)    // 按确定,返回true;按取消返回false

prompt(): 显示课提示用户输入的对话框。

var ret = prompt("hello...");
console.log(ret)    // 按确定,返回对话框输入的字符串;按取消返回null

open(): 打开一个新的浏览器窗口,或查找一个已命名的窗口。

open("https://www.baidu.com/");

close(): 关闭浏览器窗口。

setInterval(): 按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval(f, 1000);function f(){console.log(666);
}

clearInterval(): 停止通过 setInterval() 方法设置的周期性定时器。
计时器小实验:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><input type="text" id="id1" onclick="begin()">  <!--把begin函数与点击事件关联-->
<button onclick="end()">停止</button><script>function showTime(){var current_time = new Date().toLocaleString(); // 返回当前时间字符串var ele = document.getElementById("id1");ele.value = current_time;
}var clock1;function begin(){if (clock1==undefined){showTime();clock1 = setInterval(showTime, 1000);}
}function end(){clearInterval(clock1);clock1 = undefined;
}</script></body>
</html>

setTimeout(): 在指定的毫秒数后,调用函数或计算表达式一次。
clearTimeout(): 取消由setTimeout()方法设置的周期性定时器

function f(){console.log("hello...");
}var c = setTimeout(f,2000);
// clearTimeout(c)

2、history对象

history对象时window对象的一部分。
history对象包含用户(在浏览器窗口中)访问过的URL。
属性:
length: 返回浏览器历史列表中的URL数量。

方法:
back(): 加载history列表中的前一个URL。
forward(): 加载history列表中下一个URL。

a.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="b.html">click</a><button onclick="history.forward()">>>>>>></button></body>
</html>

b.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><button onclick="history.back()">back</button></body>
</html>

go(): 加载history列表中的某个具体页面。
a.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><a href="b.html">click</a><button onclick="history.go(1)">>>>>>></button></body>
</html>

b.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><button onclick="history.go(-1)">back</button></body>
</html>

3、location对象

location对象也是window对象的一部分。
location对象包含有关当前URL的信息。

方法:
assign(): 跳到另一个页面
reload(): 刷新页面
replace(newURL): 替换一个新页面
注意:assign与replace的区别。assign可以返回到前一个网页,而replace不能。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><button onclick="f()">click</button><script>function f(){// location.assign("https://www.baidu.com");// location.reload();location.replace("https://www.baidu.com");}</script></body>
</html>

五、DOM对象

1、DOM简介

DOM定义了访问HTML和XML文档的标准。
DOM标准被分为3个不同的部分:
①核心DOM:针对任何结构化文档的标准类型
②XMLDOM:针对XML文档的标准模型
③HTMLDOM:针对HTML文档的标准模型

XML DOM定义了所有XML元素的对象和属性,以及访问它们的方法。
HTML DOM定义了所有HTML元素的对象和属性,以及访问它们的方法。

2、DOM节点与节点查找

HTML文档中的所有内容都是节点(NODE)
整个文档是一个文档节点(document对象)
每个HTML元素是元素节点(element对象)
HTML元素内的文本是文本节点(text对象)
每个HTML属性是属性节点(attribute对象)
注释是注释节点(comment对象)
在这里插入图片描述
节点(自身)属性:
attibutes:节点(元素)的属性节点
nodeTyoe:节点类型
nodeValue:节点值
nodeName:节点名称
innerHTML:节点(元素)的文本值

导航属性:
parentNode:节点(元素)的父节点
parentElement:父节点标签元素
children:所有子标签
firstElementChild:第一个子标签元素
lastElementChild:最后一个子标签元素
nextElementSibling:下一个兄弟标签元素
previousElementSibling:上一个兄弟标签元素

元素查找方法:
getElementById():通过id查找元素
getElementsByTagName():通过标签名查找元素
getElementsByClassName():通过类名查找元素
getElementsByname():通过name属性查找元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div class="div1"><p name="littleP" class="p1">hello p</p><div class="div2">hello div<div>div3</div><a href="">click</a></div><span>span1</span>
</div>
<span>span2</span>
<div id="div3">hhh</div><script>var ele1 = document.getElementById("div3");var ele2 = document.getElementsByClassName("p1")[0];console.log(ele1);console.log(ele2);console.log(ele2.nodeName); // Pconsole.log(ele2.nodeType); // 1 1表示元素节点console.log(ele2.nodeValue); // null 因为元素节点本身并没有一个直接对应的值。这个属性通常用于文本节点或注释节点等具有实际值的节点console.log(ele2.innerHTML); // hello pvar ele3 = document.getElementsByClassName("div1")[0];// ele3.innerHTML = "hello world";</script></body>
</html>
var ele = document.getElementsByClassName("div2")[0];
var p_ele = ele.parentNode;
console.log(p_ele);
var ele = document.getElementsByClassName("div2")[0];
var p_ele = ele.nextElementSibling;
console.log(p_ele);
console.log(p_ele.nodeName);
console.log(p_ele.innerHTML);
var ele = document.getElementsByClassName("div1")[0];
var ele1 = ele.children[1].children;
console.log(ele1)
var ele = document.getElementsByName("littleP")[0];
var ele1 = ele.nextElementSibling;console.log(ele1.innerHTML);
console.log(ele1.innerText);
// 局部查找
var ele = document.getElementsByClassName("div1")[0];
var ele1 = ele.getElementsByTagName("span");console.log(ele1[0].innerHTML);

注:局部查找不支持 getElementById() 和 getElementsByName()

3、HTML DOM Event(事件)

(1)常用属性

onclick: 当用户点击某个对象时,调用的事件句柄。
ondblclick: 当用户双击某个对象时,调用的事件句柄。
onfocus: 元素获得焦点
onblur: 元素失去焦点。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><input type="text" id="search" value="请输入用户名" onfocus="f1()" onblur="f2()"><script>var ele=document.getElementById("search");function f1(){if(ele.value=="请输入用户名"){ele.value = "";}}function f2(){if(!ele.value.trim())ele.value="请输入用户名";}
</script>
</body>
</html>

onchange: 域的内容被改变
onkeydown: 某个键盘按键被按下
onkeypress: 某个键盘按键被按下并松开
onkeyup: 某个按键被松开
onload: 一张页面或一幅图像完成加载。onload属性,在开发中只给body元素加。这个属性的触发,标志着页面内容被加载完成。应用场景:当有些事情我们希望页面加载完成,立刻执行。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>// 此时找不到div1,文字不变色var ele=document.getElementsByClassName("div1")[0];ele.style.color = "red";</script>
</head>
<body><div class="div1">hello world</div></body>
</html>

onmousedown: 鼠标按钮被按下
onmousemove: 鼠标被移动
onmouseout: 鼠标从某元素移开
onmouseover: 鼠标移到某元素之上
onmouseleave: 鼠标从元素离开
onselect: 文本被选中

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>// 此时可以找到div1,文字变红色function f(){var ele=document.getElementsByClassName("div1")[0];ele.style.color = "red";}</script>
</head>
<body onload="f()"><div class="div1">hello world</div></body>
</html>

onsubmit: 确认按钮被点击。当表单在提交时触发,该属性也只能给form元素使用。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><!--action="",则默认把数据发送到本页面-->
<form action="" id="form1"><input type="text" name="username"><input type="submit" value="提交">
</form><script>var ele = document.getElementById("form1");ele.onsubmit = function (){alert(123);return false;/* onsubmit会先执行绑定的自定义事件函数,再执行它默认的动作(向服务器发送数据),而执行return false可以组织执行默认动作 */};</script></body>
</html>

(2)两种事件绑定方式

①通过 HTML 属性设置事件处理函数

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div class="div1" onclick="f()">hello world</div><script>function f(){alert("123")}</script></body>
</html>

②通过事件处理程序属性设置事件处理函数(推荐)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div class="div1">helloworld</div><script>var ele=document.getElementsByClassName("div1")ele[0].onclick=function (){alert(666);};</script></body>
</html>

(3)this参数

this参数相当于一个全局变量,指代与该事件函数绑定的元素。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><span>haha</span>
<div class="div1" onclick="f(this)">hello world</div><script>function f(that){console.log(that);console.log(that.previousElementSibling);}</script></body>
</html>

注意:在函数不传值,直接在事件处理函数中调用this时,
①通过 HTML 属性设置事件处理函数,this指向 window 对象。
②通过事件处理程序属性设置事件处理函数,this 指向触发事件的元素。

(4)Event对象

Event对象代表事件的状态,比如事件在其中发生的元素、按键的状态、鼠标位置。
事件通常与函数结合使用,函数不会在事件发生前被执行。Event对象在事件发生时,系统已经创建好了,并且会在事件函数被调用时传给事件函数,我们获得仅仅需要接受一下即可。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><!--action="",则默认把数据发送到本页面-->
<form action="" id="form1"><input type="text" name="username"><input type="submit" value="提交">
</form><script>var ele = document.getElementById("form1");ele.onsubmit = function (e){alert(123);e.preventDefault(); //等同return false;};</script></body>
</html>

(5)事件传播

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.outer{width: 300px;height: 300px;background-color: antiquewhite;}.inner{width: 100px;height: 100px;background-color: rebeccapurple;}</style>
</head>
<body><div class="outer" onclick="func2()"><div class="inner"></div>
</div><script>var ele=document.getElementsByClassName("inner")[0];ele.onclick=function (e){alert("I am inner");e.stopPropagation(); //阻止传播,点击inner时,不会执行outer}function func2(){alert("I am outer!")}</script></body>
</html>

4、DOM节点的增删改

增:
createElement(name):创建元素
appendChild():父元素添加子元素

删除元素步骤:
①获取要删除的元素
②获得它的父元素
③使用removeChild()方法删除

改:
setAttribute():修改属性
innerHTML属性:修改元素的内容

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.div1,.div2,.div3{width: 300px;height: 100px;}.div1{background-color: green;}.div2{background-color: yellow;}.div3{background-color: rebeccapurple;}</style>
</head>
<body><div class="div1"><button onclick="add()">add</button>hello div1
</div><div class="div2"><button onclick="del()">del</button>hello div2
</div><div class="div3"><button onclick="change()">change</button><p>hello div3</p>
</div><script>function add(){var ele=document.createElement("p"); //<p></p>// ele.innerText="<h1>hello p</h1>";ele.innerHTML="<h1>hello p</h1>";ele.style.color="red";ele.style.fontSize="10px";var father=document.getElementsByClassName("div1")[0];father.appendChild(ele);}function del(){var father=document.getElementsByClassName("div1")[0];var son=father.getElementsByTagName("p")[0];father.removeChild(son);}function change(){var img=document.createElement("img");img.src="meinv.jpg"; //等同img.setAttribute("src","meinv.jpg");var ele = document.getElementsByTagName("p")[0];var father = document.getElementsByClassName("div3")[0];father.replaceChild(img, ele);}</script></body>
</html>

5、关于class的操作

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div class="div1 div2">div1</div><script>var ele=document.getElementsByTagName("div")[0];console.log(ele.className); // div1 div2console.log(ele.classList[0]);  // div1console.log(ele.classList[1]);  // div2ele.classList.add("hide");console.log(ele.className); // div1 div2 hideele.classList.remove("div1");console.log(ele.className); // div2 hide
</script></body>
</html>

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

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

相关文章

Python网络数据抓取(9):XPath

引言 XPath 是一种用于从 XML 文档中选取特定节点的查询语言。如果你对 XML 文档不太熟悉&#xff0c;XPath 可以帮你完成网页抓取的所有工作。 实战 XML&#xff0c;即扩展标记语言&#xff0c;它与 HTML&#xff0c;也就是我们熟知的超文本标记语言&#xff0c;有相似之处&am…

pyqt 鼠绘椭圆 椭圆标注

目录 pyqt 椭圆标注 四个方向可以调整,调整时,另一端固定,只调整当前端,椭圆参数保存加载json pyqt 画椭圆中心点固定,调整是,两端一起调整。 pyqt 椭圆标注 四个方向可以调整,调整时,另一端固定,只调整当前端,椭圆参数保存加载json import sys import json from …

ClickHouse快速安装教程(MacOS)

文章目录 ClickHouse快速安装教程&#xff08;MacOS&#xff09;1.ClickHouse2.快速安装3.快速启动3.1.启动服务器3.2.启动客户端 4.使用案例1.配置文件2.启动CK服务3.创建数据库4.创建表5.插入数据6.查询数据 ClickHouse快速安装教程&#xff08;MacOS&#xff09; 1.ClickHo…

【UEditorPlus】后端配置项没有正常加载,上传插件不能正常使用

接上文【UEditorPlus】后端配置项没有正常加载&#xff0c;上传插件不能正常使用_ueditor ruoyi vue后端配置项没有正常加载,上传插件不能正常使用!-CSDN博客 成功解决图片、视频上传问题后&#xff0c;当服务部署在公网时&#xff0c;会存在大文件无法正常上传的问题。 出现…

电感的本质是什么

什么是电感&#xff1f; 电感器件一般是指螺线圈&#xff0c;由导线圈一圈靠一圈地绕在绝缘管上&#xff0c;绝缘管可以是空心的&#xff0c;也可以包含铁芯或磁粉芯。 为什么把’线’绕成’圈’就是电感&#xff1f; 电感的工作原理非常抽象&#xff0c;为了解释什么是电感…

04通讯录管理系统——退出功能实现

功能描述&#xff1a;退出通讯录 思路&#xff1a;根据用户不同的选项&#xff0c;进入不同的功能&#xff0c;可以选择switch分支结构&#xff0c;将整个架构进行搭建 当用户选择0时&#xff0c;执行退出&#xff0c;选择其他时先不做操作&#xff0c;也不退出程序 代码&am…

2024年6月10日~2024年6月16日周报

文章目录 一、前段时间工作二、完成情况2.1 可变形卷积的学习2.1.1 Introduction-介绍2.1.2 Related Work-相关工作2.1.3 Method-方法2.1.3.1 可变形卷积动态属性的重认识2.1.3.2 Speeding up DCN—加速DCN 2.2 部署可变形卷积 三、假期计划 一、前段时间工作 在之前一段时间主…

------构造类型数据—结构体---- + ----函数-----

构造类型数据——结构体 1&#xff09;结构体的基本概念 结构体&#xff08;struct&#xff09;是C语言&#xff08;以及其他一些编程语言&#xff09;中用于将不同类型的数据组合成一个单一类型的方式。这种数据类型允许你将多个变量&#xff08;可能是不同类型&#xff09;…

结合Boosting理论与深度ResNet:ICML2018论文代码详解与实现

代码见&#xff1a;JordanAsh/boostresnet: A PyTorch implementation of BoostResNet 原始论文&#xff1a;Huang F, Ash J, Langford J, et al. Learning deep resnet blocks sequentially using boosting theory[C]//International Conference on Machine Learning. PMLR, 2…

axure9设置组件自适应浏览器大小

问题&#xff1a;预览时不展示下方的滚动条 方法一&#xff1a;转化为动态面板 1.在页面上创建一个矩形 2.右键-转化为动态面板 3.双击进入动态面板设置 4.设置动态面板矩形的颜色 5.删除原来的矩形 6.关闭动态面板&#xff0c;点击预览 7.此时可以发现底部没有滚动条了 方法…

AI大模型之争:通用与垂直,谁将拔得头筹?

✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点赞、关注、收藏、评论&#xff0c;是对我最大…

移植案例与原理 - startup子系统之syspara_lite系统属性部件 (2)

系统属性部件syspara_lite负责提供获取与设置操作系统相关的系统属性&#xff0c;包括默认系统属性、OEM厂商系统属性和自定义系统属性。为满足OpenHarmony产品兼容性规范&#xff0c;产品解决方案需要实现获取设备信息的接口&#xff0c;如&#xff1a;产品名、品牌名、厂家名…

苹果Mac电脑遭恶意软件攻击 Mac第三方恶意软件删除不了

苹果Mac电脑一直以来都以安全性和稳定性著称&#xff0c;许多用户认为Mac电脑不会受到恶意软件的侵害&#xff0c;但事实上&#xff0c;Mac电脑也不是绝对安全的&#xff0c;近年来&#xff0c;有越来越多的恶意软件针对Mac电脑进行攻击&#xff0c;甚至有些恶意软件可以绕过苹…

如何看待SD3 版本,和SDXL相比有何优势?

胖友们好&#xff01;&#xff01;&#xff01;痴迷AI的本枕又来写Stable Diffusion了…… SD社区群众们翘首企盼的SD3的weights总算在huggingface上发布了 于是我也在当天非常激动地用ComfyUI生成了一些图像…… 这篇文章算是半个评测半个心得吧&#xff0c;因为有些东西是…

解禁日大涨,爱玛科技的投资前景值得信任吗?

6月17日&#xff0c;爱玛迎来6.28亿股、金额超190亿元的解禁&#xff0c;占总股本72.91%。不过&#xff0c;爱玛股价在巨量解禁中反而迎来涨势&#xff0c;因为这部分股票中&#xff0c;创始人张剑持有的限售股数量几乎就占了爱玛总股本的七成。某种意义上&#xff0c;市场认为…

Windows系统下制作Windows Server系统U盘启动及安装指导

Windows系统下制作Windows Server系统U盘启动及安装指导 一、准备工作 U盘不得小于8G(推荐使用usb3.0接口)&#xff1b;下载好对应的系统镜像&#xff1b;下载RUFUS或者软通碟U盘制作启动软件&#xff1b; 二、Windows操作系统下制作U盘启动&#xff08;这里以使用RUFUS软件…

面向对象和面向过程

Python完全采用了面向对象的思想&#xff0c;是真正面向对象的编程语言&#xff0c;完全支持面向对象的基本功能&#xff0c;例如&#xff1a;继承、多态、封装等。 Python支持面向过程、面向对象、函数式编程等多种编程方式。而Java编程语言支持面向对象的编程方式&#xff0…

基于WPF技术的换热站智能监控系统16--动态数据绑定

1、实现思路 1&#xff09;实时读取到的数据绑定到前台UI控件上&#xff0c;这个通过MVVM模式实现&#xff0c;同时注意实时读取必须通过任务task异步方式&#xff0c;这就需要读取PLC数据。 2&#xff09;UI控件的动作&#xff0c;如开或关水泵&#xff0c;必定能够将值写入…

Java基础 - 练习(一)打印等腰三角形

Java基础练习 打印等腰三角形&#xff0c;先上代码&#xff1a; public static void main(String[] args) {// 打印等腰三角形System.out.println("打印等腰三角形&#xff1a;");isoscelesTriangle(); } public static void isoscelesTriangle() {// for循环控制行…

ollama模型CPU轻量化部署

一、定义 ollama 定义环境部署demo加载本地模型方法基本指令关闭开启ollamaollama 如何同时 运行多个模型, 多进程ollama 如何分配gpu修改模型的存储路径 二、实现 ollama 定义 ollama 是llama-cpp 的进一步封装&#xff0c;更加简单易用&#xff0c;类似于docker. 模型网址…