万字长文的CSS与JavaScript简易学习

news/2024/4/20 15:14:11/文章来源:https://blog.csdn.net/m0_61469860/article/details/127366863

近期学习web笔记,可供参考

目录

css:

css导入方式:

css选择器:

javascript:

javascript介绍:

js引入方式:

js书写语法:

js变量:

5种原始类型:

运算符:

JavaScript流程控制语句:

JavaScript函数:

 JavaScript对象:

1.Array

 JavaScript中的自定义对象:

BOM对象:

DOM:

属性:

事件监听:

事件绑定:

常用事件:

正则表达式:


css:

css导入方式:

css导入HTML有三种方式,

1.内联样式:在标签内部使用style属性,属性值是css属性键值对

<div style="color:red"> HELLO CSS</div>

2.内部样式:定义<style>标签,在标签内部定义css样式

<style type="text/css">
div{
color:red;
}
</style>

3.外部样式:定义link标签,在HTML中引入外部css文件

href="../demo.css"
)是css文件路径

( rel ="stylesheet" 标志是css文件)

<link rel ="stylesheet" href="demo.css">

 外部css:

div{
color:red;
}

整合代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
<style>div{color: blue;}
</style>
<link href="../demo.css" rel="stylesheet">
</head>
<body>
<!--方法1 内联-->
<div style ="color:red"> jskxcdksmkmfdkjd</div>
<div>dkdsasdk6666666666</div>
<p>nb999</p>
</body>
</html>

demo.css文件:

p{color:darkred;
}

css选择器:

选择器是选择其所需的标签如:

div{

color:red;

}

表示选取标签div

选择器的分类:

1.元素选择器:

元素名称{color:red;}

2.id选择器:

#id属性值{color:red;}

3.类选择器:

.class属性值{color:red;}

选择器向冲突时,谁选择范围小,谁生效

id选择器唯一,所以选择器为单项

类选择器可以多选

代码实例:
 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>div{color: darkcyan;}#name{color:rebeccapurple;}.cls{color:darkgreen;}</style></head>
<body>
<div>div1</div>
<div id="name">div2</div>
<div class="cls">div3</div>
<span class="cls">span1</span>
</body>
</html>

javascript:

javascript介绍:

javascript是一门跨平台,面向对象的脚本语言(不需要编译,直接可执行),来控制网页行为,他能让网页可交互

js是控制网页行为的,所以需要与HTML结合

js引入方式:

1.内部脚本:

将js代码定义在HTML页面中

 在HTML中,js代码必须位于<script></script>标签之间

<script>
alert("hello js");
</script>

提示:

1.在HTML文档中可以在任何位置加<script>标签

2.一般把标签放置在<body>元素的底部,这样可以改善显示速度,先加载出来页面(让用户先看到页面,不着急),在加载js代码(脚本执行会拖慢显示)

2.外部脚本:
将js代码定义在外部js文件中,让后也引入HTML页面中
外部文件:demo.js

alert("hello js");

引入外部js文件:

<script src="../js/demo.js"></script>

注意:
1.外部脚本不能包含<script>标签

2.<script>标签不能自闭和

代码演示:
 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script><!--内部js-->alert("js hello");<!--弹出警告框--></script>
</head>
<body><script src="../js/demo.js">
<!--用src属性指定资源路径-->
</script>
</body>
</html>

外部js代码:

alert("666666");

js书写语法:

1.区分大小写:与Java一样,变量名,函数名以及其他一切东西都是区分大小写的,

2.每行结尾的分号可有可无

3.注释:与Java一样

4.大括号表示代码块

输出语句:
1.使用window.alert()写入警告框

2.使用document.write()写入HTML输出

3.使用console.log()写入浏览器控制台

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script>alert("99999999");document.write("66666");console.log("88888");<!--可在开发者工具中查看-->
</script>
</body>
</html>

js变量:

在js中用var关键字来声明变量

var test=20;
test="张三";

JavaScript是一门弱类型的语言,变量可以存放不同类型的值

变量名的命名规则与Java相同(建议驼峰命名)

在使用var命名时,相当于全局变量(而且可以重复定义)

新引入let关键字来定义变量,用法类似var,但是所声明的变量,只在let关键字所在的代码块内有效,且不允许重复声明

