[JavaScript] MDN web docs 摘要 1: JavaScript 第一步
[JavaScript] MDN web docs 摘要 1: JavaScript 第一步
文章目录
1 什么是JavaScript
1.1 浏览器 API
1.2 第三方 API
1.3 注释
1.4 解释代码 vs 编译代码
1.5 服务器端代码 vs 客户端代码
1.6 动态代码 vs 静态代码
1.7 怎样向页面添加 JavaScript
1.7.1 内部 JavaScript
1.7.2 外部 JavaScript
1.7.3 内联 JavaScript 处理器
1.8 脚本加载策略
2 初次接触 JavaScript
3 出现了什么问题?JavaScript 疑难解答
4 储存你所需的信息 — 变量
4.1 用`let`或`var`声明变量
4.2 变量命名规则:
4.3 变量类型:
4.4 常量
5 JavaScript 基础概念 — 数字与运算符
5.1 JavaScript 只有一种数字的数据类型: `Number`.
5.2 操作符
6 处理文字 — JavaScript 中的字符串
6.1 字符串
6.2 转义
6.3 连接字符串:
6.4 数字与字符串相互转换
7 字符串常用操作
7.1 字符串长度
7.2 检索
7.3 字串
7.4 大小写转换
7.4 字符串替换
8 数组
8.1 创建数组
8.2 访问和修改数组元素
8.3 数组长度
8.4 数组和字符串相互转换
8.4.1 字符串转换为数组
8.4.2 数组转换为字符串
8.5 添加和删除数组元素
1 什么是JavaScript
JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D 动画,滚动播放的视频等等。
1.1 浏览器 API
内建于 web 浏览器中,它们可以使周边计算环境的数据暴露出来,还可以做实用的复杂工作。例如:
文档对象模型 API(DOM(Document Object Model)API) 能通过创建、移除和修改 HTML,为页面动态应用新样式等手段来操作 HTML 和 CSS。比如当某个页面出现了一个弹窗,或者显示了一些新内容(像上文小 demo 中看到那样),这就是 DOM 在运行。
地理位置 API(Geolocation API) 获取地理信息。这就是为什么 谷歌地图 可以找到你的位置,而且标示在地图上。
画布(Canvas) 和 WebGL API 可以创建生动的 2D 和 3D 图像。人们正运用这些 web 技术制作令人惊叹的作品。参见 Chrome Experiments 以及 webglsamples。
诸如 HTMLMediaElement 和 WebRTC 等 影音类 API 让你可以利用多媒体做一些非常有趣的事,比如在网页中直接播放音乐和影片,或用自己的网络摄像头获取录像,然后在其他人的电脑上展示(试用简易版 截图 demo 以理解这个概念)。
1.2 第三方 API
并没有默认嵌入浏览器中,一般要从网上取得它们的代码和信息。比如:
Twitter API 和 新浪微博 API 可以在网站上展示最新推文之类。
谷歌地图 API 和 高德地图 API 可以在网站嵌入定制的地图等等。
1.3 注释
JavaScript 的注释和C++ 一样: //单行注释
和 /*多行注释 */
1.4 解释代码 vs 编译代码
解释(interpret)和 编译(compile)。在解释型语言中,代码自上而下运行,且实时返回运行结果。代码在执行前,无需由浏览器将其转化为其他形式。 与此同时,编译型语言代码能够运行之前需要先转化(编译)成另一种形式。比如 C/C++ 先被编译成汇编语言,然后才能由计算机运行。JavaScript 是轻量级解释型语言。两种方式各有优势。
1.5 服务器端代码 vs 客户端代码
客户端(client-side)代码是在用户的电脑上运行的代码,在浏览一个网页时,它的客户端代码就会被下载,然后由浏览器来运行并展示。这就是客户端 JavaScript。 而服务器端(server-side)代码在服务器上运行,浏览器将结果下载并展示出来。流行的服务器端 web 语言包括:PHP、Python、Ruby、ASP.NET 以及 JavaScript。JavaScript 也可用作服务器端语言,比如现在流行的 Node.js 环境。
1.6 动态代码 vs 静态代码
“动态”一词既能描述客户端 JavaScript,又能描述服务器端语言。是指通过按需生成新内容来更新 web 页面 / 应用,使得不同环境下显示不同内容。服务器端代码会在服务器上动态生成新内容,例如从数据库中提取信息。而客户端 JavaScript 则在用户端浏览器中动态生成新内容,比如说创建一个新的 HTML 表格,用从服务器请求到的数据填充,然后在网页中向用户展示这个表格。两种情况的意义略有不同,但又有所关联。 没有动态更新内容的网页叫做“静态”页面,所显示的内容不会改变。
1.7 怎样向页面添加 JavaScript
使用
元素添加各种JavaScript:无论内部还是外部。
1.7.1 内部 JavaScript
code 直接加到html中,放在
标签之前。
< html lang = " en-US" >
< head>
< meta charset = " utf-8" >
< title> Apply JavaScript example title>
< script>
document. addEventListener ( "DOMContentLoaded" , function ( ) {
function createParagraph ( ) {
let para = document. createElement ( 'p' ) ;
para. textContent = 'You clicked the button!' ;
document. body. appendChild ( para) ;
}
const buttons = document. querySelectorAll ( 'button' ) ;
for ( let i = 0 ; i < buttons. length ; i++ ) {
buttons[ i] . addEventListener ( 'click' , createParagraph) ;
}
} ) ;
script>
head>
< body>
< button> Click me button>
body>
html>
1.7.2 外部 JavaScript
外部JavaScript是指,将JavaScript脚本放到.js
文件中,这是最佳的写法,HTML和JS分开,易于维护,可重用。
function createParagraph ( ) {
let para = document. createElement ( 'p' ) ;
para. textContent = 'You clicked the button!' ;
document. body. appendChild ( para) ;
}
const buttons = document. querySelectorAll ( 'button' ) ;
for ( let i = 0 ; i < buttons. length ; i++ ) {
buttons[ i] . addEventListener ( 'click' , createParagraph) ;
}
然后将
替换成:
1.7.3 内联 JavaScript 处理器
有时候会看到下面这样的代码,即在button元素里加一个onclick
处理器,但是这是不好的写法,且每加一个button都要这样写,不好维护。
function createParagraph ( ) {
let para = document. createElement ( 'p' ) ;
para. textContent = 'You clicked the button!' ;
document. body. appendChild ( para) ;
}
< button onclick= "createParagraph()" > Click me! < / button>
1.8 脚本加载策略
如果要用JS操作DOM,那么DOM一定要先于javascript被加载。 老的解决方法是将JS脚本放在
标签之前,这种方法使HTML DOM在加载之前,javascript的加载/解析完全被阻止,效率低。
1.8.1 async
和 defer
1.7.1 内部 javascript 的例子:
document. addEventListener ( "DOMContentLoaded" , function ( ) {
...
} ) ;
事件监听器监听 DOMContentLoaded
事件,代表HTML body已经完全加载并解析。此事件被触发之后,javascript 才会运行。
async
和 defer
仅对外部 javascript 起作用,它们之间的区别示意图:
< script src = " myscript.js" > script>
< script async src = " myscript.js" > script>
< script defer src = " myscript.js" > script>
Without async or defer, browser will run your script immediately, before rendering the elements that’s below your script tag.
With async (asynchronous), browser will continue to load the HTML page and render it while the browser load and execute the script at the same time.
With defer, browser will run your script when the page finished parsing. (not necessary finishing downloading all image files. This is good.)
< script defer src = " js/vendor/jquery.js" > script>
< script defer src = " js/script2.js" > script>
< script defer src = " js/script3.js" > script>
使用defer能保证脚本按顺序加载,jquery.js, script2.js, script3.js ,使用 async 则不然。
如果多个脚本不需要等待解析(???),能独立执行,用async
, 反之用defer
。
2 初次接触 JavaScript
JavaScript 的很多代码特性和其他编程语言是一样的,比如函数啊,循环之类的,代码语法看起来不同,但概念基本是一样的。
用关键字let
(或 var
创建变量),用 const
创建常量(这点和C++一样)。
定义函数有很多方式,其中一种是用关键字function
定义,举例如下:
function checkGuess ( ) {
alert ( 'I am a placeholder' ) ;
}
如果在浏览器的JavaScript Console调用这个函数,会弹出对话框。 操作符 +
-
*
/
可以进行算术运算,还可以进行字符串连接。 还允许快捷操作符:
name += ' says hello!' ;
++
操作符也可以用: guessCount++;
比较操作符,这里比较相等和不等与其他语言不同,多一个等号。 但是 ==
和!=
在JavaScript里也是合法的操作符,但和严格相等符号===
相比,==
只看值是否相等,不管数据类型是否相同,因此应该使用===
符号,可以减少错误发生的可能性。 条件,if
, else if
, else
和C++ 语法是一样的。
对于JavaScript语言,一切都是对象,用户可以自己创建对象。
3 出现了什么问题?JavaScript 疑难解答
JavaScript 大小写敏感。
console.log()
是非常有用的调试函数,可以将值输出到控制台。 类选择器以点号 .
开始。
如果是Firefox, 用 Ctrl + Shift + K, 打开console,可以看到可能的错误提示。
4 储存你所需的信息 — 变量
4.1 用let
或var
声明变量
声明变量时不需要指定类型:
let myName;
let myAge;
在JavaScript中,所有代码指令以分号结束。 同时声明并初始化变量:
let myDog = 'Rover' ;
var
和let
的区别: var
是老的,let
是新的,可以在变量初始化之后,再次用var
关键字声明。例如:
myName = 'Chris' ;
function logName ( ) {
console. log ( myName) ;
}
logName ( ) ;
var myName;
此外,下面的代码是合法的,如果var
改成let
就不合法:
var myName = 'Chris' ;
var myName = 'Bob' ;
要尽量使用let
而非 var
,除非是要支持旧版的IE,一些旧版的IE只支持var
,不支持let
。
4.2 变量命名规则:
1 变量名由(0-9, a-z, A-Z) 以及下划线组成
2 不要以下划线开头
3 不要以数字开头
4 不能用保留字当变量名
4.3 变量类型:
数字:有整型,也有浮点型, let myAge = 17;
字符串 :可用单引号或双引号, let dolphinGoodbye = 'So long and thanks for all the fish';
布尔:值为true
或false
, let iAmAlive = true;
数组:let myNameArray = ['Chris', 'Bob', 'Jim'];
第一个元素的index是0
对象:let dog = { name : 'Spot', breed : 'Dalmatian' };
然后 dog.name
为 Spot
动态类型:不需要指定变量的数据类型
let myNumber = '500' ;
typeof myNumber;
myNumber = 500 ;
typeof myNumber;
4.4 常量
常量声明之后,值不可再次改变,和其他语言一样。 使用const
关键字:
const daysInWeek = 7 ;
const hoursInDay = 24 ;
daysInWeek = 8 ;
5 JavaScript 基础概念 — 数字与运算符
5.1 JavaScript 只有一种数字的数据类型: Number
.
let myInt = 5 ;
let myFloat = 6.667 ;
myInt;
myFloat;
typedef myInt;
typedef myFloat;
5.2 操作符
操作符和其他语言类似, 有 +
-
*
/
%
**
, 最后一个是指数运算符:
10 ** 3
= Math.pow(10, 3)
= 10 * 10 * 10
= 1000
除法运算和python类似,会给出浮点值:
10 / 9;
1.1111111111111112
表达式求和的顺序总是从左到右。 ++
和 --
操作符和C++的一样。
let num1 = 4 ;
num1++ ;
num1;
let num2 = 6 ;
num2-- ;
num2;
let num3 = 6 ;
++ num3;
num3;
6 处理文字 — JavaScript 中的字符串
6.1 字符串
字符串可用单引号或双引号,但是不能混用:
let badQuotes = 'What on earth? ";
6.2 转义
转义字符串中的字符,在字符前加反斜杠转义字符:
let bigmouth = 'I\'ve got no right to take my place...' ;
bigmouth;
6.3 连接字符串:
用+
号,字符串字面值还可以和变量相加:
let name = prompt ( 'What is your name?' ) ;
alert ( 'Hello ' + name + ', nice to see you!' ) ;
数字可与字符串相加:
'Front ' + 242 ;
6.4 数字与字符串相互转换
使用Number函数与toString() 方法:
let myString = '123' ;
let myNum = Number ( myString) ;
typeof myNum;
let myNum = 123 ;
let myString = myNum. toString ( ) ;
typeof myString;
7 字符串常用操作
字符串是对象。
7.1 字符串长度
使用 length
属性
let browserType = 'mozilla' ;
browserType. length;
7.2 检索
同数组:
browserType[ 0 ] ;
browserType. indexOf ( 'zilla' ) ;
indexOf()
方法仅返回首次出现时的索引:The index of the first occurrence of searchValue, or -1 if not found.
7.3 字串
用 slice(a, b)
方法,a
为起始位置,b
为结束位置,实际取a ~ b-1
。 如果 b
省略,取a
起始的全部字符,直到结束。
let browserType = "Mozilla" ;
browserType. slice ( 2 ) ;
7.4 大小写转换
分别使用 toLowerCase()
和 toUpperCase()
两个方法。
7.4 字符串替换
let browserType = "Mozilla" ;
browserType. replace ( 'moz' , 'van' ) ;
8 数组
8.1 创建数组
数组元素的数据类型可以不统一:
let random = [ 'tree' , 795 , [ 0 , 1 , 2 ] ] ;
8.2 访问和修改数组元素
同C++数组,没有特别之处。
8.3 数组长度
使用 .length
属性。
8.4 数组和字符串相互转换
8.4.1 字符串转换为数组
let myData = 'Manchester,London,Liverpool,Birmingham,Leeds,Carlisle' ;
let myArray = myData. split ( ',' ) ;
myArray;
8.4.2 数组转换为字符串
使用 join()
或 toString()
方法, toString()
更简单,但不能带参数。
let dogNames = [ 'Rocket' , 'Flash' , 'Bella' , 'Slugger' ] ;
let myNewString = dogNames. join ( ';;' ) ;
myNewString;
let myNewString2 = dogNames. toString ( ) ;
myNewString2;
8.5 添加和删除数组元素
从数组末尾添加删除元素: push()
, pop()
push()
可以带多个参数,如果成功,返回新数组长度,pop()
不带参数,如果成功,返回被删除的元素。 从数组开头添加删除元素:unshift()
, shift()
两组方法没有差别,只不过是一个对数组末尾的元素操作,一个对数组开头的元素操作。
let myArray = [ 'Manchester' , 'London' , 'Birmingham' , 'Leeds' , 'Carlisle' ] ;
let newLength = myArray. push ( 'Bradford' , 'Brighton' ) ;
myArray;
newLength;
let removedItem = myArray. pop ( ) ;
myArray;
removedItem;
https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript
https://stackoverflow.com/questions/10808109/script-tag-async-defer/24183280#24183280
你可能感兴趣的:(Other)
AbMole| 纳米药物递送系统IL@H-PP在乳腺癌和脑转移光热疗法
AbMole
AbMole 生物化学 生物试剂 科研 生物实验
近年来,光热疗法(PTT)作为一种非侵入性的癌症治疗手段,因其独特的优势而受到广泛关注。来自四川大学华西药学院药物靶向与药物递送系统重点实验室的范童,胡海丽,徐燕燕等多名研究人员发表了题为《HollowcoppersulfidenanoparticlescarryingISRIBforthesensitizedphotothermaltherapyofbreastcancerandbrainmet
【资料分享】IF=500+!基于鼻咽癌诱导化疗后减容放疗与常规减容放疗比较的研究综述
灵犀拾荒者
资料分享 数据挖掘
一、摘要在鼻咽癌(NasopharyngealCarcinoma,NPC)的综合治疗中,诱导化疗(InductionChemotherapy,IC)可显著缩小肿瘤体积,随后行放射治疗(Radiotherapy,RT)已成为临床常见策略。传统共识通常建议按诱导化疗前(Pre-IC)的肿瘤范围进行常规放疗;然而,减容放疗(Reduced-volumeRT)基于诱导化疗后(Post-IC)显著缩小的肿瘤
Chapter 4-8. Troubleshooting Congestion in Fibre Channel Fabrics
mounter625
Linux kernel 服务器 网络 kernel linux
Utilizingtheshowtech-supportslowdrainCommandTheshowtech-supportslowdrainisasinglecommandonCiscoMDSswitchesthataggregatesalltheothercommandsnormallynecessaryfortroubleshootingcongestionintoasingleoutpu
linux识别不到板载raid,linux server 不要用bios自带的板载raid
weixin_39699163
linux识别不到板载raid
IfyoumeantheRAIDcontrollerbuiltintothemotherboard,I'dAVOIDIT.It'snottruehardwareRAID.linuxMotherboardRAIDisregardedastheworstofRAIDs,asitismotherboardspecific,thereareseveralonlineinstancesofthemother
COMP333 public websites
后端
Redistributingthisfile(includingpartially)toCourseHeroorotherpublicwebsitesisstrictlyprohibited.COMP3334-ProjectSection1:OverviewOnlinestorageisapopularapplicationinourdailylife.Withonlinestorage,ause
Github 2025-03-06 Go开源项目日报 Top10
老孙正经胡说
github golang 开源 Github趋势分析 开源项目 Python Golang
根据GithubTrendings的统计,今日(2025-03-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Go项目10Terraform:基础设施即代码的开源工具创建周期:3626天开发语言:Go协议类型:OtherStar数量:40393个Fork数量:9397次关注人数:40393人贡献人数:358人OpenIssues数量:1943个Github地
Markdown 基础使用索引
ddxn417
编辑器
功能标识符备注斜体_文字_加粗**文字**标题层级显示,第几级就用几个##标题不能加粗,但可以用_标识符显示为斜体内联链接[链接文本](链接地址)内联链接全局链接,所有的链接标识在文章底部注明地址,只标记一次[显示some文字][链接标识a][显示other][链接标识a][链接标识a]:链接地址在全文多个地方需要显示同一个链接时,只需要在底部标记一次,省时省力内联链接图片以下是较为完整的全部代码,若是实现如何转换的,主看:voidTen_Other(char[],int,int,char[],int&…学
hadoop
百里自来卷
hadoop 大数据 分布式
Hadoop是一个用于分布式存储和处理大规模数据的开源框架,它的架构主要由以下几个核心组件组成:1.Hadoop生态系统核心组件Hadoop的核心架构主要包括HDFS(HadoopDistributedFileSystem)和YARN(YetAnotherResourceNegotiator),以及MapReduce计算框架:1.1HDFS(分布式文件系统)HDFS负责存储大规模数据,采用主从架构
基于 .NET 6 使用 YARP (Yet Another Reverse Proxy) 进行负载均衡
.NET跨平台
ASP.NET Core Web API .net 负载均衡
下面是基于.NET6使用YARP(YetAnotherReverseProxy)进行负载均衡,实现ASP.NETCoreAPI的水平扩展的示例,包括详细的配置步骤和代码示例。1.创建ASP.NETCoreAPI服务首先,我们需要创建多个实例的ASP.NETCoreAPI服务,它们将由YARP代理进行负载均衡。1.1创建ASP.NETCoreAPI使用以下命令创建一个新的WebAPI项目:dotne
DeepSeek 全套资料pdf合集免费下载(持续更新)
Java潘老师
pdf deepseek
有很多朋友都关注DeepSeek相关使用的教程资料,本站也一直持续分享DeepSeek学习相关的pdf资料,由于比较零散,这篇文章主要就是做一个汇总,并且持续更新,让大家可以及时获取下载最新的相关DeepSeek的资料。持续更新地址为:https://www.panziye.com/project/other/15300.html1、清华大学系列清华大学系列目前有以下几部:清华大学第1部《Deep
【自学笔记】Hadoop基础知识点总览-持续更新
Long_poem
笔记 hadoop 大数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Hadoop基础知识点总览1.Hadoop简介2.Hadoop生态系统3.HDFS(HadoopDistributedFileSystem)HDFS基本命令4.MapReduceWordCount示例(Java)5.YARN(YetAnotherResourceNegotiator)6.其他组件简介总结Hadoop基础知识点总
idea 导入jdk
MeGoodtoo
java
用IDEA打开冒个项目的时候有些时候程序中的系统类型会报错只需在idea中导入本地的jdk就行了1,首先打开IntelliJIDEA开发环境,选择"File"菜单,找到"othersettins",再找到"DefaultProjectStructrue"打开项目默认配置窗口设置2,切换到Project项,选择默认的JDK版本即可,如果目前没有配置任何JDK,手动添加即可。
已完成生成项目“xxx.vcxproj”的操作 - 失败。
小羊byte
前端 算法 javascript
原因:对在类外对某个的拷贝构造函数或者赋值运算符函数进行实现,但是在类中没有进行声明。如下:test.h:classData{public:Data(Data*other=nullptr);~Data();private:Data*m_pdate;};test.cpp:#include"test.h"#includeData::Data(Data*other):m_pdate(other){}Da
面向对象的前端开发_20多种面向前端开发人员的文档和指南(第11号)
culi3118
编程语言 java javascript python html ViewUI
面向对象的前端开发It’sthattimeagaintogetlearning!Asbefore,I’vecollectedanumberofdifferentlearningresources,includingguides,docs,andotherusefulwebsitestohelpyougetuptospeedindifferentareasoffront-enddevelopment
Fire Game
CheerfulMinions
竞赛算法练习 算法
FatbrotherandMazeareplayingakindofspecial(hentai)gameonanN*Mboard(Nrows,Mcolumns).Atthebeginning,eachgridofthisboardisconsistingofgrassorjustemptyandthentheystarttofireallthegrass.Firstlytheychoosetwo
RuntimeError: CUDA error:device.side assert triggered(tensor形状有误)
Gidear
cuda
报错如下:RuntimeError:CUDAerror:device.sideasserttriggeredCUDAkernelerrorsmightbeasynchronouslyreportedatsomeotherAPIcall,sothestacktracebelowmightbeincorrect.后面经过检查发现,是进行计算的时候维度弄错了,下次遇到这个问题可以试着回去检查数据形状是否
Bootstrap4 导航active状态切换
君子……如玉
H5 Bootstrap4
页面HTML代码:首页数据统计用户列表AnotheractionSomethingelsehereSeparatedlinkLinkDisabledjs代码如下:$('.nav-pills').find('a').each(function(){if(this.href==document.location.href||document.location.href.search(this.href
《算法笔记》9.6小节 数据结构专题(2)并查集 问题 C: How Many Tables
圣保罗的大教堂
《算法笔记》 算法
题目描述TodayisIgnatius'birthday.Heinvitesalotoffriends.Nowit'sdinnertime.Ignatiuswantstoknowhowmanytablesheneedsatleast.Youhavetonoticethatnotallthefriendsknoweachother,andallthefriendsdonotwanttostaywit
hint: Updates were rejected because the remote contains work that you dohint: not have locally. Thi
小趴菜日记
python
hint:Updateswererejectedbecausetheremotecontainsworkthatyoudohint:nothavelocally.Thisisusuallycausedbyanotherrepositorypushinghint:tothesameref.Youmaywanttofirstintegratetheremotechangeshint:(e.g.,'gi
Monkey异常报错: Error: A RuntimeException occurred
Qearl鱼
Android性能测试 Monkey测试 权限 USB调试 输入事件
使用小米手机跑monkey时,刚启动出现如下错误:**Error:ARuntimeExceptionoccurred:java.lang.SecurityException:InjectingtoanotherapplicationrequiresINJECT_EVENTSpermissionatandroid.os.Parcel.createException(Parcel.java:2074)
统计用户输入 C语言
2501_90645732
c语言
从键盘读取用户输入直到遇到#字符,编写程序统计读取的空格数目、读取的换行符数目以及读取的所有其他字符数目。(要求用getchar()输入字符)#includeintmain(){printf("Pleaseinputastringendby#:\n");intc;intspaces=0;intnewlines=0;intother=0;while((c=getchar())!='#'){if(c=
Visual Studio Code配置Python开发环境
ai74583
python 开发工具 json
1.安装Python插件在VScode界面按Crtl+Shift+P或者F1输入extinstall直接安装Python,也就是点击它,然后等待,安装好后会提示你重启2.配置运行Python程序同样的打开命令面板(Crtl+Shift+P或F1),然后输入Tasks:ConfigureTaskRunner(中文输入:任务,然后选择任务:配置任务运行程序),选择Other此时VScode会自动生成.
C# IEquatable<T> 使用详解
鲤籽鲲
C# c# 数据库 C# 知识捡漏
总目录前言在C#开发中,IEquatable是一个泛型接口,用于定义类型的相等性比较逻辑。通过实现IEquatable,可以为自定义类型提供高效的、类型安全的相等性比较方法。本文将详细介绍IEquatable的使用方法、应用场景及其优势。一、IEquatable是什么?1.基本概念IEquatable是一个泛型接口,定义了一个方法Equals(Tother),用于判断当前对象是否与指定的对象相等。
探索高效图像处理:Android原生OpenCV开发指南
农隆龙
探索高效图像处理:Android原生OpenCV开发指南native-opencv-android-templateAtutorialforsettingupOpenCV4.6.0(andother4.x.yversion)forAndroidinAndroidStudiowithNativeDevelopmentKit(NDK)supportforC++development.项目地址:http
常用运维工具整理
sky北城
文档先行 运维 linux
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录目录文章目录前言一、软件说明与下载地址1.VisualStudioCode(VSCode)2.Wireshark3.Navicat4.Postman5.KeePassXC6.SublimeText7.Xmind8.MongoDBCompass9.腾讯会议10.FileZilla11.AnotherRedisDesktopMan
论文阅读笔记——Prediction with Action: Visual Policy Learning via Joint Denoising Process
寻丶幽风
论文阅读笔记 论文阅读 笔记 人工智能
以前的method是输入视频输出视频或者输入视频和action学习action,该方法认为action,video和othercondition具有一定联系,所以一次性对所有的进行jointdenoise。网络结构采用MaskedMulti-headAttention关联不同模态,使用DiT的backbone。
el-input实现金额输入
什么什么什么?
前端 vue.js javascript elementui
需求:想要实现一个输入金额的el-input,限制只能输入数字和一个小数点。失焦数字转千分位,聚焦转为数字,超过最大值,红字提示效果图失焦聚焦报错效果//组件limitDialog{{otherInfo.currency}}{{otherInfo.currency}}当日已用金额{{otherInfo.daily_used}}{{otherInfo.currency}}{{otherInfo.cu
net_device_ops
星空探索
Linux Kernel 网络实现
/* *Thisstructuredefinesthemanagementhooksfornetworkdevices. *Thefollowinghookscanbedefined;unlessnotedotherwise,theyare *optionalandcanbefilledwithanullpointer. * *int(*ndo_init)(structnet_device*dev
DAT 560G: Database Design and SQL
后端
DAT560G:DatabaseDesignandSQLSpring2025,MiniAAssignment#4:SQLPart3Instructions1.Thisisanindividualassignment.Youmaynotdiscussyourapproachtosolvingthesequestionswithanyone,otherthantheinstructororTA.2.P
TOMCAT在POST方法提交参数丢失问题
357029540
java tomcat jsp
摘自http://my.oschina.net/luckyi/blog/213209
昨天在解决一个BUG时发现一个奇怪的问题,一个AJAX提交数据在之前都是木有问题的,突然提交出错影响其他处理流程。
检查时发现页面处理数据较多,起初以为是提交顺序不正确修改后发现不是由此问题引起。于是删除掉一部分数据进行提交,较少数据能够提交成功。
恢复较多数据后跟踪提交FORM DATA ,发现数
在MyEclipse中增加JSP模板 删除-2008-08-18
ljy325
jsp xml MyEclipse
在D:\Program Files\MyEclipse 6.0\myeclipse\eclipse\plugins\com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710\templates\jsp 目录下找到Jsp.vtl,复制一份,重命名为jsp2.vtl,然后把里面的内容修改为自己想要的格式,保存。
然后在 D:\Progr
JavaScript常用验证脚本总结
eksliang
JavaScript javaScript表单验证
转载请出自出处:http://eksliang.iteye.com/blog/2098985
下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...!
&nb
微软BI(4)
18289753290
微软BI SSIS
1)
Q:查看ssis里面某个控件输出的结果:
A MessageBox.Show(Dts.Variables["v_lastTimestamp"].Value.ToString());
这是我们在包里面定义的变量
2):在关联目的端表的时候如果是一对多的关系,一定要选择唯一的那个键作为关联字段。
3)
Q:ssis里面如果将多个数据源的数据插入目的端一
定时对大数据量的表进行分表对数据备份
酷的飞上天空
大数据量
工作中遇到数据库中一个表的数据量比较大,属于日志表。正常情况下是不会有查询操作的,但如果不进行分表数据太多,执行一条简单sql语句要等好几分钟。。
分表工具:linux的shell + mysql自身提供的管理命令
原理:使用一个和原表数据结构一样的表,替换原表。
linux shell内容如下:
=======================开始 
本质的描述与因材施教
永夜-极光
感想 随笔
不管碰到什么事,我都下意识的想去探索本质,找寻一个最形象的描述方式。
我坚信,世界上对一件事物的描述和解释,肯定有一种最形象,最贴近本质,最容易让人理解
&
很迷茫。。。
随便小屋
随笔
小弟我今年研一,也是从事的咱们现在最流行的专业(计算机)。本科三流学校,为了能有个更好的跳板,进入了考研大军,非常有幸能进入研究生的行业(具体学校就不说了,怕把学校的名誉给损了)。
先说一下自身的条件,本科专业软件工程。主要学习就是软件开发,几乎和计算机没有什么区别。因为学校本身三流,也就是让老师带着学生学点东西,然后让学生毕业就行了。对专业性的东西了解的非常浅。就那学的语言来说
23种设计模式的意图和适用范围
aijuans
设计模式
Factory Method 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 适用性 当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
Abstr
Java中的synchronized和volatile
aoyouzi
java volatile synchronized
说到Java的线程同步问题肯定要说到两个关键字synchronized和volatile。说到这两个关键字,又要说道JVM的内存模型。JVM里内存分为main memory和working memory。 Main memory是所有线程共享的,working memory则是线程的工作内存,它保存有部分main memory变量的拷贝,对这些变量的更新直接发生在working memo
js数组的操作和this关键字
百合不是茶
js 数组操作 this关键字
js数组的操作;
一:数组的创建:
1、数组的创建
var array = new Array(); //创建一个数组
var array = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]
别人的阿里面试感悟
bijian1013
面试分享 工作感悟 阿里面试
原文如下:http://greemranqq.iteye.com/blog/2007170
一直做企业系统,虽然也自己一直学习技术,但是感觉还是有所欠缺,准备花几个月的时间,把互联网的东西,以及一些基础更加的深入透析,结果这次比较意外,有点突然,下面分享一下感受吧!
&nb
淘宝的测试框架Itest
Bill_chen
spring maven 框架 单元测试 JUnit
Itest测试框架是TaoBao测试部门开发的一套单元测试框架,以Junit4为核心,
集合DbUnit、Unitils等主流测试框架,应该算是比较好用的了。
近期项目中用了下,有关itest的具体使用如下:
1.在Maven中引入itest框架:
<dependency>
<groupId>com.taobao.test</groupId&g
【Java多线程二】多路条件解决生产者消费者问题
bit1129
java多线程
package com.tom;
import java.util.LinkedList;
import java.util.Queue;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.loc
汉字转拼音pinyin4j
白糖_
pinyin4j
以前在项目中遇到汉字转拼音的情况,于是在网上找到了pinyin4j这个工具包,非常有用,别的不说了,直接下代码:
import java.util.HashSet;
import java.util.Set;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin
org.hibernate.TransactionException: JDBC begin failed解决方案
bozch
ssh 数据库异常 DBCP
org.hibernate.TransactionException: JDBC begin failed: at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68) at org.hibernate.impl.SessionImp
java-并查集(Disjoint-set)-将多个集合合并成没有交集的集合
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.ut
Java PrintWriter打印乱码
chenbowen00
java
一个小程序读写文件,发现PrintWriter输出后文件存在乱码,解决办法主要统一输入输出流编码格式。
读文件:
BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因
[天气与气候]极端气候环境
comsci
环境
如果空间环境出现异变...外星文明并未出现,而只是用某种气象武器对地球的气候系统进行攻击,并挑唆地球国家间的战争,经过一段时间的准备...最大限度的削弱地球文明的整体力量,然后再进行入侵......
那么地球上的国家应该做什么样的防备工作呢?
&n
oracle order by与union一起使用的用法
daizj
UNION oracle order by
当使用union操作时,排序语句必须放在最后面才正确,如下:
只能在union的最后一个子查询中使用order by,而这个order by是针对整个unioning后的结果集的。So:
如果unoin的几个子查询列名不同,如
Sql代码
select supplier_id, supplier_name
from suppliers
UNI
zeus持久层读写分离单元测试
deng520159
单元测试
本文是zeus读写分离单元测试,距离分库分表,只有一步了.上代码:
1.ZeusMasterSlaveTest.java
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.j
Yii 截取字符串(UTF-8) 使用组件
dcj3sjt126com
yii
1.将Helper.php放进protected\components文件夹下。
2.调用方法:
Helper::truncate_utf8_string($content,20,false); //不显示省略号 Helper::truncate_utf8_string($content,20); //显示省略号
&n
安装memcache及php扩展
dcj3sjt126com
PHP
安装memcache tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5/ /usr/local/php/bin/phpize (?) ./configure --with-php-confi
JsonObject 处理日期
feifeilinlin521
java json JsonOjbect JsonArray JSONException
写这边文章的初衷就是遇到了json在转换日期格式出现了异常 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 原因是当你用Map接收数据库返回了java.sql.Date 日期的数据进行json转换出的问题话不多说 直接上代码
&n
Ehcache(06)——监听器
234390216
监听器 listener ehcache
监听器
Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。
activiti 自带设计器中chrome 34版本不能打开bug的解决
jackyrong
Activiti
在acitivti modeler中,如果是chrome 34,则不能打开该设计器,其他浏览器可以,
经证实为bug,参考
http://forums.activiti.org/content/activiti-modeler-doesnt-work-chrome-v34
修改为,找到
oryx.debug.js
在最头部增加
if (!Document.
微信收货地址共享接口-终极解决
laotu5i0
微信开发
最近要接入微信的收货地址共享接口,总是不成功,折腾了好几天,实在没办法网上搜到的帖子也是骂声一片。我把我碰到并解决问题的过程分享出来,希望能给微信的接口文档起到一个辅助作用,让后面进来的开发者能快速的接入,而不需要像我们一样苦逼的浪费好几天,甚至一周的青春。各种羞辱、谩骂的话就不说了,本人还算文明。
如果你能搜到本贴,说明你已经碰到了各种 ed
关于人才
netkiller.github.com
工作 面试 招聘 netkiller 人才
关于人才
每个月我都会接到许多猎头的电话,有些猎头比较专业,但绝大多数在我看来与猎头二字还是有很大差距的。 与猎头接触多了,自然也了解了他们的工作,包括操作手法,总体上国内的猎头行业还处在初级阶段。
总结就是“盲目推荐,以量取胜”。
目前现状
许多从事人力资源工作的人,根本不懂得怎么找人才。处在人才找不到企业,企业找不到人才的尴尬处境。
企业招聘,通常是需要用人的部门提出招聘条件,由人
搭建 CentOS 6 服务器 - 目录
rensanning
centos
(1) 安装CentOS
ISO(desktop/minimal)、Cloud(AWS/阿里云)、Virtualization(VMWare、VirtualBox)
详细内容
(2) Linux常用命令
cd、ls、rm、chmod......
详细内容
(3) 初始环境设置
用户管理、网络设置、安全设置......
详细内容
(4) 常驻服务Daemon
【求助】mongoDB无法更新主键
toknowme
mongodb
Query query = new Query(); query.addCriteria(new Criteria("_id").is(o.getId())); &n
jquery 页面滚动到底部自动加载插件集合
xp9802
jquery
很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容。下面为你推荐 10 个 jQuery 的无限滚动的插件:
1. jQuery ScrollPagination
jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件。
2. jQuery Screw
S