【JavaScript】变量-常量-数据类型-类型转换

目录

一、JavaScript 介绍

1. JavaScript (是什么?)

2. 作用(做什么?)

3. JavaScript的组成(有什么?)

3.1 ECMAScript:

3.2 Web APIs :

总结:

4. JavaScript 书写位置

1. 内部 JavaScript

2. 外部 JavaScript

3. 内联 JavaScript

总结:

5. JavaScript 注释

1. 单行注释

2. 块注释

6 JavaScript 结束符

结束符

7 JavaScript 输入输出语法

1.输出语法:

2. 输入语法:

JavaScript 代码执行顺序:

8. 字面量

总结:

二、变量

1. 变量是什么?

问题1:用户输入的数据我们如何存储起来? 变量

总结:

2. 变量的基本使用

1. 声明变量:

2. 变量赋值:

总结:

练习:

3. 更新变量:

4. 声明多个变量:

案例

1. 变量案例-弹出姓名

案例 2.变量案例- 交换变量的值

3. 变量命名规则与规范

练习 变量练习-输出用户信息

二. 变量拓展-let和var的区别

let 和 var 区别:

结论:

二. 变量拓展-数组

1.1 数组的基本使用

3. 一些术语:arr.length

三、 常量的基本使用

四、 数据类型

4.1 数据类型 – 数字类型(Number)

总结:

案例   计算圆的面积

总结:

4.1 数据类型 – 未定义类型(undefined)

4.1 数据类型 – null(空类型)

总结:

五、类型转换

5.1 为什么需要类型转换

5.2 隐式转换

5.2 显式转换

5.2 显式转换

练习  输入2个数,计算两者的和,打印到页面中

案例   用户订单信息案例

需求:用户输入商品价格和商品数量,以及收货地址,可以自动打印订单信息

总结不易~本章节对我的学习收获很大,希望对你也是!!!


一、JavaScript 介绍

1. JavaScript (是什么?)

是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。

2. 作用(做什么?)

网页特效 (监听用户的一些行为让网页作出对应的反馈)
表单验证 (针对表单数据的合法性进行判断)
数据交互 (获取后台的数据, 渲染到前端)
服务端编程 (node.js)

3. JavaScript的组成(有什么?)

3.1 ECMAScript:

规定了js基础语法核心知识。
p 比如:变量、分支语句、循环语句、对象等等

3.2 Web APIs :

   DOM 操作文档,比如对页面元素进行移动、大小、添加删除等操作
   BOM 操作浏览器,比如页面弹窗,检测窗口宽度、存储数据到浏览器等等
权威网站: MDN
JavaScript权威网站:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

总结:

1. JavaScript是什么?
     JavaScript 是一种运行在 客户端(浏览器) 的编程语言
2. JavaScript组成是什么?
     ECMAScript( 基础语法 )、web APIs (DOM、BOM)

4. JavaScript 书写位置

目标:知道如何向页面添加 JavaScript

1. 内部 JavaScript

直接写在html文件里,用script标签包住
规范 script标签写在</body>上面
拓展: alert(‘你好,js’) 页面弹出警告对话框
注意事项
注意:
我们将 <script> 放在 HTML文件的底部 附近的原因是浏览器会按照代码在文件中的 顺序加载 HTML。
如果先加载的 JavaScript 期望修改其下方的 HTML,那么它可能由于 HTML 尚未被加载而失效。
因此,将 JavaScript 代码放在 HTML页面的底部附近通常是最好的策略。

2. 外部 JavaScript

代码写在以.js结尾的文件里
语法: 通过script标签,引入到html页面中。
1. script标签中间无需写代码,否则会被忽略!
2. 外部JavaScript会使代码更加有序,更易于复用,且没有了脚本的混合,HTML 也会更加易读,因此这是个好的习惯。

3. 内联 JavaScript

代码写在标签内部
语法:
注意: 此处作为了解即可,但是后面vue框架会用这种模式

总结:

1. JavaScript三种书写位置?
    1.1  内部
    1.2  外部
    1.3  行内