新增const关键字,用来声明一个只读的常量,一旦声明,常量就不能改变

数据类型:
JavaScript中分为:原始类型和引用类型

5种原始类型:

number:数字

string:字符 

boolean:布尔

null:对象为空

undefined:当声明的变量未初始化时,该变量的默认值是undefined

使用typeof运算符可以获取数据类型

alert(typeof age);

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>var ch='ss';var age=20;var price=66.9;var obj=null;alert(typeof age);alert(typeof price);alert(typeof ch);alert(typeof obj);
</script>
</body>
</html>

运算符:

运算符与Java运算符大概相同

js比Java多一个(===全等于)

 ==
* 1.判断类型是否相同,如果不一样,则进行类型转换‘
* 2.再比较其值
* ===全等于
* 1.判断类型是否一样,不一样直接返回false
* 2.类型一样才比较值

JavaScript类型转换:

*类型转换:
* 1.其他类型转换成number(使用parseInt   字符串转换成数字)
*        string:按照字符串字面值,转换成数字
*          boolean:    true转换成1   false  转换成0
*  **//** 当字符串为非字母时,会转换成NaN(number中特殊的值)* 如果想让字符串转换成number   在字符串前面加上+
 其他类型转换成Boolean
* 1.number   0与NaN 转为false   其他转换成true
*  2.string  空字符串转换成false    其他转换成true
* 3.null       false
* 4.undefined    false

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>/*** ==* 1.判断类型是否相同,如果不一样,则进行类型转换‘* 2.再比较其值* ===全等于* 1.判断类型是否一样,不一样直接返回false* 2.类型一样才比较值* */
var b=20;
var c="20";
alert(b==c);
/**类型转换:* 1.其他类型转换成number(使用parseInt   字符串转换成数字)*        string:按照字符串字面值,转换成数字*          boolean:    true转换成1   false  转换成0*  **//** 当字符串为非字母时,会转换成NaN(number中特殊的值)* 如果想让字符串转换成number   在字符串前面加上+* */var d="sss";alert(parseInt(d));var e=+true;alert(e);/** 其他类型转换成Boolean* 1.number   0与NaN 转为false   其他转换成true*  2.string  空字符串转换成false    其他转换成true* 3.null       false* 4.undefined    false* */
</script>
</body>
</html>

JavaScript流程控制语句:

与Java也是相同的

if:

switch:

for:
while:

do....while:

部分代码实例:

由于与Java完全相同,没有全部写出
 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>var sum=0;for (let i=1;i<=100;i++)//   最好用let定义   只在代码块中有效    用var 则全局有效{sum+=i;}alert(sum);/*   do   while */var sum=0;var i=1;do {sum+=i;i++;}while(i<=100)alert(sum);
</script>
</body>
</html>

JavaScript函数:

函数(Java中成为方法):都是被设计为执行特定任务的代码块

在JavaScript中函数的定义与Java中方法的定义有些不同

定义:JavaScript函数通过function关键字进行定义,语法为:
方式1:

  function fun(a,b){return a+b;}

方式2:

 var f=function (a,b){return a-b;}

先定义一个变量,让变量接受函数的值(数组相当于对象)

注意:

1.形式参数不需要类型,因为JavaScript是弱类型语言

2.返回值也不需要定义类型  可以在函数内部直接使用return返回

函数的调用:

let m=fun(1,2);

函数的调用注意:
函数调用的过程中,传入的参数个数可以与形参个数不同

当形参个数为2时,实参传入1个时,则另一个形参会赋值为NaN

则最后结果也是NaN

    function fun(a,b){return a+b;}let m=fun(1);alert(m);

跳出弹框:

 JavaScript对象:

1.Array

JavaScript中Array对象用于定义数组

定义:

方法1:

var 变量名=new Array(元素列表)

 var n1=new Array(1,2,3);

方法2:

var 变量名=[元素列表]

    var n2=[1,3,2];

注意:

js数组类似于Java中的集合,长度,类型可变

访问:

与Java的数组访问相似:

n2[0]

JavaScript中的变长度:

var n1=new Array(1,2,3);//   alert(n1);n1[10]=10;alert(n1);alert(n1[9])

访问结果:

 在没有初始化的情况下,会被赋值为undefined

