JS 入门

文章目录

  • JS 入门
  • 一、JS 概述
    • 1、JS 特点
    • 2、JS 组成
    • 3、JS 初体验
    • 4、HTML引入JS
  • 二、JS 基础语法
    • 1、变量声明
    • 2、基本数据类型
    • 3、引用数据类型
      • 1)数组
      • 2)对象
      • 3)函数
      • 4)null
    • 4、运算符
    • 5、条件判断
    • 6、循环语句
  • 三、JS 函数
    • 0、JS 函数特点
    • 1、普通函数
    • 2、匿名函数
    • 3、箭头函数
    • 4、高阶函数
    • 5、异步函数
    • 6、对象方法
  • 四、JS 作用域
    • 1、全局作用域
    • 2、局部作用域
    • 3、块级作用域
    • 4、嵌套作用域
    • 5、作用域链
    • 6、闭包
  • 五、JS 事件
    • 1、常用事件
    • 2、事件绑定
  • 附录:ES6新特性
    • 00、什么是 ES
    • 00、ES 的历史版本
    • 01、变量声明
    • 02、模板字符串
    • 03、函数的参数默认值
    • 04、箭头函数
    • 05、对象初始化简写
    • 06、解构
    • 07、延展操作符
    • 08、map函数
    • 09、reduce函数

JS 入门

一、JS 概述

1、JS 特点

  • JS 不需要编译,浏览器可以直接解释运行。
  • JS 是弱类型语言,变量声明不需要指明类型。(Java是强类型)

2、JS 组成

组成部分作用
ES(ECMA Script)构成了JS核心的语法基础
BOM(Browser Object Model)浏览器对象模型,用来操作浏览器上的对象
DOM(Document Object Model)文档对象模型,用来操作网页中的元素(标签)

3、JS 初体验

html :  搭建网页结构
css  :  美化网页
js   :  实现交互效果
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>JavaScript 初体验</title><style>div {color: red;}</style></head><body><div>内容1</div><div>内容2</div><!-- 点击按钮,调用指定的script函数 --><input type="button" value="按钮" onclick="checkAge()"><script>function checkAge() {var result = confirm("你满18岁了吗?");if (result) {location.href = "http://www.baidu.com"}}</script></body>
</html>

在这里插入图片描述

4、HTML引入JS

可以直接在 HTML 文件中使用 <script> 标签来嵌入 JavaScript 代码。这通常放在 <head><body> 部分。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Embed JS Example</title><script>// 这里是 JavaScript 代码function greet() {alert("Hello, World!");}</script>
</head>
<body><h1>JavaScript 引入示例</h1><button onclick="greet()">点击我</button>
</body>
</html>

也可以通过 <script> 标签的 src 属性引入外部的js文件,这样可以使代码更加模块化和可维护。

// script.js
function greet() {alert("Hello, World!");
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>External JS Example</title><script src="script.js" defer></script>
</head>
<body><h1>JavaScript 引入示例</h1><button onclick="greet()">点击我</button>
</body>
</html>

二、JS 基础语法

1、变量声明

es6之前,统一用 var 声明。

var i = 1;
var j = 1.1;
var k = "abc";

es6 开始,用 let 声明变量(可以修改),用 const 声明常量(不能修改)。

// 变量
let a = 1;
a = 6.66;
console.log(a);// 常量
const m = "abc";
m = 'bcd';
console.log(m);

在这里插入图片描述

2、基本数据类型

// 1. number 数字(包括整数和小数)
console.log(typeof 1)
console.log(typeof 1.1)// 2. string 字符串(单引号 和 双引号都可以)
console.log(typeof 'haha')
console.log(typeof "xixi")// 3. boolean 布尔
console.log(typeof true)
console.log(typeof false)// 4. undefined 声明了未赋值
let n;
console.log(typeof n)

3、引用数据类型

1)数组