2. 注意事项:
    2.1  书写的位置尽量写到文档末尾 </body> 前面
    2.3  外部 js 标签中间不要写代码,否则会被忽略

5. JavaScript 注释

目标:会使用两种JavaScript注释方法

1. 单行注释

   符号: //
   作用: //右边这一行的代码会被忽略
   快捷键: ctrl + /

2. 块注释

   符号: /* */
   作用: 在/* 和 */ 之间的所有内容都会被忽略
   快捷键: shift + alt + A

6 JavaScript 结束符

目标:了解JavaScript结束符
   

结束符

   作用: 使用英文的 ; 代表语句结束
   实际情况: 实际开发中,可写可不写, 浏览器(JavaScript 引擎) 可以自动推断语句的结束位置
   现状: 在实际开发中,越来越多的人主张,书写 JavaScript 代码时省略结束符
   约定: 为了风格统一,结束符要么每句都写,要么每句都不写(按照团队要求.)

7 JavaScript 输入输出语法

输出和输入也可理解为人和计算机的交互,用户通过键盘、鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程。

1.输出语法:

语法1:
作用: 向body内输出内容
注意: 如果输出的内容写的是标签,也会被解析成网页元素
展示:
语法2:
作用: 页面弹出警告对话框
展示:
语法3:
作用: 控制台输出语法,程序员调试使用
展示:

2. 输入语法:

语法:
作用: 显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字
展示:

JavaScript 代码执行顺序:

   1. 按HTML文档流顺序执行JavaScript代码
   2.alert() 和 prompt() 它们会跳过页面渲染先被执行(目前作为了解,后期讲解详细执行过程)

8. 字面量

目标:能说出什么是字面量
在计算机科学中,字面量(literal)是在计算机中描述 事/物
比如:
     我们工资是: 1000 此时 1000 就是 数字字面量
     '我是哈哈' 字符串字面量
     还有接下来我们学的 [] 数组字面量 {} 对象字面量 等等

总结:

1. JavaScript是什么?
JavaScript是一门编程语言,可以实现很多的网页交互效果。
2. JavaScript 书写位置?
     内部 JavaScript
     内部 JavaScript – 写到 </body> 标签上方
     外部 JavaScript - 但是 <script> 标签不要写内容,否则会被忽略
3. JavaScript 的注释?
     单行注释 //
     多行注释 /* */
4. JavaScript 的结束符?
     分号; 可以加也可以不加,可以按照团队约定
5. JavaScript 输入输出语句?
     输入: prompt()
    输出: alert() document.write() console.log()

二、变量

1. 变量是什么?

问题1:用户输入的数据我们如何存储起来? 变量

目标:理解变量是计算机存储数据的“ 容器
1. 变量:
    白话:变量就是一个装东西的盒子。
    通俗:变量是计算机中用来 存储数据 的“ 容器 ”,它可以让计算机变得有记忆。
    注意: 变量不是数据本身,它们仅仅是一个用于存储数值的容器。可以理解为是一个个用来装东西的纸箱子。

总结:

1. 变量是怎么理解?
     计算机中用来存储数据的“ 容器 ”,简单理解是一个个的盒子。
2. 变量有什么作用呢?
     用来存放数据的。注意变量指的是容器而不是数据。
3. 你还能想到那些生活中的变量?
     HTML标签
    教室、宿舍

2. 变量的基本使用

目标:能够声明一个变量并完成赋值操作
1. 变量的声明
2. 变量的赋值

1. 声明变量:

要想使用变量,首先需要创建变量(也称为声明变量或者定义变量)
语法:
let 变量名
   声明变量有两部分构成:声明关键字、变量名(标识)
   let 即关键字 (let: 允许、许可、让、要),所谓关键字是系统提供的专门用来声明(定义)变量的词语
举例:
     我们声明了一个age变量
     age 即 变量的名称 ,也叫标识符

2. 变量赋值:

定义了一个变量后,你就能够初始化它(赋值)。在变量名之后跟上一个“=”,然后是数值。
注意:是通过 变量名 来获得变量里面的数据
简单点,也可以声明变量的时候直接完成赋值操作,这种操作也称为 变量 初始化

总结:

1. 变量用什么关键字来声明?
     let
2. 变量通过什么符号来赋值?
     = 这个符号我们也称为 赋值运算符
3. 开发中我们经常声明的同时可以直接赋值

练习:

需求:
1. 声明一个变量,用于存放用户购买的商品 数量 ( num ) 20
2. 声明一个变量,用于存放用户的 姓名 ( uname ) ’张三’
3. 依次 控制台 打印输出两个变量
3. 变量的基本使用
目标:掌握变量的更新以及了解同时声明多个变量的写法

3. 更新变量:

变量赋值后,还可以通过简单地给它一个不同的值来更新它。
注意: let 不允许多次声明一个变量。

4. 声明多个变量:

变量赋值后,还可以通过简单地给它一个不同的值来更新它。
语法: 多个变量中间用逗号隔开。
说明: 看上去代码长度更短,但并 不推荐 这样。为了更好的可读性,请一行只声明一个变量。
1. 变量赋值之后如何更新新值?
     直接给它一个不同的值来更新它
2. 我们提倡同时声明多个不同的变量吗?
     不提倡, 可读性不好

案例

1. 变量案例-弹出姓名

需求: 浏览器中弹出对话框: 请输入姓名, 页面中输出:刚才输入的姓名
分析:
①:输入 :用户 输入 框: prompt()
②:内部处理 :保存数据
③:输出 : 页面打印  document.write()
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    //输出用户名案例
    //1.用户输入
    //2.内部处理保存数据
    //3.打印输出
    let uname = prompt('请输入用户的姓名:')
    console.log(uname)
    document.write(uname)

  </script>
</body>

</html>

案例 2.变量案例- 交换变量的值

需求:
有2个变量: num1 里面放的是 10, num2 里面放的是20
最后变为 num1 里面放的是 20 , num2 里面放的是 10
目的:
1. 练习变量的使用
2. 为了后面冒泡排序做准备
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    let num1 = 10
    let num2 = 20
    let num3
    console.log(num1, num2)
    num3 = num1
    num1 = num2
    num2 = num1
    console.log(num1, num2)
  </script>
</body>

</html>

3. 变量命名规则与规范

目标:能写出符合规范的变量名
规则: 必须遵守,不遵守报错 (法律层面)
规范: 建议,不遵守不会报错,但不符合业内通识 (道德层面)
1. 规则:
     不能用关键字
        关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等
     只能用下划线、字母、数字、$组成,且数字不能开头
     字母严格 区分大小写 ,如 Age 和 age 是不同的变量
2. 规范:
     起名要有意义
     遵守小驼峰命名法
       第一个单词首字母小写,后面每个单词首字母大写。例:userName
以下哪些是合法的变量名?

练习 变量练习-输出用户信息

需求: 让用户输入自己的名字、年龄、性别,再输出到网页
分析:
①: 弹出 输入 框(prompt): 请输入您的姓名 (uname): 用变量保存起来。
②: 弹出输入框(prompt) : 请输入您的年龄 (age): 用变量保存起来。
③: 弹出输入框(prompt) : 请输入您的性别(gender): 用变量保存起来。
④: 页面分别 输出 (document.write) 刚才的 3 个变量。

二. 变量拓展-let和var的区别

let 和 var 区别:

在较旧的JavaScript,使用关键字 var 来声明变量 ,而不是 let。
var 现在开发中一般不再使用它,只是我们可能再老版程序中看到它。
let 为了解决 var 的一些问题。
var 声明:
      可以先使用 在声明 (不合理)
     var 声明过的变量可以重复声明(不合理)
      比如变量提升、全局变量、没有块级作用域等等

结论:

var 就是个bug,别迷恋它了,以后声明变量我们统一使用 let

二. 变量拓展-数组

    数组 (Array) —— 一种将 一组数据存储在单个变量名下 的优雅方式