JavaScript中的变类型:

 n1[5]="helloooo";alert(n1[5])alert(n1)
 

 Array属性:

1.length

var arr=[1,2,3];for (let i = 0; i < arr.length; i++) {alert(arr[i])}

 Array方法:

push:添加方法

数组相当于对象,所以调用方法时要用对象

 var arr=[1,2,3];arr.push(4);for (let i = 0; i < arr.length; i++) {alert(arr[i])}

splice:删除方法

splice(参数1,参数2)

参数1:表示从下标为几的位置开始删除

参数2:表示删除元素的个数

  arr.splice(1,1)

2.String对象:

定义:

方式1:

var 变量名=new String(s);

  var n1=new String("skadj");alert(n1);

方式2:

var 变量名=s;

 var n2="sssssssss";alert(n2);

属性:

length    :字符串的长度

    alert(n2.length)

方法:

charAt()      返回在指定位置的字符

IndexOf()    检索字符串

trim()方法:去除字符串前后两端的空白字符串

var srt="     a    "alert(1+srt.trim()+2)

 JavaScript中的自定义对象:

与Java中的类相似

格式:

var 对象名={

属性1:属性值1,

...................

函数名:function(形参列表){}

..................

};

实例:

<script>/** 创建的是自定义对象   对象  对象!!!!!!!!!!* */var n1={name:"txc",class:"yun1",age:19,eat :function (a,b){alert(a+"和"+b+"都喜欢吃水果")}}n1.eat("tt","yy");alert(n1.age)
</script>

BOM对象:

浏览器对象模型

JavaScript将浏览器的各个组成部分封装为对象

BOM中的五个对象:
Window:

        窗口(打开的浏览器对象--可以调用一些window方法(window可以省略))

  widow对象的属性:获取其他BOM对象 

  window方法:alert()   弹出警告框(确认的按钮和警告信息)

                        confirm()显示一段消息以及确认按钮和取消按钮的对话框

 let confirm1 = confirm("危险!!!");alert(confirm1)

                     confirm()是有返回值的   返回值的不同走的路径就不同(点击确定按钮--true    点击取消按钮返回---false)

                       setInterval()按照指定周期来调用函数或计算表达式

                        setTimeout()在指定的毫秒后调用函数或计算表达式

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>/*显示一段消息以及确认按钮和取消按钮的对话框*/let confirm1 = confirm("危险!!!");alert(confirm1)/*  setInterval()按照指定周期来调用函数或计算表达式*///  setInterval(function(),毫秒值);//在一定的时间间隔后执行一个function()函数,循环结束//  setTimeout()  在一定的时间间隔后执行一个function()函数   执行一次
// setInterval(function (){
//     alert("hello");
//     },3000);setTimeout(function (){alert("hello");},3000);
</script>
</body>
</html>

定时器(比如京东商城页面的滑轮--定时转换)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><input type="button" onclick="on()" value="白底">
<img id="myImage" border="0" src="蓝底.gif" style="...">
<input type="button" onclick="off()" value="蓝底">
<script>function on(){document.getElementById('myImage').src='蓝底.gif'}function off(){document.getElementById('myImage').src='白底.gif'}var x=0;
setInterval(function (){if (x % 2=== 0){on();}else{off();}x ++ ;
},1000);
</script>
</body>
</html>

Navigator:

        浏览器对象(整个浏览器对象-------包含浏览器的一些信息)

Screen:

        整个显示器屏幕对象(屏幕的属性----长宽高之类)

History:

        历史记录对象

获取:使用window.history获取(window可以省略)

history.方法();

方法:

back()

       加载history列表中前一个URL(统一资源定位符---调用资源)

forward()

        加载history列表中后一个URL()

效果

Location:
        地址栏对象

location.方法()(---window省略)

属性:
href:设置或返回完整的URL

其实就相当与传入一个网址,进行跳转

内容函数引用

document.write('三秒后跳转');函数

Document 对象使我们可以从脚本(JavaScript)中对 HTML 页面中的所有元素进行访问。

在页面上写入出来

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>document.write('三秒后跳转');setTimeout(function (){location.href="https://www.bilibili.com/video/BV1Qf4y1T7Hx?p=79&spm_id_from=pageDriver&vd_source=061c60aa464a23eb048c1d56c47c8b6c"},3000)
</script>
</body>
</html>