// 数组的声明(下标从0开始)
let arr = [1, 2, 3, 4, 5];
let arr = new Array(1, 2, 3, 4, 5);
let arr = Array.of(1, 2, 3, 4, 5);
let arr = Array.from("hello");
let arr = Array.from("hello");
console.log(typeof arr);	// object
console.log(arr[1]);		// e
console.log(arr);			// ['h', 'e', 'l', 'l', 'o']

2)对象

let obj = {name : 'zs',age : 18,married : false
};console.log(typeof obj);	// object
console.log(obj.name);		// zs
console.log(obj);			// {name: 'zs', age: 18, married: false}

3)函数

let f = function (a) {console.log("函数");
}
console.log(typeof f);	// function

4)null

// null 的类型也是 object
let n = null;
console.log(typeof n)	// object

4、运算符

// 算数运算符+  -  *  /  %  ++  --
// 赋值运算符=  +=  -=  *=  /=  %=
// 比较运算符>   < 	==	!=	=== 恒等于	 !== 不恒等于
// 逻辑运算符&&  ||  !
// 三目运算符条件表达式 ?为真的逻辑 : 为假的逻辑

恒等于 ===

let d = "100"
let e = 100
console.log(d ==  e)	// true		==  仅比较字面值 
console.log(d === e)	// false	=== 不仅比较字面值,还比较类型

js中,number + 非string类型 = number

  • true=1、false=0、null=0、undefined=NaN(not a number)
let a = 100
let b = true		// 1
let c = false		// 0
let d = null		// 0
let e
console.log(a + b);	// 101
console.log(a + c);	// 100
console.log(a + d);	// 100
console.log(a + e);	// NaN

5、条件判断

// if 语句
if (条件表达式) {代码块;
} else if (条件表达式) {代码块;
} else {代码块;
}// switch 语句
switch (条件表达式) {case 满足条件1 :代码块 break;case 满足条件2 :代码块break;default:默认代码块;
}

任何类型都可以放在条件表达式

  • number:0为false,非0为true
  • string:空串为false,非空串为true
  • undefined:false
  • 引用数据类型:null为false,非null为true
let c = null
if (c) {console.log(true);
} else {console.log(false);
}

6、循环语句

// 1. 普通for循环
for (let i = 0; i < 10; i++) {需要执行的代码;
}// 2. 增强for循环 (e6支持)
for (let element of array) {需要执行的代码;
}// 3. 索引for循环
for (let index in array) {let element = array[index]需要执行的代码;
}// 4. while循环
while (条件表达式) {需要执行的代码;
}// 5. do..while循环
do {需要执行的代码;
} while (条件表达式);// 6. break:跳出整个循环// 7. continue:跳出本次循环,继续下次循环

三、JS 函数

js函数用于执行特定功能的代码块,也可以称为js方法

0、JS 函数特点

返回值:

  • 用 return 返回,没有返回值可以省略 return

参数:

  • 参数列表的变量不用写类型。
  • 调用函数时,传入参数的个数不受函数限制(可以少也可以多,依次赋值,没有赋值到的是undefined)。
  • JS函数内有一个隐藏变量 arguments(数组),它的元素是传入此函数的所有参数(可以直接调用 arguments)。

1、普通函数

使用 function 关键字定义的函数,可以在任何地方调用。

function 函数名(参数列表) {函数体;return 返回值; 	// 没有返回值可以省略....
}

代码示例:

function method() {console.log("无参无返回")
}
method()
function method(a, b) {return a + b;
}// js的函数调用,传入参数个数不受函数限制(依次赋值,没有赋值是undefined)
let result1 = method(1)
let result2 = method(1, 2, 3)
console.log(result1);	// 1 + undefined = NaN
console.log(result2);	// 1 + 2 = 3
function method(a, b) {let sum = 0;// 隐藏变量arguments (数组), 它的元素是传入此函数的所有参数for(let i = 0; i< arguments.length; i++){sum += arguments[i]}return sum;
}let result = method(1, 2, 3, 4, 5);
console.log(result);	// 1+2+3+4+5=15

2、匿名函数

没有名称的函数,通常用于 回调 或 立即执行函数。

function (参数列表) {函数体;return 返回值;  // 没有返回值可以省略....
}