let 数组名 = [数据1,数据2,……,数据n]
l 数组是按顺序保存,所以每个数据都有自己的编号
l 计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推
l 在数组中,数据的编号也叫 索引或下标
l 数组可以存储任意类型的数据

1.1 数组的基本使用

3. 一些术语:arr.length

     元素: 数组中保存的每个数据都叫数组元素
     下标: 数组中数据的编号
     长度: 数组中数据的个数,通过数组的length属性获得

三、 常量的基本使用

概念: 使用 const 声明的变量称为“常量”。
使用场景: 当某个变量永远 不会改变 的时候,就可以使用 const 来声明,而不是let。
命名规范: 和变量一致
常量使用
注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)
小技巧: 不需要重新赋值的数据使用const
总结:
let — 现在实际开发变量声明方式。
var — 以前的声明变量的方式,会有很多问题。
const — 类似于 let ,但是变量的值无法被修改。

四、 数据类型

目标:能说出JS中基本数据类型有哪些
计算机世界中的万事万物都是数据。
计算机程序可以处理大量的数据,为什么要给数据分类?
     1. 更加充分和高效的利用内存
     2. 也更加方便程序员的使用数据
基本数据类型
number 数字型
string 字符串型
boolean 布尔型
undefined 未定义型
null 空类型
引用数据类型
object 对象

4.1 数据类型 – 数字类型(Number)

即我们数学中学习到的数字,可以是整数、小数、正数、负数。
JavaScript 中的正数、负数、小数等 统一称为 数字类型。
JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认
Java是强数据类型 例如 int a = 3 必须是整数
数字可以有很多操作,比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。
数学运算符也叫 算术运算符 ,主要包括加、减、乘、除、取余(求模)。
     +:求和
     -:求差
     *:求积
     /:求商
     %:取模(取余数)
        开发中经常作为某个数字是否被整除
目标:能说出JavaScript算术运算符执行的 优先级 顺序
同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。
JavaScript中 优先级越高越先被执行, 优先级相同时以书从左向右执行
     乘、除、取余优先级相同
     加、减优先级相同
     乘、除、取余优先级大于加、减
     使用 () 可以提升优先级
     总结: 先乘除后加减,有括号先算括号里面的~~~

总结:

1. 算术运算符有那几个常见的?
     + - * / %
2. 算术运算符优先级怎么记忆?
     先乘除取余,后加减,有小括号先算小括号里面的
3. 取余运算符开发中的使用场景是?
     来判断某个数字是否能被整除

案例   计算圆的面积