DOM:

文档对象模型

将标记语言的各个部分封装为对象

HTML是标记文档(各部分被封装)

Document:整个文档对象

Element:元素对象(标签对象)

Attribute:属性对象

Text:文本对象

Comment:注释对象

JavaScript通过dom对HTML进行操作

        改变HTML元素内容

        改变HTML元素样式

        对HTML DOM事件做出反应

        添加和删除HTML元素

DOM定义访问了HTML和XML文档的标准

W3C 的 DOM标准被分为三部分

1.核心DOM:针对任何结构化文档的标准模型

         Document:整个文档对象

         Element:元素对象(标签对象)

         Attribute:属性对象

         Text:文本对象

         Comment:注释对象

2.XML DOM:针对xml文档的标准模型

3.HTML DOM :针对HTML文档的标准模型

                Image: <img>

                Button:<input type ='button'>'

Element:元素对象

使用:查阅文档

获取:使用DOCUMENT对象的方法获取

1.document.getElementById()  :根据id属性获取,返回一个element对像

2.document.getElementsByTagName():根据标签名获取,返回element对象数组

3.document.getElementsByName():根据name 属性获取,返回element对象数组

4.document.getElementsByClassName():根据class属性获取,返回element对象数组

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<img id="light" src="蓝底.gif"> <br><div class="cls">传智教育</div>   <br>
<div class="cls">黑马程序员</div> <br><input type="checkbox" name="hobby"> 电影
<input type="checkbox" name="hobby"> 旅游
<input type="checkbox" name="hobby"> 游戏<script>// 返回element对象var img=document.getElementById("light");alert(img)var divs = document.getElementsByTagName("div");alert(divs.length)alert(divs[0])var ho = document.getElementsByName("hobby");alert(ho[0])var cls = document.getElementsByClassName("cls");alert(cls[0])
</script>
</body>
</html>

属性:

element.style 设置或返回元素的style属性  (设置css样式)

element.innerHTML  返回或设置元素内容

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<img id="light" src="蓝底.gif"> <br><div class="cls">传智教育</div>   <br>
<div class="cls">黑马程序员</div> <br><input type="checkbox" name="hobby"> 电影
<input type="checkbox" name="hobby"> 旅游
<input type="checkbox" name="hobby"> 游戏<script>
//# 上面三种标签会封装成对象
//通过对象进行更改
document.getElementById("light").src="白底.gif"
var divs = document.getElementsByTagName("div");
for (let i=0;i<divs.length;i++)
{divs[i].style.color='red';//  divs[i].innerHTML="hehh";
}
//  <input>中type="checkbox"
//   属性checked   设置或返回checkbox是否被选中(true false)
var hobbys = document.getElementsByName("hobby");
for (let i=0;i<hobbys.length;i++)
{hobbys[i].checked=true;//   alert(hobby[i]);
}</script>
</body>
</html>

事件监听:

事件:HTML事件是发生在HTML元素上的“事情”

        比如:

                按钮被点击

                鼠标移动到元素之上

                按下键盘按键

事件监听:JavaScript可以在事件被监测到时执行代码

事件绑定:

方式一:

   通过HTML标签中事件的属性进行绑定(没有做到职责单一,JavaScript代码和HTML代码耦合在一起)

方式二:

 通过DOM属性绑定

代码实例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="button" value="点我" onClick='on()'><br>
<input type="button" value="再点我" id="btn">
<script>//方式1 通过标签属性进行绑定function on()
{alert("我被点了");
}
//   方式2:// 通过DOM属性绑定
document.getElementById("btn").onclick=function ()
{alert("我被点了")
}
</script>
</body>
</html>

常用事件:

onblur:元素失去焦点(文本框点 击就获得焦点--变深)

onfocus:元素获取焦点

onsubmit:确认提交表单

表单验证(案例):

1.当输入框失去焦点时,验证输入内容是否符合要求

2.当点击注册按钮时,判断所有输入框内容是否符合要求,如果不符合则阻止表单提交

正则表达式:

正则表达式定义了字符串的组成规则

定义:

1.直接量:(不要加引号)

var reg =/^\w{6,12}$/ 

2.创建RegExp对象

var reg =new RegExp("^\\w{6,12}$")

 

 方法:
test(str):

str:是字符串

判断指定字符串是否符合正则表达式的规则,返回true和false

代码实例:
 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>// 规定单词字符6-12var reg =/^\w{6,12}$/;var str="sdsddsd";var flag=reg.test(str);alert(flag);
//    长度11   数字组成   第一位是1var re=/^[1]\d{10}$/var st="15893266008"var falg=re.test(st);alert(falg);
</script>
</body>
</html>

到此完结撒花!!!!!!!

  

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

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

相关文章

Spring Aop的学习(一):Spring Aop的简单入门

1. 什么是AOP AOP(Aspect Oriented Programming):面向切面编程,是OOP(面向对象编程)的一个延续,其和OOP一样,也是一种编程思想。不过AOP是一种横向开发模式。 2. AOP的作用及应用场景作用 AOP的主要作用就是减少代码量,提高代码的可重用性,有利于未来的可操作性与可维护性…

2022-2023-1 20221424《计算机基础与程序设计》第9周学习总结

2022-2023-1 20221424《计算机基础与程序设计》第9周学习总结 作业信息这个作业属于哪个课程 2022-2023-1-计算机基础与程序设计这个作业要求在哪里 2022-2023-1计算机基础与程序设计第一周作业这个作业的目标 操作系统责任,内存与进程管理,分时系统,CPU调度,文件、文件系统…

《JavaSE-第十五章》之文件(二)

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 刷题求职神器 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水…

neovim图标显示乱码,utf8字体显示乱码(Windows10和Centos安装nerd-fonts)

前言 作为一名想成为大神的菜鸟程序员&#xff0c;一个牛X的代码编辑环境是必不可少的&#xff0c;在这里我推荐neovim和emacs。我使用的是neovim&#xff0c;github上有neovim-from-scratch工程可以一步一步学习搭建&#xff0c;B站上也有相关视频可供学习&#xff0c;在这里…

升级python环境时gdal出现缺少proj的问题

gdal在做坐标转换时报出如此的错误。原系统的代码没有改变&#xff0c;为了更新sentinelhub包&#xff0c;将python环境由3.6升级至3.7。升级了python环境之后&#xff0c;所有相关的py包和第三方库重新进行安装。安装过程中基本没有遇到问题。但是在运行代码时gdal报出错误。 …

IDEA全局搜索快捷键方法

1、CtrlN 按名字搜索类 相当于eclipse的ctrlshiftR&#xff0c;输入类名可以定位到这个类文件&#xff0c;就像IDEA在其他的搜索部分表现一样&#xff0c;搜索类名也能对你所要搜索的内容多个部分进行匹配&#xff0c;而且如果能匹配的自己写的类&#xff0c;优先匹配自己写的类…

java实验报告4;

一、实验目的:【目的要求】 了解接口和抽象类的使用 熟悉类中成员的定义及权限的设定 掌握完整类的设计 【注意事项】 注意电源插座的用电安全&#xff1b; 遵守计算机的使用注意事项&#xff1b; 防范病毒。 二、使用工具 电脑 window系统 JDK环境 eclipse开发环境…

本博主二哈喇子!特此声明

免责声明 本博主二哈喇子&#xff01;为了避免各种纠纷&#xff0c;特做如下说明: 本博主一向尊重他人的知识产权&#xff0c;同时也注意保护自己的知识产权&#xff0c;因此建议您在进入本博客的各个页面前&#xff0c;请务必仔细阅读本声明。 一切网民以任何方式在进入本博客…

模拟登陆系统

1.问题 日常生活中我们会遇到许多需要密码来登陆账户的场景&#xff0c;如何使用Java来创建此类登陆代码呢&#xff1f; 2.方法 import java.util.Scanner; public static void main (String[] args) { Scanner sc new Scanner (System.in); int count 3; while(cou…

控制“恶意”代码,安全运行沙箱类技术崛起

据CNNIC的最新估算&#xff0c;截至10月31日&#xff0c;我国上网用户人数达到5800万&#xff0c;上网计算机数升至2300万&#xff0c;从七月份至今&#xff0c;在短短的四个月间分别增加了1220万和687万。 这预示着我国互联网在经过一段时间的发展低潮之后正在开始回暖。 但…