代码示例:

// 匿名函数赋值给变量使用
let method = function (a) {console.log("匿名函数" + a);
}
method("呵")
console.log(typeof method);	// function

3、箭头函数

ES6提供了箭头函数(函数的简略写法,类似于Java中的Lambda表达式)

  • 不需要function关键字来创建函数
  • 省略return关键字
  • 继承当前上下文的 this 关键字
// es5
function (resp, msg) {...}// es6
(resp, msg) => {...}// es6(如果函数只有一行,可以省略大括号和return)
(resp, msg) => ...

代码示例:

// es5
var add = function (a, b) {return a + b;
}
console.log(add(100, 200))// es6
let add = (a,b) => {return a + b;
}
console.log(add(100, 200))// es6 更简化写法
let add = (a, b) => a + b;
console.log(add(100, 200))

4、高阶函数

接受函数作为参数或返回一个函数的函数。

function higherOrderFunction(callback) {callback();
}higherOrderFunction(() => {console.log("这是一个高阶函数");
});

5、异步函数

使用 async 关键字定义的函数,允许在函数内部使用 await 关键字来处理 Promise

async function asyncFunction() {const result = await Promise.resolve("这是一个异步函数");console.log(result);
}

6、对象方法

对象中的函数称为方法,可以通过对象调用。

let obj = {name : "zs",eat : function () {console.log(this.name + "在吃饭");}
}
obj.eat()

四、JS 作用域

1、全局作用域

在所有函数之外声明的变量具有全局作用域,可以在任何地方被访问。

var globalVar = "I am global";function testGlobal() {console.log(globalVar); // 可以访问全局变量
}testGlobal(); // 输出: I am global

2、局部作用域

局部作用域是指在函数内部声明的变量,只能在该函数内部访问。这些变量在函数外部不可见。

function testLocal() {var localVar = "I am local";console.log(localVar); // 可以访问局部变量
}testLocal(); // 输出: I am local
console.log(localVar); // 报错: localVar is not defined

3、块级作用域

letconst 声明的变量存在块级作用域(函数/代码块内部),而 var声明的变量在外部也能访问(变量泄露)

{var a = 'xyz'
}
console.log(a){const m = 'a'
}
console.log(m){let n = 'bcd'
}
console.log(n)

在这里插入图片描述

4、嵌套作用域

函数可以在其他函数内部定义,从而形成嵌套作用域。在这种情况下,内部函数可以访问其外部函数的变量。