需求: 对话框中输入圆的半径,算出圆的面积并显示到页面
分析:
①: 面积的数学公式: π*r²
②:转换为JavaScript写法 : 变量 * r * r
NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
NaN 是粘性的。任何对 NaN 的操作都会返回 NaN
通过单引号( '') 、双引号( "")或反引号( ` ) 包裹的数据都叫字符串 ,单引号和双引号没有本质上的区别,推荐使用 单引号
注意事项:
1. 无论单引号或是双引号必须成对使用
2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)
3. 必要时可以使用转义符 \,输出单引号或双引号
字符串拼接:
场景 : + 运算符 可以实现字符串的拼接。
口诀:数字相加,字符相连
模板字符串
使用场景
    拼接字符串和变量
    在没有它之前,要拼接变量比较麻烦
语法
`` (反引号)
在英文输入模式下按键盘的tab键上方那个键(1左边那个键)
内容拼接变量时,用 ${ } 包住变量

总结:

1. JavaScript中什么样数据我们知道是字符串类型?
     只要用 单引号、双引号、反引号包含起来的就是字符串类型
2. 字符串拼接比较麻烦,我们可以使用什么来解决这个问题?
     模板字符串 , 可以让我们拼接字符串更简便
3. 模板字符串使用注意事项:
     用什么符号包含数据?
     反引号
     用什么来使用变量?
     ${变量名}
案例 页面输出用户信息案例
需求:页面弹出对话框,输入名字和年龄,页面显示: 大家好,我叫xxx,今年xx岁了
4.1 数据类型 – 布尔类型(boolean)
表示肯定或否定时在计算机中对应的是布尔类型数据。
它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。

4.1 数据类型 – 未定义类型(undefined)

未定义是比较特殊的类型,只有一个值 undefined。
什么情况出现未定义类型?
只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
工作中的使用场景:
我们开发中经常声明一个变量,等待传送过来的数据。
如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来

4.1 数据类型 – null(空类型)

JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
null 和 undefined 区别:
    undefined 表示没有赋值
    null 表示赋值了,但是内容为空
null 开发中的使用场景:
官方解释:把 null 作为尚未创建的对象
大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null

总结:

1. 布尔数据类型有几个值?
     true 和 false
2. 什么时候出现未定义数据类型?以后开发场景是?
     定义变量未给值就是 undefined
     如果检测变量是undefined就说明没有值传递过来
3. null 是什么类型? 开发场景是?
     空类型
     如果一个变量里面确定存放的是对象,如果还没准备好对象,可以放个null
4.2 控制台输出语句和检测数据类型
     控制台输出语句:
    控制台语句经常用于测试结果来使用。
     可以看出数字型和布尔型颜色为蓝色,字符串和undefined颜色为灰色
2. 通过 typeof 关键字检测数据类型
typeof 运算符可以返回被检测的数据类型。它支持两种语法形式:
1. 作为运算符: typeof x (常用的写法)
2. 函数形式: typeof(x)
换言之,有括号和没有括号,得到的结果是一样的,所以我们直接使用 运算符 的写法。

五、类型转换

5.1 为什么需要类型转换

JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。
坑: 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。
此时需要转换变量的数据类型。
通俗来说,就是 把一种数据类型的变量转换成我们需要的数据类型

5.2 隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
规则:
     + 号两边只要有一个是字符串,都会把另外一个转成字符串
     除了+以外 的算术运算符 比如 - * / 等都会把数据转成数字类型
缺点:
     转换类型不明确,靠经验才能总结
小技巧:
     +号作为正号解析可以转换成数字型
     任何数据和字符串相加结果都是字符串

5.2 显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。
为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
概念:
自己写代码告诉系统该转成什么类型
转换为数字型
     Number(数据)
        转成数字类型
        如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字
       NaN也是number类型的数据,代表非数字
     parseInt(数据)
        只保留整数
     parseFloat(数据)
       可以保留小数

5.2 显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。
为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。
概念:
自己写代码告诉系统该转成什么类型
转换为字符型:
     String(数据)
     变量.toString(进制)

练习  输入2个数,计算两者的和,打印到页面中

案例   用户订单信息案例

需求:用户输入商品价格和商品数量,以及收货地址,可以自动打印订单信息

需求:用户输入商品价格和商品数量,以及收货地址,可以自动打印订单信息
分析:
①:需要输入3个数据,所以需要3个变量来存储 price num address
②:需要计算总的价格 total
③: 页面打印生成表格,里面填充数据即可
④:记得最好使用模板字符串
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .entirety {
      width: 500px;
      /* height: 200px; */
      text-align: center;
      margin: auto;
      /* background-color: pink; */
    }

    table {
      /* //合并相邻边框 */
      border-collapse: collapse;
      height: 80px;
      width: 400px;
      margin: 0 auto;
    }

    table,
    th,
    td {
      border: 1px solid #000;
    }
  </style>

</head>

<body>



  <script>
    let price = +prompt('请输入商品的价格:')
    let num = +prompt('请输入商品的数量:')
    let address = prompt('请输入收货地址:')

    // 2.计算总额
    let total = price * num

    // 3.页面打印渲染
    document.write(`
    <div class="entirety">
    <h2>订单确认</h2>
    <table>
      <tr>
        <th>商品名称</th>
        <th>商品价格</th>
        <th>商品数量</th>
        <th>总价</th>
        <th>收货地址</th>
      </tr>
      <tr>
        <td>小米手机</td>
        <td>${price}</td>
        <td>${num}</td>
        <td>${total}</td>
        <td>${address}</td>
      </tr>
    </table>
    <div>
    </div>
  </div>
    `)

    // document.write(total, nums, address)

  </script>
</body>

</html>

总结不易~本章节对我的学习收获很大,希望对你也是!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

day30-awk精讲

awk其实不仅仅是工具软件&#xff0c;还是一种编程语言。 不过&#xff0c;本文只介绍它的命令行用法&#xff0c;对于大多数场合&#xff0c;应该足够用了。 awk是什么 awk是一个强大的linux命令&#xff0c;有强大的文本格式化的能力&#xff0c;好比将一些文本数据格式化…

实战设计模式之建造者模式

概述 在实际项目中&#xff0c;我们有时会遇到需要创建复杂对象的情况。这些对象可能包含多个组件或属性&#xff0c;而且每个组件都有自己的配置选项。如果直接使用构造函数或前面介绍的工厂方法来创建这样的对象&#xff0c;可能会导致以下两个严重问题。 1、参数过多。当一个…

滤波器的主要参数

为什么选择高阶&#xff1a; 滤波器的主要参数通常包括以下几个方面&#xff1a; 截止频率 (Cutoff Frequency)&#xff1a; 这是滤波器能够有效通过或抑制信号的频率点。对于低通滤波器&#xff0c;信号低于截止频率的部分会被通过&#xff0c;高于截止频率的部分会被衰减。高…

HNSW概述

1. \textbf{1. } 1. 一些导论 1.1. \textbf{1.1. } 1.1. 朴素基于图的 ANN \textbf{ANN} ANN 1️⃣建图&#xff1a;对数据库中所有的点&#xff0c;构建 k -NN k\text{-NN} k-NN图(下图以 3 -NN 3\text{-NN} 3-NN为例) 2️⃣检索&#xff1a; GreedySearch \text{GreedySearch…

小程序学习07—— uniapp组件通信props和$emit和插槽语法

目录 一 父组件向子组件传递消息 1.1 props &#xff08;a&#xff09;传递静态或动态的 Prop &#xff08;b&#xff09;单向数据流 二 子组件通知父组件 2.1 $emit &#xff08;a&#xff09;定义自定义事件 &#xff08;b&#xff09;绑定自定义事件 三 插槽语法…

【视频笔记】基于PyTorch从零构建多模态(视觉)大模型 by Umar Jamil【持续更新】

视频链接: 基于PyTorch从零构建多模态(视觉)大模型 by Umar Jamil 从头编写一个视觉语言模型:PloyGamma,是谷歌的一个模型 1:原始图像 2:视觉编码器(本文是viT),通过对比学习进行训练。这个对比学习最开始是CLIP,后来被谷歌改成了SigLIP 3:线性投影层 4:如何将图…

UniApp | 从入门到精通:开启全平台开发的大门

UniApp | 从入门到精通:开启全平台开发的大门 一、前言二、Uniapp 基础入门2.1 什么是 Uniapp2.2 开发环境搭建三、Uniapp 核心语法与组件3.1 模板语法3.2 组件使用四、页面路由与导航4.1 路由配置4.2 导航方法五、数据请求与处理5.1 发起请求5.2 数据缓存六、样式与布局6.1 样…

《数据结构》期末考试测试题【中】

《数据结构》期末考试测试题【中】 21.循环队列队空的判断条件为&#xff1f;22. 单链表的存储密度比1&#xff1f;23.单链表的那些操作的效率受链表长度的影响&#xff1f;24.顺序表中某元素的地址为&#xff1f;25.m叉树第K层的结点数为&#xff1f;26. 在双向循环链表某节点…

Leffa 虚拟试衣论文笔记

Leffa: Learning Flow Fields in Attention for Controllable Person Image Generation https://github.com/xuanandsix/awesome-virtual-try-on-note/tree/main/Leffa 打开链接查看详情&#xff0c;更多虚拟试穿论文持续更新。

BP神经网络的反向传播算法

BP神经网络&#xff08;Backpropagation Neural Network&#xff09;是一种常用的多层前馈神经网络&#xff0c;通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数&#xff0c;从而调整权重&#xff0c;使得网络的预测输出与真实输出之间…

Git快速入门(三)·远程仓库GitHub以及Gitee的使用

目录 1. 远程仓库GitHub 1.1 登录 1.2 创建库 1.3 创建文件 1.4 修改文件 1.5 创建分支 1.6 删除库 1.7 将远程仓库下载到本地 1.7.1 关联登录 1.7.2 克隆 1.7.3 通过GitHub Desktop更改远程库 2. 远程仓库Gitee 2.1 登录 2.2 创建文件 2.3 关联…

【JVM】总结篇-字节码篇

字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机&#xff1a;指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 &#xff0c;是物理机的软件实现。常用的虚拟机有VMWare&#xff0c;Visual Box&…

Springboot日志打印、SpringBoot集成Log4j2(附源码)、异步日志

文章目录 一、Log4j2介绍1.1、常用日志框架1.2、为什么选用log4j2 二、Log4j2整合步骤2.1、引入jar包2.2、配置文件2.3、配置文件模版 三、配置参数简介3.1、日志级别3.2、日志格式&#xff08;PatternLayout&#xff09;3.3、Appenders组件列表3.3.1、Console3.3.2、File3.3.3…

上传本地项目或文件到SVN服务器(图片讲解,超简单)

上传本地项目或文件到SVN服务器&#xff08;图片讲解&#xff0c;超简单&#xff09; 1、使用TortoiseSVN2、输入SVN远程仓库地址3、添加文件或文件夹 需求&#xff1a;将本地的文件上传到SVN服务器上指定路径。前提&#xff1a;已经安装好TortoiseSVN 1、使用TortoiseSVN 右…

使用 HEIC/HEIF 编码器将 HEIC 转换为 JPEG

随着iOS 11之后新的HEIF图像格式的发布&#xff0c;在当前几乎所有软件仅支持JPEG图像而不支持HEIC图像的环境下&#xff0c;这对Apple来说可能是一个巨大的挑战。不过&#xff0c;仍有一些方法可以为有需要的用户打开、查看、传输或转换iOS 11 HEIC 照片格式。本文将向您介绍 …

基于JAVA+SSM的教学资料管理系统

基于JAVASSM的教学资料管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈喽兄弟们&a…

stm32 移植RTL8201F(正点原子例程为例)

最近在工作中需要使用RTL8201F&#xff0c;在网上找了很多帖子&#xff0c;没有找到合适的&#xff0c;自己翻资料移植了一个。 模板工程使用的是正点原子的f407探索版的例程&#xff0c;原子使用的是LAN8720,需要把他的驱动修改成为我们自己用的RTL8201F。 1.将PHY_TYPE改成我…

RK3588+麒麟国产系统+FPGA+AI在电力和轨道交通视觉与采集系统的应用

工业视觉识别系统厂家提供的功能主要包括&#xff1a; 这些厂家通过先进的视觉识别技术&#xff0c;实现图像的采集、处理与分析。系统能够自动化地完成质量检测、物料分拣、设备监控等任务&#xff0c;显著提升生产效率和产品质量。同时&#xff0c;系统具备高度的灵活性和可扩…

Linux umami网站统计工具自定义API开发

Linux umami网站统计工具自定义API开发 一、src/queries/analytics/下添加调用sql查询文件&#xff1a;二、src/queries/index.js文件中增加导出模块内容&#xff1a;三、src/pages/api/下根据目录添加接口方法文件&#xff1a;四、构建项目&#xff0c;启动。1、到umami目录&a…

Meta 的新策略,将 AI 生成的角色整合到其社交媒体平台

一、Meta新年规划及引人注目的举措 多元规划背景&#xff1a;在新的一年&#xff0c;Meta制定了多维度的战略规划&#xff0c;旨在巩固并拓展其在科技领域的影响力。增强现实与元宇宙是其长期布局的重点方向&#xff0c;期望借此塑造未来互联网的交互形态&#xff1b;面对TikTo…