贪婪算法(Huffman编码)

如果一个算法分阶段的工作&#xff0c;并且在每一个阶段都认为所做的决定是最好的&#xff0c;而不考虑将来的后果&#xff0c;这样的算法就叫做贪婪算法。贪婪算法只考虑当前局部的最优解&#xff0c;而不去考虑全局的情况&#xff0c;如果最终得到的结果是全局最优的&#xf…

【pytest官方文档】解读- 开发可pip安装的第三方插件

在上一篇的 hooks 函数分享中,开发了一个本地插件示例,其实已经算是在编写插件了。今天继续跟着官方文档学习更多知识点。 一个插件包含一个或多个钩子函数,pytest 正是通过调用各种钩子组成的插件,实现了配置、搜集、运行和报告的所有方面的功能。 通常 pytes t中的插件有…

OS实战笔记(7)-- Linux同步机制

上一篇笔记中对x86平台上原子变量、关中断、自旋锁和信号量的原理做了复习&#xff0c;本笔记回顾一下Linux使用的几种常用的同步机制。 Linux上的原子变量 Linux上提供了一个atomic_t类型表示原子变量。32位和64位版本的结构体定义如下&#xff1a; typedef struct {int coun…

文件描述符0,1,2+lseek()+共享文件覆盖解决

1.文件描述符0&#xff0c;1&#xff0c;2 程序开始运行时&#xff0c;有三个文件被自动打开&#xff0c;打开时分别使用了这三个文件描述符依次打开的三个文件分别是 /dev/stdin&#xff0c;/dev/stdout&#xff0c;/dev/stderr /dev/stdin 标准输入文件 程序开始运行时&…

requests模块和openpyxl模块

第三方模块的下载和使用 1,第三方模块就是别人大神们已经写好的模块,功能特别强大。我们如果像使用第三方模块就先要进行下载。下载完成后 才可以在python中直接调用2.下载方式一:pip工具pip工具注意每个解释器都有pip工具 如果我们的电脑上有多个版本的解释器那么我们在使用…

模型交易平台--信用卡客户消费行为分析

业务问题&#xff1a; 据《中国银行卡产业发展蓝皮书&#xff08;2021&#xff09;》显示&#xff0c;截至2020年末&#xff0c;中国信用卡累计发卡量为11.3亿张&#xff0c;其中6个月内有使用记录的活卡为7.4亿张&#xff0c;有近4亿张信用卡处于“睡眠”状态。 睡眠信用卡…

【JUC】12.读写锁与StampedLock[完结]

文章目录1. 什么是读写锁2. 锁的演化历程3. 锁降级4. 锁降级的策略5. StampedLock简介6. StampedLock的特点7. StampedLock之传统读写8. StampedLock之乐观锁9. StampedLock缺点1. 什么是读写锁 读写锁是指ReentrantReadWriteLock类 该类能被多个读线程访问或者一个写线程访问…

第二节:数据类型与变量【java】

目录 &#x1f4c3;前言 &#x1f4d7;1.数据类型 &#x1f4d5;2. 变量 2.1 变量概念 2.2 语法格式 &#x1f4d9;3.整型变量 3.1 整型变量 3.2 长整型变量 3.3 短整型变量 3.4 字节型变量 &#x1f4d8;4.浮点型变量 4.1 双精度浮点型 4.2 单精度浮点型 &#…

拓端tecdat|用Python进行图像模糊处理和特征提取

全文链接&#xff1a;http://tecdat.cn/?p9015 原文出处&#xff1a;拓端数据部落公众号 在本文中&#xff0c;我将带您了解图像处理的一些基本功能。特征提取。但是这里我们需要更深入的数据清理。但是数据清理是在数据集&#xff0c;表格&#xff0c;文本等上完成的。如何在…

vue使用canvas实现手写电子签名;vue使用vue-esign插件实现手写电子签名;H5使用画布签名

功能&#xff1a; 1.兼容 PC 和 Mobile&#xff1b; 2.画布自适应屏幕大小变化&#xff08;窗口缩放、屏幕旋转时画布无需重置&#xff0c;自动校正坐标偏移&#xff09;&#xff1b; 3.自定义画布尺寸&#xff08;导出图尺寸&#xff09;&#xff0c;画笔粗细、颜色&#xff0…