function outerFunction() {var outerVar = "I am from outer function";function innerFunction() {console.log(outerVar); // 可以访问外部函数的变量}innerFunction(); // 输出: I am from outer function
}outerFunction();

5、作用域链

每个作用域都有一个指向其父作用域的指针,这称为作用域链。当在一个作用域中查找变量时,JavaScript 会沿着作用域链向上查找,直到找到变量或到达全局作用域为止。

var name = "John";function outer() {var name = "Jane";function inner() {console.log(name); // 输出: Jane,访问最近的作用域}inner();
}outer();

6、闭包

闭包是指一个函数可以访问其外部作用域中的变量,即使外部函数已经执行完毕。闭包允许数据的封装和私有化。

闭包一定有 return 和 内存泄漏 吗?不一定,例如下列代码:

function outerFunction() {let count = 0;function innerFunction() {console.log(outerVar); // 可以访问外部函数的变量}innerFunction(); // 输出: I am from outer function
}outerFunction();

外部如果想要使用闭包的变量,则此时需要 return

function makeCounter() {let count = 0; // `count` 变量是私有的return function() {count++; // 每次调用增加计数return count;};
}const counter = makeCounter();
console.log(counter()); // 输出: 1
console.log(counter()); // 输出: 2let c = counter();	// 2

闭包允许数据的封装和私有化。外部可以拿到count,但是无法修改count

如果不使用闭包,如下所示,则不能保证count 变量私有

let count = 0;const counter = function() {count++; // 每次调用增加计数return count;
};console.log(counter()); // 输出: 1
console.log(counter()); // 输出: 2let c = counter();	// 2
c = 1000;console.log(counter()); // 输出: 1001

五、JS 事件

js是事件驱动型语言,可以监听用户的行为,并调用函数来完成用户交互功能

1、常用事件

1. 点击事件:1. onclick		单击事件2. ondblclick	双击事件 (double: 时间间隔很短两次单击)2. 焦点事件1. onblur	元素失去焦点2. onfocus	元素获得焦点。3. 加载事件:1. onload	当前页面加载完成后触发。4. 鼠标事件:1. onmousedown	鼠标按钮被按下。2. onmouseup	鼠标按键被松开。3. onmousemove	鼠标被移动。4. onmouseover	鼠标移到某元素之上。5. onmouseout	鼠标从某元素移开。5. 键盘事件:1. onkeydown	某个键盘按键被按下。	2. onkeyup		某个键盘按键被松开。3. onkeypress	某个键盘按键被按下并松开。6. 改变事件1. onchange		域的内容被改变(如下拉框)。7. 表单事件:1. onsubmit		提交按钮被点击。

2、事件绑定

将 事件 与 html 标签进行绑定,实现交互功能。可以通过 命名函数 和 匿名函数 进行注册

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>事件绑定</title></head><body><!--普通函数1. 给标签添加一个事件属性 这里是 onclick = "函数调用"2. 定义事件绑定的函数 --><input type="button" value="普通函数" onclick="heihei('x')"><script>function heihei(a) {alert("嘿嘿")}</script><!--匿名函数1. 先用找到标签对象2. 标签对象.事件 = 匿名函数 --><input type="button" value="匿名函数" id="myid"><script>let btn = document.getElementById("myid");btn.onclick = function () {alert("嘻嘻")}</script></body></html>

附录:ES6新特性

参考文章:http://es6.ruanyifeng.com/

00、什么是 ES

ES(ECMAScript)是由 ECMA(一个类似W3C的标准组织)参与进行标准化的语法规范。

ES 定义了:

  • 语言语法:语法解析规则、关键字、语句、声明、运算符等。
  • 类型:布尔型、数字、字符串、对象等。
  • 原型和继承
  • 内建对象和函数的标准库:JSON、Math、数组方法、对象自省方法等。

JavaScript 是 ES 的实现和扩展。ES 涵盖了各种 JS 的使用场景,无论是 浏览器环境 还是类似 node.js 的非浏览器环境。

ES 标准不定义 HTML 或 CSS 的相关功能,也不定义类似 DOM 的 Web API,这些都在独立的标准中进行定义。

00、ES 的历史版本

ECMAScript 标准的历史版本分别是1、2、3、5。

为什么没有第4版?其实,在过去确实曾计划发布提出巨量新特性的第4版,但最终却因想法太过激进而惨遭废除(这一版标准中曾经有一个极其复杂的支持泛型和类型推断的内建静态类型系统)。

ES4饱受争议,当标准委员会最终停止开发ES4时,其成员同意发布一个相对谦和的ES5版本,随后继续制定一些更具实质性的新特性。这一明确的协商协议最终命名为“Harmony”,因此,ES5规范中包含这样两句话

ECMAScript是一门充满活力的语言,并在不断进化中。

未来版本的规范中将持续进行重要的技术改进

2009年发布的改进版本ES5,引入了 Object.create()、Object.defineProperty()、getters 和 setters、严格模式 以及 JSON 对象。

ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,2015年6月正式发布。

它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

01、变量声明

ES6 以前,用 var 声明变量;ES6之后,用 const 声明常量,用 let 声明变量

// es5 用 var
var i = 1;
var j = 1.1;
var k = "abc";// es6 用 const 声明常量,用 let 声明变量
const m = "abc";let a = 1;
let b = 3.1;
let c = 'abc'

注意:let声明的是变量,可以修改;const声明的是常量,不能修改

let a = 1;
a = 6.66;
console.log(a);const m = "abc";
m = 'bcd';
console.log(m);

在这里插入图片描述

letconst 声明的变量存在块级作用域(函数/代码块内部),而 var声明的变量在外部也能访问(变量泄露)

{var a = 'xyz'
}
console.log(a){const m = 'a'
}
console.log(m){let n = 'bcd'
}
console.log(n)

在这里插入图片描述

02、模板字符串

ES6支持将表达式嵌入字符串中进行拼接。用${}来界定。

let username='Rose'// es5
// 需要拼接变量
console.log('姓名是:' + username)// es6
// 使用反引号,可以直接打印变量的值,表达式类似于java的el表达式
console.log(`姓名是:${username}`)

03、函数的参数默认值

ES6为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递进去时使用。

function show(username='Jack') {console.log(username);
}// 传参后,使用传入的值
show('Rose');// 没有传参,自动使用默认值 'Jack',而不是 undifined
show()

这样可以避免不传参时出现undefined

04、箭头函数

ES6提供了箭头函数(函数的简略写法,类似于Java中的Lambda表达式)

  • 不需要function关键字来创建函数
  • 省略return关键字
  • 继承当前上下文的 this 关键字
// es5
function (response, message) {......
}// es6
(response, message) => {.......
}// es6(如果函数只有一行,可以省略大括号和return)
(response, message) => .......
// es5
var add = function (a, b) {return a+b;
}
console.log(add(100,200))// es6
var add = (a,b) => {return a+b;
}
console.log(add(100, 200))// es6 更简化写法
var add = (a, b) => a+b;
console.log(add(100, 200))

05、对象初始化简写

ES6之前,都是以键值对的形式书写对象。例如:

// es5
function people (username, age) {return {username: username,age: age}
}
console.log(people('Rose', 18));

ES6之后,以上代码可以简写为:

// es6
function people (username, age) {// 对象的key 和 参数名 一致,可以简写如下return {username,age}
}
console.log(people('Jack', 88));

06、解构

数组 和 对象,是JS中最常用也是最重要的表示形式。

ES6之前,我们获取 数组 和 对象 中的元素:

// 对象
const people = {username:'Rose', age:18}
var username = people.username
var age = people.age
console.log(username + "," + age)// 数组
const color = ['red', 'blue']
var color1 = color[0];
var color2 = color[0];
console.log(color1 + "," + color2)

ES6新增了解构,这是将一个数据结构分解为更小的部分的过程

// 对象
const people = {username:'Rose', age:18}
const { username, age } = people;
console.log(username + "," + age)// 数组
const color = ['red', 'blue']
const [color1, color2] = color
console.log(color1 + "," + color2)

07、延展操作符

ES6 新增了延展操作符,语法上是三个点,可以用来扩展对象或者数组。

接下来就展示一下它的用途。

// 原来的对象
const peopleOld = {username:'Rose', age:18}// 重新生成一个对象,并基于之前的对象扩展
const peopleNew={...peopleOld, address:'上海'}console.log(peopleOld)
console.log(peopleNew)
// 原来的数组
const colorOld = ['red', 'yellow']// 重新生成一个数组,并基于之前的数组扩展
const colorNew=[...colorOld, 'blue']console.log(colorOld)
console.log(colorNew)

08、map函数

map():将原数组中的所有元素通过一个函数进行处理,并放入到一个新数组中,并返回该新数组。

// 举例:字符串数组 -> int数组
let arr = ['1','20','-5','3']; 
arr = arr.map(s => parseInt(s));
console.log(arr)

09、reduce函数

reduce(function(), 初始值(可选))

接收一个函数(必须)和一个初始值(可选),该函数接收两个参数:

  • 第一个参数是上一次reduce处理的结果
  • 第二个参数是数组中要处理的下一个元素

reduce() 会从左到右依次把数组中的元素用reduce处理,并把处理的结果作为下次reduce的第一个参数。如果是 第一次,会把前两个元素作为计算参数,或者把用户指定的初始值作为起始参数

let arr = [1, 20, -5, 3]// 没有初始值 
let a = arr.reduce((a, b) => a+b) 		// 等价于 1 + 20 + (-5) + 3
let d = arr.reduce((a, b) => a*b)		// 等价于 1 * 20 * (-5) * 3// 设置初始值为1 
let b = arr.reduce((a, b) => a+b, 1)	// 等价于 1 + 1 + 20 + (-5) + 3
let c = arr.reduce((a, b) => a*b, 1)	// 等价于 1 * 1 * 20 * (-5) * 3console.log(a,b,c,d);

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

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

相关文章

上传文件失败,请检查阿里云配置信息:[The specified bucket is not valid.

-- 十一假期结束 -- 去年今日此门中&#xff0c;人面挑花相应红。 -- 人面不知何处去&#xff0c;桃花依旧笑春风。

Pikachu-unsafe upfileupload-getimagesize

什么是getimagesize()&#xff1f; getimagesize()是PHP中用于获取图像的大小和格式的函数。它可以返回一个包含图像的宽度、高度、类型和MIME类型的数组。 由于返回的这个类型可以被伪造&#xff0c;如果用这个函数来获取图片类型&#xff0c;从而判断是否时图片的话&#xff…

虚拟机 VMware 安装 macOS

macOS 界面 MAC OS IOS下载&#xff1a; amacOS Monterey by Techrechard.comwmacOS Monterey by Techrechard.com 下载&#xff1a;Unlocker-v2.0.1-x64 Mac OS X 虚拟机中更改屏幕分辨率 终端输入命令&#xff1a; sudo defaults write /Library/Preferences/com.apple.w…

vim编辑器安装,并修改配置使其默认显示行数

centOS默认是未安装vim编辑器的&#xff0c;而vim编辑器相比vi编辑器更易用一些&#xff0c;如需使用vim编辑器&#xff0c;需要进行安装。 1.需要先配置本地yum源&#xff0c;参见如下链接&#xff1a; 点击查看如何配置本地yum源 2.安装vim编辑器&#xff0c;并修改配置。…

kafka和zookeeper单机部署

安装kafka需要jdk和zookeeper环境&#xff0c;因此先部署单机zk的测试环境。 zookeeper离线安装 下载地址&#xff1a; zookeeper下载地址&#xff1a;Index of /dist/zookeeper 这里下载安装 zookeeper-3.4.6.tar.gz 版本&#xff0c;测试环境单机部署 上传服务器后解压缩 …

Elasticsearch基础_5.ES聚合功能

文章目录 一、数据聚合1.1、桶聚合1.1.1、单维度桶聚合1.1.2、聚合结果排序1.1.3、限定聚合范围 1.2、Metric聚合 二、聚合总结 本文只记录ES聚合基本用法&#xff0c;后续有更复杂的需求可以查看相关书籍&#xff0c;如《Elasticsearch搜索引擎构建入门与实战》 一、数据聚合…

幂,你去哪儿了-《分析模式》漫谈37

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第3章的图3.5&#xff0c;原文的图是&#xff1a; 2004&#xff08;机械工业出版社&#xff09;中译本的图是&#xff1a; direct翻译成分子&#xff0c;inv…

Linux聊天集群开发之环境准备

一.windows下远程操作Linux 第一步&#xff1a;在Linux终端下配置openssh&#xff0c;输入netstate -tanp,查看ssh服务是否启动&#xff0c;默认端口22.。 注&#xff1a;如果openssh服务&#xff0c;则需下载。输入命令ps -e|grep ssh, 查看如否配有&#xff0c; ssh-agent …

VirtualBox Ubuntu22.04 NOI linux2.0 Terminal无法打开 终端打不开 两步解决法儿

新安装的虚拟机无法打开Terminal&#xff0c;从应用列表中单击Terminal&#xff0c;左上角任务栏会出现Terminal&#xff0c;并且鼠标转圈&#xff0c;但是过一会左上角Terminal消失&#xff0c;就像一切都没有来过。 解决办法&#xff1a; CTRL ALT F3 进入命令行模式&…

004集—— txt格式坐标写入cad(CAD—C#二次开发入门)

如图所示原始坐标格式&#xff0c;xy按空格分开&#xff0c;将坐标按顺序在cad中画成多段线&#xff1a; 坐标xy分开并按行重新输入txt&#xff0c;效果如下&#xff1a; 代码如下 &#xff1a; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; us…

pytorch导入数据集

1、概念&#xff1a; Dataset&#xff1a;一种数据结构&#xff0c;存储数据及其标签 Dataloader&#xff1a;一种工具&#xff0c;可以将Dataset里的数据分批、打乱、批量加载并进行迭代等 &#xff08;方便模型训练和验证&#xff09; Dataset就像一个大书架&#xff0c;存…

trans-cinnamate 4-monooxygenase肉桂酸4-羟化酶C4H的克隆和功能鉴定-文献精读62

Cloning and functional characterization of two cinnamate 4-hydroxylase genes from Pyrus bretschneideri 两种从白梨&#xff08;Pyrus bretschneideri&#xff09;中克隆和功能鉴定的肉桂酸4-羟化酶基因 摘要 肉桂酸4-羟化酶&#xff08;C4H&#xff09;是植物苯丙素类…

SpringBoot+ElasticSearch7.12.1+Kibana7.12.1简单使用

案例简介 本案例是把日志数据保存到Elasticsearch的索引中&#xff0c;并通过Kibana图形化界面的开发工具给查询出来添加的日志数据&#xff0c;完成从0到1的简单使用 ElasticSearch职责用法简介 ElasticSearch用在哪 ElasticSearch在我这个案例中&#xff0c;不是用来缓解增…

GPU Puzzles讲解(二)

GPU-Puzzles项目是一个很棒的学习cuda编程的项目&#xff0c;可以让你学习到GPU编程和cuda核心并行编程的概念&#xff0c;通过一个个小问题让你理解cuda的编程和调用&#xff0c;创建共享显存空间&#xff0c;实现卷积和矩阵乘法等 https://github.com/srush/GPU-Puzzleshttp…

NVIDIA Hopper 架构深入

在 2022 年 NVIDIA GTC 主题演讲中,NVIDIA 首席执行官黄仁勋介绍了基于全新 NVIDIA Hopper GPU 架构的全新 NVIDIA H100 Tensor Core GPU。 文章目录 前言一、NVIDIA H100 Tensor Core GPU 简介二、NVIDIA H100 GPU 主要功能概述1. 新的流式多处理器 (SM) 具有许多性能和效率…

leetcode58:最后一个单词的长度

给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大 子字符串 。 示例 1&#xff1a; 输入&#xff1a;s "Hello World" 输出&#xff…

浅谈汽车智能座舱如何实现多通道音频

一、引言 随着汽车智能座舱的功能迭代发展&#xff0c;传统的 4 通道、6 通道、8 通道等音响系统难以在满足驾驶场景的需求&#xff0c;未来对于智能座舱音频质量和通道数会越来越高。接下来本文将浅析目前智能座舱如何实现音频功放&#xff0c;以及如何实现多路音频功放方案。…

C语言文件操作(上)(27)

文章目录 前言一、为什么要用文件&#xff1f;二、什么是文件&#xff1f;程序文件数据文件文件名文件类型文件缓冲区文件指针 三、流流的概念标准流 总结 前言 C语言可以直接操作文件&#xff0c;如果你是第一次听说这个特性&#xff0c;可能会眼前一亮&#xff0c;感到惊奇  …

MongoDB的安装与增删改查基本操作

MongoDB是一种非关系型数据库,是NoSQL语言,但是又是最接近关系型数据库的。内部存储不是表结构,但是可以对数据进行表结构的操作。 一、安装 在官网:Download MongoDB Community Server | MongoDB下载系统对应的版本进行安装即可 二、编辑器 在安装MongoDB后会自带一个编…

图片格式入门

主要参考资料&#xff1a; 常见的图片格式介绍: https://blog.csdn.net/cnds123/article/details/127165291 目录 像素图与矢量图像素图&#xff08;pixel image&#xff09;矢量图&#xff08;Vector graphics&#xff09; 像素图与矢量图 像素图&#xff08;pixel image&…