标签定义)。 字母td指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。 三个元素必须一起使用,否则无法定义表格。
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
head>
< body>
< table border = " 3" >
< section> 乘法表 section>
< th> 1 th>
< th> 2 th>
< th> 3 th>
< tr>
< td> 1*1=1 td>
< td> td>
< td> td>
tr>
< tr>
< td> 1*2=2 td>
< td> 2*2=4 td>
< td> td>
tr>
< tr>
< td> 1*3=3 td>
< td> 2*3=6 td>
< td> 3*3=9 td>
tr>
table>
body>
html>
运行结果如下: section为表格的标题,th可以看做td的加粗形式,tr为行标识,td为表格内容。在td标签中还有bgcolor属性和align属性。
1.1.4 表单(重点)
HTML表单用于搜集不同类型的用户输入。最常见最典型的表单即注册页面。 表单是一个包含表单元素的区域。 表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素。 表单使用表单标签(
)定义。 基本格式如下 :
< FORM Action = " url" Method = " *" >
< input> input>
FORM>
表单的三个要点 表单控件(Form Controls) 动作属性(Action) 方法属性(Method)
表单控件(Form Controls) 通过HTML表单的各种控件,用户可以输入文字信息,或者从选项中选择,以及做提交的操作。 from标签中有input标签、select标签和textarea标签。
form标签中有action属性和method属性。 action属性 当用户单击确认按钮(即提交表单)时,表单的内容会被传送到另一个文件。表单的动作属性定义了目的文件的文件名。由动作属性指向的这个文件通常会对接收到的输入数据进行相关的处理。 method属性 method属性告诉浏览器如何将编码后的数据发给服务器。其值为get或者post。 get属性值,浏览器会将数据直接附在表单的 action url之后。这两者之间用问号进行分隔 post属性值,直接连接服务器,然后将html表单中的值发送给web服务器。这种方式是没有字符长度限制的。
< form action = " " method = " get" > form>
action属性作用是提交表单之后跳转的页面,可以是项目内部的页面,也可以是外部链接;method属性为提交方式,get属性值在提交之后表单的属性值会显示在地址栏,地址后先接?,然后接各个控件的值,如下图:
而post属性值则不会。
input标签有name属性和value属性,根据tpye属性还可以有checked属性,checked作用是默认选项。 input标签中type属性可分为几个属性值:
< input tpye = " text" >
< input tpye = " password" >
< input tpye = " radio" >
< input tpye = " checkbox" >
< input tpye = " button" >
< input tpye = " reset" >
< input tpye = " submit" >
例子如下:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
head>
< body>
< form action = " " method = " get" >
用户名< input type = " text" name = " userame" maxlength = " 20" size = " 10px" > < br>
密 码< input type = " password" maxlength = " 20" size = " 10px" > < br>
性别 < input type = " radio" name = " sex" value = " man" checked > 男
< input type = " radio" name = " sex" value = " woman" > 女< br>
选择你喜欢的动漫是:< br>
< input type = " checkbox" name = " cb01" value = " 1" > 海贼王
< input type = " checkbox" name = " cb02" value = " 2" > 火影
< input type = " checkbox" name = " cb03" value = " 3" > 死神
< input type = " checkbox" name = " cb04" value = " 4" > 刃牙< br>
选择你喜欢的食物:
< select name = " sel" >
< option value = " miketea" > 奶茶 option>
< option value = " chocolate" > 巧克力 option>
< option value = " cake" selected > 蛋糕 option>
select>
< br>
大声说出你的想法: < br>
< textarea name = " text" id = " teext1" cols = " 30" rows = " 20" > textarea> < br>
< input type = " button" name = " but" value = " 普通按钮" >
< input type = " reset" name = " resetbutton" value = " 重置按钮" >
< input type = " submit" name = " sub" value = " 提交按钮" >
form>
body>
html>
分析: input标签中的type属性的属性值为text时,maxlength属性为文本框最多输入的数字的容量。 在input标签中添加checked属性,将该选项设置为默认选项。 想要实现单选的效果,第一,type属性的属性值为radio;第二,各个选项的name属性的属性值必须保持一致 。 相反,想要实现复选的效果,第一,tyoe属性的属性为checkbox,各个选项的name属性的属性值必须不一致。 select标签表示下拉框,在select标签中的option标签中添加selected属性,表示默认选项,若选择中没有添加selected属性,则第一个为默认选项。 textarea标签表示文本域,其中的cols属性控制列,rows控制行。
表单小结
拓展 HTML5表单新的input标签的属性值 color 用于选取颜色 date选择一个日期 datetime-local选择一个日期和时间(无时区) email包含e-mail地址的输入域 month选择一个月份 number包含数值的输入域 time选择一个时间 url包含URL地址的输入域,在提交表单时,会自动验证url域的值 week选择周
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> type新属性值 title>
head>
< body>
< form action = " success.html" method = " get" >
选取颜色:< input type = " color" > < br> < br>
日期: < input type = " date" > < br> < br>
日期: < input type = " datetime-local" > < br> < br>
时间: < input type = " time" > < br> < br>
周: < input type = " week" > < br> < br>
月: < input type = " month" > < br> < br>
输入数字: < input type = " number" max = " 20" min = " 0" step = " 2" value = " 2" > < br> < br>
邮件: < input type = " email" > < br> < br>
地址: < input type = " url" > < br> < br>
< input type = " submit" name = " sub" value = " 提交" >
form>
body>
html>
运行并填入数据,效果如下图: number属性值还有其他的属性。max规定的最大值,min规定的最小值,step规定的步长,value规定默认值。
HTML小结
HTML常用基本标签分为有块元素和行内元素。 表单使用表单标签(
)定义。form标签有两个重要属性action属性和method属性,action属性作用是当用户单击确认按钮(即提交表单)时,表单的内容会被传送到另一个文件。method属性告诉浏览器如何将编码后的数据发给服务器。其值为get或者post。表单中用input标签设置文本框、密码框、单选框和复选框,用select标签设置下拉框,用textarea标签设置文本域。 HTML5表单新的input标签的属性值。是关于颜色、日期、时间、邮箱和url的属性值。
2 CSS样式表
CSS就是层叠样式表,网页实际上是一个多层的结构,通过CSS可以分别为网页的每一个层来设置样式,而最终我们能看到只是网页的最上边一层。总之,CSS用来设置网页中元素的样式。
CSS样式表的基本结构
< style type = " text/css" >
选择器 {
属性1 : 属性值;
属性2 : 属性值;
属性3 : 属性值;
……
}
style>
2.1 三种格式修改样式
CSS有3种格式修改元素的样式:行内修改样式、内部样式表和外部样式表。
2.1.1 行内样式(尽量不用)
如下例子:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
head>
< body>
< p style = " color : red; font-size : 20px; " > 今天天气很好 p>
body>
html>
在标签内部通过style属性来设置元素的样式。 缺点:使用内联样式,样式只能对一个标签生效。如果希望影响多个元素必须在每一个元素都要复制一遍,并且当样式发生变化时,我们必须要一个一个的修改,非常不方便,所以在开发时绝对不要使用内联样式!
2.1.2 内部样式
将样式编写到head中的style标签里,然后通过CSS选择器来选中元素并为其设置各种样式,可以同时为多个标签设置样式,并且修改时只需要修改一处即可。内部样式表更加方便对样式进行复用。 缺点:内部样式表只能对一个网页起作用 ,它里边的样式不能跨页面进行复用。 如下例子:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< style type = " text/css" >
p {
color : red;
font-size : 20px;
}
style>
head>
< body>
< p> 今天天气很好 p>
body>
html>
2.1.3 外部样式(最佳办法)
可以将CSS样式编写到一个外部的CSS文件中,然后通过link标签来引入外部的文件。 外部样式表需要通过link标签进行引入,意味着只要想使用这些样式都可以对其进行引用,样式就可以在不同的网页之间进行复用。 将样式编写到外部的CSS文件中,可以使用到浏览器的缓冲机制,从而加快网页的加载速度。 首先,新建css文件,如下图: 然后,在网页中用link标签将网页和CSS文件关联起来,
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< link rel = " stylesheet" href = " ./css/CSS外部样式表.css" >
head>
< body>
< p> 今天天气很好 p>
body>
html>
运行结果如下: 此外,还可以使用import关键字导入CSS样式表,比较少用,例子如下:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< style type = " text/css" ; >
@import "css/CSS外部样式表.css" ;
style>
head>
< body>
< p> 今天天气很好 p>
body>
html>
结论:在html文件写结构,在CSS文件写样式,在html用link标签将CSS样式表引入。或者通过import导入CSS样式表。
2.2 常见的选择器
常见的选择器有元素选择器,class选择器,id选择器,类选择器,通配选择器,伪类选择器。
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< style type = " text/css" >
ins {
color : red;
font-size : 20px;
}
.underline {
color : blue;
}
style>
head>
< body>
< ins class = " underline" > 今天心情很好 ins>
body>
html>
运行结果如下:
结论:class选择器的优先级大于标签选择器的优先级。class选择器样式用“.”来引用。
2.3 常见的背景样式属性
backgroud-color属性。设置背景颜色。 backgroud-image属性。设置背景图像。url值填入照片的路径。 backgroud-repeat属性。repeat-x属性值图片向左右重叠,repeat-y属性值图片向上下重叠,no-repeat属性值图片不重叠,保持照片原始大小。repeat属性值照片重复重叠。
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< style type = " text/css" >
body {
background-image : url ( picture/1.png) ;
background-repeat : repeat-x;
}
style>
head>
< body>
body>
html>
运行效果如下:
CSS样式表小结
CSS样式表有三种修改样式方法:行内样式、内部样式和外部样式。 常见的选择器有:元素选择器,class选择器,id选择器,类选择器,通配选择器,伪类选择器。 常见的背景样式属性有:backgroud-color属性、backgroud-image属性和backgroud-repeat属性。
3 JavaScript
基本语法是:在网页中写JavaScript代码、JavaScript的语法与关键字、JavaScript的数据类型、变量的定义与使用和运算符的应用。
3.1 JavaScript基本概念
JavaScript 是属于HTML 和Web的编程语言。
3.1.1 什么是JavaScript?
JavaScript诞生于1995年。它当时的目的是为了验证表单输入的验证 。因为在JavaScript问世之前,表单的验证都是通过服务器端验证的。而当时都是电话拨号上网的年代,服务器验证数据是一件非常痛苦的事情。经过许多年的发展,JavaScript 从一个简单的输入验证成为一门强大的编程语言。
JavaScript是一种具有面向对象能力的、解释型的程序设计语言。 更具体一点,它是基于对象 和事件驱动 并具有相对安全性的客户端脚本语言 。因为他不需要在一个语言环境下运行,而只需要支持它的浏览器即可。它的主要目的是,验证发往服务器端的数据、增加Web互动、加强用户体验度等。 基于对象:提供好了很多对象,可以直接拿过来使用。 事件驱动:html做网站静态效果,javaScript实现动态效果。 客户端:专门指的是浏览器。 JS的作用:操作HTML和CSS。
3.1.2 JavaScript特点
松散型:JavaScript语言核心与C、C++、Java相似,比如条件判断、循环、运算符等。但,它却是一种松散类型的语言,也就是说,它的变量不必具有一个明确的类型。 解释型:不需要编译。浏览器直接解释执行。 基于对象:我们可以直接使用JS已经创建的对象。Math String 安全性:不允许访问本地硬盘,不能将数据写入到服务器上。 跨平台:js依赖于浏览器本身,与操作系统无关。
3.1.3 js和java的区别
JavaScript和Java没有任何关系,属于两门编程语言。 开发公司 Java是sun公司开发的,现在是oracle公司。 JS是Netscape(网景公司)公司开发的 对象 Java是面向对象的 new JS是基于对象的 数据类型 Java是强类型语言(每种变量都有确定的数据类型)例如:int i = “10” JS是弱类型语言【变量的类型由值决定】例如:vari = 10,varj = “10” 执行过程 Java需要现编译成字节码文件,然后再执行 JS只需解析就可以执行
3.1.4 JavaScript核心
一个完整的JavaScript应该由下列三个不同的部分组成。 1 核心(ECMAScript) ECMA:欧洲计算机协会,由ECMA组织制定的js语法,语句,函数等 2 文档对象模型(DOM) Document Object Model:文档对象模型 3 浏览器对象模型(BOM) Broswer Object Model:浏览器对象模型
3.2 JavaScript基础语法
JavaScript 语法是一套规则,它定义了 JavaScript 的语言结构。
3.2.1 如何在网页中写JavaScript(重点)
方法1 在html页面中直接嵌入JavaScript
< script>
js程序
script>
js代码可以插入在
标签中间,也可以放在
标签中间。 最常用的是放在
。
例子:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< script>
alert ( "hello,world01~" ) ;
script>
head>
< body>
< script>
alert ( "hello,world02~" ) ;
script>
body>
html>
运行结果如下: 点击确定,
结论:如果同时在head标签和body标签写JS,则会先运行head标签里面的JS,然后再运行body标签里面的JS。
方法2 引用外部的JavaScript(最常用的方法)
首先,新建.js文件,在.js文件中,不需要
标签对括起来,例子如下:
然后在html文件中链接js文件,使用如下语法:
< script src = " .js文件路径" > script>
具体例子如下:
运行结果如下:
此方法优点是js文件可以被很多页面使用,提高复用率。
分析下列代码:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< script src = " js/js01.js" >
alert ( "test" ) ;
script>
head>
< body>
body>
html>
问题:会不会弹出test文字提示框? 答:不会。当一个script标签一旦引用了外部的js文件,如果在这个标签还有js代码,是不会执行的。
分析下列代码:
DOCTYPE html >
< html lang = " cn" >
< head>
< meta charset = " UTF-8" >
< title> Document title>
< script src = " js/js01.js" >
script>
< script>
alert ( "今天天气很好" ) ;
script>
head>
< body>
< script>
alert ( "今天心情很好" ) ;
script>
body>
html>
问题:会弹出什么提示框? 答:首先执行外部链接的script语句,弹出“hello,world~”提示框。然后执行head标签的script语句,弹出“今天天气很好”提示框。最后执行body标签的script语句,弹出“今天心情很好”提示框。
3.2.2 JavaScript语法(重点)
1 js变量区分大小写。 2 每一行的分号可有可无。 3 标识符 所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是下列格式规则组合起来的一或多个字符: 第一字符必须是一个字母、下划线或一个美元符号($)。 其他字符可以是字母、下划线、美元符号或数字。 不能把关键字、保留字、true、false和null作为标识符。 例如: myname,book123_,_123,$123都是合法的标识符。 123,true,null,@123,abc!都不是合法的标识符。 4 注释 单行注释
多行注释
注释的内容在代码执行过程中不起作用。 5 定义变量时,使用var运算符。声明变量的格式:var 变量名=值;
比如: var username=“tom”; 正确 var age=30; 正确
6 使用大括号标签代码块 {}被封装在大括号内的语句按照顺序执行。
{
语句块1 ;
语句块2 ;
语句块3 ;
}
7 JavaScript中的关键字 关键字不能用作变量名。函数名以及循环标签。 关键字有如下:
abstract continue finally instanceof private this boolean default float
int public throw break do for interface return typeof byte double function
long short true case else goto native static var
catch extends implements new super void char false import null
switch while class final in package with synchronized
3.2.3 JavaScript的数据类型
(1)数值型有整型和浮点型 整型
123
0123
0x123
浮点型 整数部分假小数部分组成,只能用十进制表示,不过可以使用科学记数法。
3.1415926
3.14E9
如下例子:
var x= 123 ;
var y= 123.4567 ;
var z= 3.14E2 ;
(2)字符串型 字符串型数据是使用单引号或者双引号括起来的一个或者多个字符。
'a' 'Hello World'
"a" "Hello World"
JavaScript与Java不一样,js没有char数据类型,如果要表示单个字符,必须使用长度为1的字符串。 单引号包含双引号:'大家好,我叫"tom""
双引号包含单引号:"大家好,我叫'tom'"
如下例子:
var a= "test" ;
var b= 'testing' ;
(3)布尔型 布尔型数据只有true或者false。在js中也可以使用整数0代表false,使用非0的整 数来代表true。
var m= true ;
var bor= false ;
var ye= 7 > 1 ;
(4)转义字符 以反斜杠开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符。
\b
\n
\t
\r
\'
\"
\\
js文件如下:
alert ( "hello,world~\n ab\tc\n a\rbc\n a\'b\"c\\" ) ;
运行效果如下图: (5)空值 null,用于定义空的或者不存在的引用。
var a= null ;
(6)未定义值 已经声明但是没有赋值的的变量。
var a;
alert ( a) ;
注: 查看一个数据类型的格式
typeof ( 变量名)
type 变量名
var n= "大家好,我是‘叶大叔’" ;
var m= true ;
alert ( typeof ( n) ) ;
alert ( typeof m) ;
运行效果如下图:
3.2.4 变量的定义与使用
(1)变量的命名规则 与标识符规则一致!因为变量是标识符的一种。 (2)变量的声明
var variable;
可以使用一个var声明多个变量,比如
var a, b, c, d;
可以在声明变量的同时对它进行赋值,也就是初始化。
var a= 1 , b= true , c= "123" , d= 3.14 ;
如果只是声明了变量,没有赋值,那么该变量的默认值是undefined。 JavaScript是弱类型,声明的时候不需要指定变量的类型,变量的类型将根据变量的值来确定。
函数就是方法,为了解决问题。也可以称为功能。
function 函数名 ( ) {
函数体;
}
(3)全局变量的声明 在函数体外声明的都是全局变量。 在函数体内部不使用var声明直接赋值的变量是全局变量。??自己验证时出错,在函数内定义全局变量,无法引用该全局变量。
(4)变量的作用域 变量的作用域是指变量在程序中的有效范围。 全局变量:定义在所有函数之外,作用于整个代码的变量。 局部变量:定义在函数体内,只作用于函数体内的变量。
3.2.5 赋值运算符
var suername= "Bass" ;
a+= b;
a-= b;
a*= b;
a/= b;
a%= b;
a&= b;
a|= b;
a^= b;
& | ^ 计算两个布尔值 ( true , false )
& 一假全为假
| 一真全为真
^ 不相同为真,相同为假
&,例子如下:
var a= true ;
var b= false ;
alert ( a& b) ;
运行结果如下: 结果是false,0表示false。 |,例子如下:
var a= true ;
var b= false ;
alert ( a| b) ;
结果是true,1表示true。
^,例子如下:
var a= true ;
var b= false ;
alert ( a^ b) ;
结果是true,1表示true。
此外还有自增和自减。
i= 1 ; j= ++ i;
i= 1 ; j= i++ ;
i= 10 ; j= -- i;
i= 10 ; j= i-- ;
3.3 JavaScript流程控制
JavaScript流程控制有if语句、switch语句、for语句、while语句和do-while语句。
3.3.1 if语句
if ( 表达式) {
}
if ( 表达式) {
} else {
}
if ( 表达式1 ) {
} else if ( 表达式2 ) {
} else if ( 表达式3 ) {
} else {
}
例子如下:
var a= 20 ;
if ( a< 50 ) {
alert ( "条件成立" ) ;
}
var a= 200 ;
if ( a< 50 ) {
alert ( "条件成立" ) ;
} else {
alert ( "条件不成立" ) ;
}
3.3.2 switch语句
switch语句的语法结构
switch ( 表达式) {
case 1 : 语句块1 ; break ;
case 2 : 语句块2 ; break ;
case 3 : 语句块3 ; break ;
……
default : 语句块n;
}
break作用强制退出流程。 例子如下:
var day= "5" ;
switch ( day) {
case "1" : alert ( "星期一" ) ; break ;
case "2" : alert ( "星期二" ) ; break ;
case "3" : alert ( "星期三" ) ; break ;
case "4" : alert ( "星期四" ) ; break ;
case "5" : alert ( "星期五" ) ; break ;
case "6" : alert ( "星期六" ) ; break ;
case "7" : alert ( "星期日" ) ; break ;
default : alert ( "请输入合法数据" ) ;
}
结果会弹出“星期五”的提示框。 如果改写上述例子,删除一些break,如下:
var day= "5" ;
switch ( day) {
case "1" : alert ( "星期一" ) ; break ;
case "2" : alert ( "星期二" ) ; break ;
case "3" : alert ( "星期三" ) ; break ;
case "4" : alert ( "星期四" ) ; break ;
case "5" : alert ( "星期五" ) ;
case "6" : alert ( "星期六" ) ;
case "7" : alert ( "星期日" ) ;
default : alert ( "请输入合法数据" ) ;
}
会弹出“星期五”、“星期六”、“星期日”和“请输入合法数据”的提示框。如果字啊语句块后面没有break语句,switch则会一直执行下去。
3.3.3 for语句
语法格式: for(①initialize;②test;④increment){ ③statement } ①->②(true)->③->④->②(true)->③->④->… ①->②(true)->③->④->②(false) for循环结束 例子如下:
var sum= 0 ;
for ( var i= 1 ; i<= 10 ; i++ ) {
sum= sum+ i;
}
alert ( "1-10的整数和为" + sum) ;
3.3.4 while语句
语法格式:while(①expression){ ②statement } ①(true)->②->①(true)->②…①(false)直接退出while循环。
var sum= 0 ;
var i= 1 ;
while ( i<= 10 ) {
sum= sum+ i;
i++ ;
}
alert ( "1-10的整数和为" + sum) ;
3.3.5 do-while语句
语法格式:do{ ①statement }while(②expression);
var sum= 0 ;
var i= 1 ;
do {
sum= sum+ i;
i++ ;
} while ( i<= 10 ) ;
alert ( "1-10的整数和为" + sum) ;
while循环是先判断条件是否成立,然后再根据判断的结果是否执行循环体。也就是说循环体有可能一次都执行不了。 do-while循环是先执行一次循环体,然后再判断条件是否成立。所以不管条件是否成立,至少能够执行一次。
3.4 函数
函数就是方法,解决某个问题,实现某个功能。
3.4.1 函数的定义
function 函数名字([参数1,参数2,参数3,……]){ 函数体; [return 返回值;] } 注:[ ]为可选项。 例如:定义两数相乘的函数,如下:
function multiplication ( x, y ) {
var result= x* y;
return result;
}
3.4.2 函数的调用
格式:函数名 (实参); 例如:调用multiplication函数,实参为3,4,如下:
var a= multiplication ( 3 , 4 ) ;
alert ( "相乘结果为" + a) ;
运行结果如下:
3.4.3 匿名函数
作用:用一个变量来接收函数。 格式: var 变量名=function([参数1,参数2,参数3,……]){ 函数体; [return 返回值;] }
匿名函数例子,如下:
var a = function ( x, y ) {
var z= x+ y;
alert ( "z的值为" + z) ;
}
a ( 3 , 3 ) ;
运行结果如下:
3.4.4 全局函数
全局函数不属于任何一个对象,直接写名称使用即可。 (1)encodeURI函数 作用:对字符进行编码
var str= "测试testing123!"
var encode01= encodeURI ( str) ;
document. write ( encode01) ;
运行效果如下图: 所以,“测试”的编码为%E6%B5%8B%E8%AF%95。
(2)decodeURI函数 作用:对字符进行解码
var str= "%E6%B5%8B%E8%AF%95" ;
var decode01= decodeURI ( str) ;
document. write ( decode01) ;
运行效果如下图: 所以,%E6%B5%8B%E8%AF%95解码为“测试”。
(3)encodeURIComponent函数 作用:对URI组件进行编码。
var uri = "https://w3school.com.cn/my test.asp?name=ståle&car=saab" ;
var res = encodeURIComponent ( uri) ;
alert ( res) ;
(4)decodeURIComponent函数 作用:解码 URI 组件。 语法:decodeURIComponent(uri) uri参数为必须参数,为要解码的URI。 返回值:字符串,表示解码后的 URI。
var uri= "https%3A%2F%2Fw3school.com.cn%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab" ;
var rui_dec= decodeURIComponent ( uri) ;
alert ( rui_dec) ;
该结果就是上题的uri。
(5)eval函数 作用:识别字符串中的js代码
var str= "alert('123')" ;
eval ( str) ;
document. write ( " " ) ;
运行效果如下图:
(6)isFinite函数 作用:可确定数字是否是有限的合法数字。 如果值为 +infinity、-infinity 或 NaN(非数字),则此函数返回 false,否则返回 true。 返回值为布尔值。如果值为 +infinity、-infinity 或 NaN,则返回 false,否则返回 true。 注: JavaScript 全局属性
属性
描述
Infinity
表示正/负无穷大的数值
NaN
“非数字”(Not-aNumber)
undefined
表示变量尚未赋值
alert ( isFinite ( 123 ) ) ;
上述代码运行结果返回true,因为123是合法数字。如果输入NaN,NaN为非法字符,则返回false。
(7)isNaN函数 作用:确定值是否为非数字(Not-a-Number) 不是数字返回true,是数字返回false
var str= '123' ;
alert ( isNaN ( str) ) ;
上述代码运行结果返回为false。
(8)Number函数 作用:函数将对象参数转换为表示对象值的数字。
语法:Number(object) object 可选。JavaScript 对象。如果未提供该参数,则返回 0。
返回值:数值。将不同的对象值返回为数字。 如果该值无法转换为合法数字,则返回 NaN。如果未提供参数,则返回 0。 如果参数是 Date 对象,则 Number() 函数返回自 UTC 1970 年 1 月 1 日午夜以来的毫秒数。
alert ( Number ( true ) ) ;
上述代码运行结果返回为1。
alert ( Number ( false ) ) ;
上述代运行码结果返回为0。
var x = new Date ( ) ;
alert ( Number ( x) ) ;
上述代码运行结果返回自 UTC 1970 年 1 月 1 日午夜以来的毫秒数。
alert ( Number ( "999" ) )
上述代码运行结果返回999数值。
alert ( Number ( "999 888" ) ) ;
上述代码运行结果返回NaN,999 888无法转换为合法数字。
alert ( Number ( ) ) ;
上述代码运行结果返回0,未提供参数,则返回 0。
(9)parseFloat函数 作用:解析字符串并返回浮点数。 此函数确定指定字符串中的第一个字符是否为数字。如果是,它会解析字符串直到到达数字的末尾,并将数字作为数字而不是字符串返回 。 注意: 只返回字符串中的第一个数字! 允许前导和尾随空格。 如果第一个字符不能转换为数字,parseFloat() 返回 NaN。
alert ( parseFloat ( "10" ) ) ;
上述代码运行结果返回数值10。
alert ( parseFloat ( "10.00" ) ) ;
上述代码运行结果返回数值10。若小数后为0,则省略小数位。
alert ( parseFloat ( "34 56 78" ) ) ;
上述代码运行结果返回数值34。parseFloat函数只返回字符串中的第一个数字,即34。
alert ( parseFloat ( " 60 " ) ) ;
上述代码运行结果返回数值60,parseFloat函数允许前导和尾随空格。
alert ( parseFloat ( "40 years" ) ) ;
上述代码运行结果返回数值40,parseFloat函数解析字符串直到到达数字的末尾,years不是数字,所以不能返回。
alert ( parseFloat ( "hello" ) ) ;
上述代码运行结果返回数值NaN,第一个字符不能转换为数字,parseFloat() 返回 NaN。
(10)parselnt函数 作用:函数解析字符串并返回整数。 parseInt(string,radix) string 必需。要解析的字符串。如果第一个字符不能转换为数字,parseInt() 返回 NaN。 radix 可选参数。代表要使用的数字系统的数字(从 2 到 36)。 如果 radix 参数被省略,JavaScript 假定如下: 如果字符串以 “0x” 开头,则基数为 16(十六进制) 如果字符串以 “0” 开头,则基数为 8(八进制)。此特性已弃用 如果字符串以任何其他值开头,则基数为 10(十进制) 返回值: 数值。如果第一个字符不能转换为数字,则返回 NaN。 注意:只返回字符串中的第一个数字!
var a= parseInt ( "10" ) ;
alert ( a) ;
上述代码运行结果为10,说明parselnt函数函数解析字符串并返回整数。
var a= parseInt ( "hello" ) ;
alert ( a) ;
上述代码运行结果为返回值为NaN,第一个字符不能转换为数字,parselnt函数返回 NaN。
var a = parseInt ( "3 4 45 66" ) ;
alert ( a) ;
上述代码运行结果为3,说明只返回字符串中的第一个数字。
(11)String函数 作用:将对象的值转换为字符串。 注释:String() 函数返回与单个对象的 toString() 相同的值。 语法:String(object) object 必需。JavaScript 对象。
var x1 = Boolean ( 0 ) ;
var res = String ( x1) ;
alert ( res) ;
上述代码就行结果返回false。String函数将x1的值转为为字符串false。
var x2 = Boolean ( 1 ) ;
var res = String ( x2) ;
alert ( res) ;
上述代码就行结果返回true。String函数将x2的值转为为字符串true。
var x3 = new Date ( ) ;
var res = String ( x3) ;
alert ( res) ;
上述代码就行结果返回Fri Apr 01 2022 21:31:26 GMT+0800 (中国标准时间)。
var x4 = "12345" ;
var res = String ( x4) ;
alert ( res) ;
上述代码就行结果返回字符串12345。
var x5 = 12345 ;
var res = String ( x5) ;
alert ( res) ;
上述代码就行结果返回字符串12345,String函数将整型12345转换为字符串12345。
3.5 事件
当在 HTML 页面中使用 JavaScript 时,JavaScript 能够“应对”这些事件。
3.5.1 常见的事件
事件
描述
onabort
对象载入被中断时触发
onablur
元素或窗口本身失去焦点时触发
onchange
改变
元素中的选项或其他表单元素失去焦点,并且在其获取焦点后内容发生过改变时触发
onerror
出现错误时触发
onfocus
任何元素或窗口本身获得焦点时触发
onkeydown
键盘键(包括Shift、Alt等)被按下时触发
onkeypress
键盘被按下,并生成一个字符时触发。也就是说按下Shift或Alt等键不会触发
onkeyup
释放键盘上的按键时触发
onload
页面完全载入后触发
onclick
页面完全卸载后触发
onclick
单击鼠标邮件时触发。当光标的焦点在按钮上,并按Enter键是也会触发
ondblclick
双击鼠标左键时触发
onmousedown
单击任何一个鼠标按键时触发
onmousemove
鼠标在某个元素上移动时持续触发
onmouseout
鼠标从指定的元素上移开时触发
onmouseover
鼠标移动到某个元素时触发
onmouseup
释放任意一个鼠标按键时触发
onrest
单击充值按钮时,在
上触发
onresize
窗口或框架的大小发生改变时触发
onscroll
在任何带滚动条的元素或窗口上滚动时触发
onselect
选中文本时触发
onsubmit
单击提交按钮时,在
上触发
3.5.2 事件处理
时间出程序是用于响应某个时间而执行的处理程序。时间处理程序可以是任意的JavaScript语句,通常使用函数来对事件进行处理 。 第一种方式,事件处理在html中绑定:
< ! DOCTYPE html>
< html lang= "cn" >
< head>
< meta charset= "UTF-8" >
< title> 事件< / title>
< script>
function save ( ) {
alert ( "按钮被点击" ) ;
}
function fun ( ) {
alert ( "双击左键成功!" ) ;
}
< / script>
< / head>
< body>
< input type= "button" value= "按钮1" onclick= "save()" >
< input type= "button" value= "按钮2" ondblclick= "fun()" >
< / body>
< / html>
上述代码运行结果为:页面有两个按钮,一个按钮1,一个按钮2。鼠标左键单击按钮1,弹出“按钮被点击”窗口。鼠标左键双击按钮2,弹出“双击左键成功!”窗口。
第二种方式,事件处理在JavaScript中绑定:
< ! DOCTYPE html>
< html lang= "cn" >
< head>
< meta charset= "UTF-8" >
< title> Document< / title>
< / head>
< body>
< form>
< input type= "button" value= "按钮" id= "btn" >
< / form>
< script>
var temp= document. getElementById ( "btn" ) ;
temp. onclick = function ( ) {
alert ( "点击成功!" ) ;
}
< / script>
< / body>
< / html>
上述代码运行结果为:点击按钮,弹出“点击成功!”的提示框。
3.6 正则表达式
定义 正则表达式是构成搜索模式的字符序列。该搜索模式可用于文本搜索和文本替换操作。 当搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。 正则表达式可以是单字符,或者更复杂的模式。 正则表达式可用于执行所有类型的文本搜索 和文本替换 操作。
语法
/ pattern/ modifiers;
例子
var patt = / hello / i ;
例子解释: /hello/i 是一个正则表达式。 hello是模式(pattern)(在搜索中使用)。 i 是修饰符(把搜索修改为大小写不敏感)。
在字符串方法search() 中使用正则表达式
var str = "hello" ;
var n = str. search ( / o / i ) ;
n 中的结果将是:4
在字符串方法replace() 中使用正则表达式 例子 使用大小写不明的正则表达式以hello来替换字符串中的Bass:
var str = "Visit Bass" ;
var res = str. replace ( / hello / i , "Bass" ) ;
res 的结果将是:
Visit hello
正则表达式修饰符 修饰符可用于大小写不敏感的更全局的搜素:
修饰符
描述
i
执行对大小写不敏感的匹配
g
执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m
执行多行匹配
正则表达式模式 括号用于查找一定范围的字符串:
表达式
描述
[abc]
[0-9]
`(x
y)`
元字符(Metacharacter)是拥有特殊含义的字符:
元字符
描述
\d
查找数字
\s
查找空白字符
\b
匹配单词边界
\uxxxx
查找以十六进制数 xxxx 规定的 Unicode 字符
定义量词:
量词
描述
n+
匹配任何包含至少一个 n 的字符串
n*
匹配任何包含零个或多个 n 的字符串
n?
匹配任何包含零个或一个 n 的字符串
使用 test() test() 是一个正则表达式方法。 它通过模式来搜索字符串,然后根据结果返回 true 或 false。
例子
var patt = / e / ;
patt. test ( "The best things in life are free!" ) ;
由于字符串中有一个 “e”,以上代码的输出将是:
true
上面的两行可缩短为一行:
/ e / . test ( "The best things in life are free!" ) ;
使用 exec() exec()方法返回值不是true或者false。而是当没有搜索到匹配的字符时,返回null,否则返回一个数组 ,这个数组的第一个元素包含与正则表达式相匹配的字符串,其他元素包含的是匹配的各个分组 (用括号括起来的子表达式)。
例子
/ e / . exec ( "The best things in life are free!" ) ;
由于字符串中有一个 “e”,以上代码的输出将是:
e
身份证例子
< ! DOCTYPE html>
< html lang= "cn" >
< head>
< meta charset= "UTF-8" >
< title> Document< / title>
< / head>
< body>
< form name= "f" >
身份证:< input type= "text" name= "id" size= "20" >
< input type= "button" value= "提取" onclick= "grep()" >
< / form>
< script>
function grep ( ) {
var id_value= f. id. value;
var pattern= / (\d{6})(\d{8})(\d{4}) / ;
var judge= pattern. exec ( id_value) ;
if ( judge!= null ) {
alert ( "出生日期" + judge[ 2 ] ) ;
} else {
alert ( "请输入合法的身份证" ) ;
}
}
< / script>
< / body>
< / html>
将上述代码运行,在页面上的身份证文本框输入“441222199712121234”,弹出“出生日期19971212”提示框。
3.7 Cookies
Cookie 让您在网页中存储用户信息。 Cookie 是在您的计算机上存储在小的文本文件中的数据。 当 web 服务器向浏览器发送网页后,连接被关闭,服务器会忘记用户的一切。 Cookie 是为了解决“如何记住用户信息”而发明的: 当用户访问网页时,他的名字可以存储在 cookie 中。 下次用户访问该页面时,cookie 会“记住”他的名字。
Cookie 保存在名称值对 中,如:
username= bass
当浏览器从服务器请求一个网页时,将属于该页的 cookie 添加到该请求中。这样服务器就获得了必要的数据来“记住”用户的信息。
如果浏览器已关闭本地 cookie 支持,则以下实例均无法工作。
3.7.1 创建cookie
JavaScript 可以用 document.cookie 属性创建、读取、删除 cookie。 通过 JavaScript,可以这样创建 cookie:
doucument. cookie= "username=bass" ;
还可以添加有效日期(UTC 时间)。默认情况下,在浏览器关闭时会删除 cookie:
document. cookie = "username=bass; expires=Sat Apr 02 2022 22:32:29 UTC" ;
通过 path 参数,您可以告诉浏览器 cookie 属于什么路径。默认情况下,cookie 属于当前页。
document. cookie = "username=bass; expires=Sat Apr 02 2022 22:32:29 UTC" ; path= / ";
3.7.2 读取 cookie
通过 JavaScript,可以这样读取 cookie:
var x = document. cookie;
3.7.3 改变 cookie
通过使用 JavaScript,你可以像你创建 cookie 一样改变它:
document. cookie = "username=bass; expires=Sat Apr 02 1970 22:32:29 UTC" ; path= / ";
旧 cookie 被覆盖。
3.7.4 删除 cookie
删除 cookie 时不必指定 cookie 值。 直接把 expires 参数设置为过去的日期即可:
document. cookie = "username=bass; expires=Sat Apr 02 2022 22:32:29 UTC" ; path= / ";
您应该定义 cookie 路径以确保删除正确的 cookie。 如果你不指定路径,一些浏览器不会让你删除 cookie。
3.7.5 cookie 字符串
document.cookie 属性看起来像一个正常的文本字符串。但它不是。 即使你向 document.cookie 写一份完整的 cookie 字符串,当再次读取时,你只能看到它的名称-值对。 如果设置了新 cookie,则旧的 cookie 不会被覆盖。新的 Cookie 会被添加到 document.cookie,所以如果你读取 document.cookie,你得到的东西会像这样:
cookie1 = value; cookie2 = value;
如果你想找到一个指定 cookie 的值,你必须编写 JavaScript 函数来搜索 cookie 字符串中的 cookie 值。 这里需要结合下面的实例!!!!!!!!!!!!
3.7.6 JavaScript Cookie 实例
创建一个 cookie 来存储访问者的名称。 访客第一次到达网页时,会要求他填写姓名。然后将该名称存储在 cookie 中。 下次访客到达同一页时,他将收到一条欢迎消息。 例如,我们将创建 3 个JavaScript函数: (1)设置cookie的函数 (2)获取 cookie 的函数 (3)检测 cookie 的函数
(1)设置cookie的函数 创建一个函数,将访问者的名字存储在 cookie 变量中:
function setCookie ( cname, cvalue, exdays ) {
var d= new Date ( ) ;
d. setTime ( d. getTime ( ) + ( exdays* 24 * 60 * 60 * 1000 ) ) ;
var expires= "expires" + d. toUTCString ( ) ;
document. cookie= cname+ "=" + cvalue+ ";" + expires+ ";path=/" ;
}
分析上述代码, cookie 的名字(cname),cookie 的值(cvalue),以及知道 cookie 过期的天数(exdays)。 通过把 cookie 名称、cookie 值和过期字符串相加,该函数就设置了 cookie。
(2)获取 cookie 的函数 创建一个函数返回指定 cookie 的值:
function getCookie ( cname ) {
var name = cname + "=" ;
var decodedCookie = decodeURIComponent ( document. cookie) ;
var ca = decodedCookie. split ( ';' ) ;
for ( var i = 0 ; i < ca. length; i++ ) {
var c = ca[ i] ;
while ( c. charAt ( 0 ) == ' ' ) {
c = c. substring ( 1 ) ;
}
if ( c. indexOf ( name) == 0 ) {
return c. substring ( name. length, c. length) ;
}
}
return "" ;
}
分析上述代码,把 cookie 作为参数(cname)。 创建变量(name)与要搜索的文本(CNAME”=”)。 解码 cookie 字符串,处理带有特殊字符的 cookie,例如 “$”。 用分号把 document.cookie 拆分到名为 ca(decodedCookie.split(‘;’))的数组中。 遍历 ca 数组(i = 0; i < ca.length; i++),然后读出每个值 c = ca[i]。 如果找到 cookie(c.indexOf(name) == 0),则返回该 cookie 的值(c.substring(name.length, c.length)。 如果未找到 cookie,则返回 “”。
(3)检测 cookie 的函数 我们创建检查 cookie 是否设置的函数。 如果已设置 cookie,将显示一个问候。 如果未设置 cookie,会显示一个提示框,询问用户的名字,并存储用户名 cookie 365 天,通过调用 setCookie 函数:
function checkCookie ( ) {
var username = getCookie ( "username" ) ;
if ( username != "" ) {
alert ( "Welcome again " + username) ;
} else {
username = prompt ( "Please enter your name:" , "" ) ;
if ( username != "" && username != null ) {
setCookie ( "username" , username, 365 ) ;
}
}
}
JavaScript小结
JavaScript是基于对象 和事件驱动 并具有相对安全性的客户端脚本语言 。 JavaScript特点:松散型、解释型、基于对象、安全性、跨平台。 JavaScript可以写在html文件的head标签里面,可以写在body标签,也可以写在外部js文件。 JavaScript的数据类型有数值型、字符串型、布尔型、空值、未定义值。 赋值运算符有+,-,*,/,%,&,|,^ JavaScript流程控制有if语句、switch语句、for语句、while语句和do-while语句。 函数定义用function关键字定义。匿名函数用一个变量来接受函数,不用写函数名。 全局函数可直接写名称使用即可。直接写名称使用即可。全局函数有encodeURI函数、decodeURI函数、encodeURIComponent函数、decodeURIComponent函数、eval函数、isFinite函数、isNaN函数、Number函数、parseFloat函数、parselnt函数、String函数。 JavaScript负责事件。通常使用函数来对事件进行处理。 正则表达式是构成搜索模式的字符序列,简单理解为模板。 Cookie 是在您的计算机上存储在小的文本文件中的数据。对cookie操作有:操作cookie、读取cookie、改变cookie、删除cookie。
总结
html负责框架,css负责样式,js负责动作。
你可能感兴趣的:(测试,前端开发,html5,css3,javascript,正则表达式)
【无标题】
是懒羊羊吖~
笔记
一.WED前端应用软件:c/s架构b/s架构web前端:html5css3javascripthtml5:超文本标记语言----超链接,文字,标签标签语法规范:结束-----双标签标签体------可以嵌套inputimg---------单标签属性:定制元素的行为,属性是不通用的,每一个标签存在自身的属性,当属性名等于属性值时,只需要写属性名,不需要写属性值。二.HTML1.样式//文档声明:告
ImportError: cannot import name ‘Mapping‘ from ‘collections‘
AI算法网奇
python基础 前端 javascript 数据库
ImportError:cannotimportname'Mapping'from'collections'解决方法:fromcollections.abcimportMapping#正确导入Mappingdefprocess_mapping(data):ifisinstance(data,Mapping):#使用Mapping进行类型检查#处理映射类型的代码pass测试命令:python-c"f
141,【1】buuctf web [SUCTF 2019]EasyWeb
rzydal
web 安全
进入靶场代码审计18){die('Oneinchlong,oneinchstrong!');}//使用正则表达式检查$hhh是否包含特定字符集(包括一些常见字符和控制字符等),如果包含则终止脚本执行if(preg_match('/[\x00-0-9A-Za-z\'"\`~_&.,|=[\x7F]+/i',$hhh))die('Trysomethingelse!');//获取$hhh中使用到的字符,
tidb实时同步到mysql
数据库
客户要求实时同步表的数据到mysql,但这个表在tidb。测试直接通过tidbcdc写入到mysql,有些字段是null,所以中间加了一个kafka实现客户库中创建表CREATETABLEtb_1(idbigintprimarykey,cidbigint,gidbigint,feeDECIMAL(10,2),created_attimestamp,typesmallint,remarkstring
Docker 与持续集成 / 持续部署(CI/CD)的集成(一)
计算机毕设定制辅导-无忧学长
# Docker docker ci/cd 容器
一、引言在当今快速发展的软件开发领域,高效、可靠的开发与部署流程是企业保持竞争力的关键。Docker与持续集成/持续部署(CI/CD)的集成,正成为众多开发团队提升效率、优化流程的重要手段。Docker作为一种开源的容器化平台,通过将应用程序及其依赖项打包在一个可移植的容器中,实现了环境的一致性和隔离性。这意味着,无论在开发、测试还是生产环境中,应用程序都能以相同的方式运行,有效解决了“在我机器上
技术分享:MyBatis SQL 日志解析脚本
£漫步 云端彡
运维趣分享 sql java mybatis 日志解析
技术分享:MyBatisSQL日志解析脚本1.脚本功能概述2.实现细节2.1HTML结构2.2JavaScript逻辑3.脚本代码4.使用方法4.1示例5.总结在日常开发中,使用MyBatis作为持久层框架时,我们经常需要查看SQL日志以调试和优化查询。然而,MyBatis的日志输出通常包含占位符和参数信息,这使得直接执行这些SQL语句变得困难。为了解决这个问题,我们开发了一个简单的HTML和Ja
ubuntu下vscode ctrl+tab松开ctrl后不自动选中文件
nicekwell
ubuntu vscode linux
vscode用ctrl+tab切换文件时,松开ctrl键后会自动选中切换的文件。但是在ubuntu下发现有时不能自动选中切换的文件,需要再次按enter键才能打开文件。经过测试发现解决方法有两个:方法1:确认wayland状态,关闭wayland。(编辑/etc/gdm3/custom.conf,设置WaylandEnable=false)方法2:我用tweaks调换了capslock和ctrl,
Kate文本编辑器 v24.12.9013 开源高级文本代码编辑器
SSASASA11
编辑器
链接:https://pan.quark.cn/s/5577e74ab648Kate是一个可以跨平台使用的免费高级文本编辑器,支持标签页、代码高亮、显示行号、显示缩略图的滚动条、多文件查找、横向或者纵向显示多个视图等众多高级特性。软件功能1、双击当前标签页创建新标签页。2、支持启用/禁用自动换行。3、强大的多文件查找和替换功能。利用这个功能可以一键查找/替换所有已打开的文本中的内容。支持正则表达式
鸿道Intewell操作系统为半导体行业打造高可靠实时控制系统
一RTOS一
鸿道Intewell操作系统 实时操作系统 半导体行业 高可靠控制系统 高实时控制系统
半导体行业是现代科技的核心领域,其生产过程高度依赖自动化和精确的实时控制。从芯片制造到封装测试,每一个环节都需要高精度的设备协同工作,以确保产品的质量和性能。随着半导体技术的不断进步,对实时控制系统的性能、可靠性和灵活性提出了更高的要求。传统的控制系统在集成度、扩展性和功能安全方面逐渐暴露出局限性,而国产实时操作系统的发展为半导体行业提供了新的机遇。随着半导体技术的不断演进,芯片制程日益缩小,对生
js的垃圾回收机制
www.www
JavaScript 相关 javascript 前端 开发语言
js中的垃圾回收机制JavaScript作为一种高级语言,开发者不需要手动管理内存的分配和释放。垃圾回收机制是JavaScript引擎中的一部分,负责自动回收那些不再被使用的内存,确保内存资源得到有效利用,避免内存泄漏。垃圾回收机制主要有两种算法:引用计数和标记清除引用计数基本原理:每个对象都有一个引用计数器,当有一个引用指向该对象时,计数器+1,当一个引用不再指向该对象时,计数器-1。如果某个对
前后端分离跨域问题解决方案
慕容屠苏
大前端爬坑之路 前后端分离 跨域问题解决方案
前后端分离跨域问题解决方案现在的web开发中经常会用到前后分离技术,前后端分解技术,都会涉及到跨域问题。解决跨域问题的方法:第一种解决方案jsonp(不推荐使用)这种方案其实我是不赞同的,第一,在编码上jsonp会单独因为回调的关系,在传入传出还有定义回调函数上都会有编码的”不整洁”.简单阐述jsonp能够跨域是因为javascript的script标签,通过服务器返回script标签的code,
基于MUSIC算法的DOA估计Matlab仿真
fpga和matlab
★MATLAB算法仿真经验 板块1:通信与信号处理 matlab MUSIC算法 DOA估计
up目录一、理论基础二、核心程序三、测试结果一、理论基础阵列信号处理是信号处理领域内的一个重要分支,在近些年来得到了迅速发展。波达方向(DirectionofArrival,DOA)估计是阵列信号处理的一个重要的研究领域,在雷达、通信、声纳、地震学等领域都有着广泛的应用前景。在DOA估计的发展过程中,人们对高分辨DOA估计算法一直有很大的研究兴趣,并在这一领域取得了很多重要的进展。阵列信号处理主要
CSS flex布局 列表单个元素点击 本行下插入详情独占一行
Cxiaomu
CSS3 UI设计 css 前端
技术栈:Vue2+javaScript简介在实际开发过程中有遇到一个场景:一个list,每行个数固定,点击单个元素后,在当前行与下一行之间插入一行元素详情,便于更直观的查看到对应的数据详情。这种情形,在移动端比较常见,比如用户列表,点击单个列表展示详情,可以考虑flex布局+positionrelative定位。实现思路对于需求重点和实现拆解列表元素:for遍历每行固定(3)个元素:flex布局、
AJAX使用和固定格式
乐多_L
ajax 前端 javascript
ajax的全称AsynchronousJavaScriptandXML(异步JavaScript和XML)。ajax是一种创建交互式网页应用的网页开发技术。其中最核心的依赖是浏览器提供的XMLHttpRequest对象,是这个对象使得浏览器可以发出HTTP请求与接收HTTP响应。实现了在页面不刷新的情况下和服务器进行交互。方法描述newXMLHttpRequest()生成一个XMLHttpRequ
JavaScript的内置对象有哪些?
乐多_L
javascript 开发语言 ecmascript
一、内置对象1、概念JavaScript中的对象共分为3种:自定义对象、浏览器对象和内置对象。之前我们自己创建的对象都属于自定义对象,而内置对象又称为API,是指JavaScript语言自己封装的一些对象,用来提供一些常用的基本功能,来帮助我们提高开发速度,例如:数学-Math、日期-Date、数组-Array、字符串-String等等。JavaScript的内置对象很多,我们不可能都记住,所以我
《JavaScript高级程序设计》——第四章:变量、作用域与内存管理
dorabighead
javascript 开发语言 ecmascript
《JavaScript高级程序设计》——第四章:变量、作用域与内存管理大家好!我是小哆啦,欢迎回到《JavaScript高级程序设计》的读书笔记大本营!在这章中,我们要聊的是两个让人头疼又迷人的话题——变量、作用域与内存管理。有些人一提到这些,就会感到一阵头晕目眩,恍若置身一场JavaScript版的迷宫大冒险!但今天,小哆啦会带你们轻松过关,深入了解这些概念,并且保持足够的幽默感,让你既能笑着学
python 自动化数据提取之正则表达式_python 正则提取(2)
m0_60607245
程序员 python 学习 面试
一、Python所有方向的学习路线Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。二、Python必备开发工具工具都帮大家整理好了,安装就可直接上手!三、最新Python学习笔记当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理
华为昇腾服务器部署DeepSeek模型实战
gzroy
人工智能 语言模型
在华为的昇腾服务器上部署了DeepSeekR1的模型进行验证测试,记录一下相关的过程。服务器是配置了8块910B3的显卡,每块显卡有64GB显存,根据DeepSeekR1各个模型的参数计算,如果部署R1的Qwen14B版本,需要1张显卡,如果是32B版本,需要2张,Llama70B的模型需要4张显卡。如果是R1全参数版本,则需要32张显卡,也就是4台满配的昇腾服务器。这里先选择32B的模型进行部署
spring boot基于知识图谱的阿克苏市旅游管理系统python-计算机毕业设计
QQ1963288475
spring boot 知识图谱 旅游 python vue.js django flask
目录功能和技术介绍具体实现截图开发核心技术:开发环境开发步骤编译运行核心代码部分展示系统设计详细视频演示可行性论证软件测试源码获取功能和技术介绍该系统基于浏览器的方式进行访问,采用springboot集成快速开发框架,前端使用vue方式,基于es5的语法,开发工具IntelliJIDEAx64,因为该开发工具,内嵌了Tomcat服务运行机制,可不用单独下载Tomcatserver服务器。由于考虑到
Jmeter 性能-稳定性测试TPS计算
软件测试媛
软件测试 技术分享 自动化测试 jmeter 软件测试 功能测试
1、普通计算公式TPS=总请求数/总时间1按照需求得到基础数据,比如在去年第xxx周,某平台有5万的浏览量那么总请求数我们可以估算为5万(1次浏览都至少对应1个请求)总请求数=50000请求数总时间:由于不知道每个请求的具体时间,按照普通方法,可以按照一天的时间进行计算总时间=1天=1*24小时=24*36001秒套入公式可得:TPS=50000/24*3600秒=0.58tps1结论:按照普通计
数学推理中在推理规模化下检查假阳性解
硅谷秋水
大模型 机器学习 人工智能 语言模型 深度学习 机器学习 人工智能
25年2月来自中科大和微软亚洲研究院的论文“ExaminingFalsePositivesunderInferenceScalingforMathematicalReasoning”。语言模型的最新进展已带来各种基准测试中数学推理能力的显著提升。然而,大多数基准测试依赖于自动评估方法,这些方法仅使用启发式方法比较最终答案,而不验证底层推理步骤。这种限制导致假阳性解,其中模型可能会产生正确的最终答案
【OpenTiny调研征集】共创技术未来,分享您的声音!
前端vue.js开源
欢迎参与2025年OpenTiny开源社区用户调研征集调研背景随着OpenTiny开源项目的不断发展,我们一直致力于为开发者提供高质量的Web前端开发解决方案。为了更好地满足用户需求,提升项目的实用性和易用性,我们决定发起一项用户调研活动,诚挚邀请您参与。调研目的了解用户需求:收集您在使用OpenTiny开源项目过程中的需求、问题和建议,以便我们更好地改进和优化。提升用户体验:通过您的反馈,我们将
mysql实时同步到es
数据库
测试了多个方案同步,最终选择oceanu产品,底层基于Flinkcdc1、实时性能够保证,binlog量很大时也不产生延迟2、配置SQL即可完成,操作上简单下面示例mysql的100张分表实时同步到es,优化备注等文本字段的like查询创建SQL作业CREATETABLEfrom_mysql(idint,cidintNOTNULL,gidbigintNOTNULL,contentvarchar,c
信息获取、扫描与服务识别、漏洞验证、嗅探攻击、代理与隧道、metasploit渗透攻击等
Utopia.️
web安全 安全 网络
1.信息获取信息获取是渗透测试和安全评估的第一步,主要目的是收集目标系统的各种信息。这些信息可以帮助确定攻击面和潜在的安全漏洞。技术和工具:域名信息:使用whois查询域名注册信息。DNS查询:使用nslookup或dig获取DNS记录,包括A记录、MX记录等。网络扫描:使用nmap或Masscan扫描目标网络,收集IP地址和开放端口信息。公开信息:通过搜索引擎、社交媒体、公司网站等公开资源获取目
《数组》学习——有序数组的平方
小翔很开心
我在CSDN学算法 学习
有序数组的平方题目:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。测试用例:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100],排序后,数组变为[0,1,9,16,100]该题,有两种解法:暴力排序解法双指针法(快慢指针法)测试程序:(双指针法的求解)#include
嵌入式音视频开发(二)ffmpeg音视频同步
云雨歇
音视频 ffmpeg
系列文章目录嵌入式音视频开发(零)移植ffmpeg及推流测试嵌入式音视频开发(一)ffmpeg框架及内核解析嵌入式音视频开发(二)ffmpeg音视频同步嵌入式音视频开发(三)直播协议及编码器文章目录系列文章目录前言一、音视频同步1.1基础概念1.2三种同步方法二、音视频同步的实现2.1时间基的转换问题2.2音频为基准2.2.1实现思路2.2.2代码大纲2.3外部时钟同步2.3.1实现思路2.3.2
2025.2.20总结
天真小巫
总结 总结
今晚评测试报告,评到一半,由于看板数据没有分析完,最后让我搞完再评.尽管工作了多年的同事告诉我,活没干完,差距比较大,没资格评报告,但还是本着试试的态度,结果没想到评审如此严苛.内心多少有些受打击,毕竟,加班加点的工作,只为能取得个好的结果,但感觉无论怎么努力,还是把交代的工作干成了烂泥,有时候也会有些怀疑,到底能否胜任这份工作.为什么努力了,还是没能把事情做好.难道是我工作的方式有问题吗?工作中
JavaScript 闭包与作用域的深度解析
小钟H呀
JS知识手册 javascript 开发语言 ecmascript
引言在JavaScript世界里,闭包和作用域是两个核心概念,理解它们对于编写高效、可维护的代码至关重要。本文将深入探讨JavaScript闭包与作用域的原理、应用及注意事项。一、作用域的概念(一)什么是作用域作用域是指变量和函数的可访问范围。在JavaScript中,主要有全局作用域和局部作用域。全局作用域:在代码的任何地方都可以访问到的变量和函数,通常在脚本的最外层或通过全局对象(如windo
Python wifi 安装手机app
yichengace
python
目的当测试机数量越来越多时,测试包的安装会成为一个问题,用wifi安装来解决这个问题,并且用脚本语言来批量控制思路思路就是py调用pc端的adb命令,向手机发送请求,无线是因为,如果未来测试机越来越多,一台电脑的usb接口数量肯定不够准备工具python,adb,pycharm,测试用app,这里选择qq(https://qd.myapp.com/myapp/qqteam/AndroidQQ/mo
产品架构图怎么画?看这篇就够了!
小天才学习机打游戏
caffe 人工智能 深度学习 AI编程 金融 prompt 机器学习
1.什么是产品架构图?产品是由不同的业务功能单元组成的,功能单元之间又有一定逻辑关系,将这些功能单元和它们的逻辑关系以可视化形式展现出来就是产品架构图,这张图最重要的作用就是在产品规划阶段帮助各方快速建立这个产品画像。立项评审时这个图必不可少,产品最后做出来长么样,大家就对着这张图yy了田所以如何画出一张各方(领导、研发、测试)都看得懂的产品架构图就很考验功力。2.怎么画?产品架构图一般由上至下分
异常的核心类Throwable
无量
java 源码 异常处理 exception
java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy
package com.natsu;
mongoDB 游标(cursor) 实现分页 迭代
开窍的石头
mongodb
上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询
如何声明一个游标
var mycursor = db.user.find({_id:{$lte:5}});
迭代显示游标数
MySQL数据库INNODB 表损坏修复处理过程
0624chenhong
tomcat mysql
最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -
剖析如何与设计人员沟通
不懂事的小屁孩
工作
最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。
那应该如何与设计人员沟通呢?
我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,
qq空间刷评论工具
换个号韩国红果果
JavaScript
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l
S2SH整合之session
灵静志远
spring AOP struts session
错误信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped
xmp标签
a-john
标签
今天在处理数据的显示上遇到一个问题:
var html = '<li><div class="pl-nr"><span class="user-name">' + user
+ '</span>' + text + '</div></li>';
ulComme
Ajax的常用技巧(2)---实现Web页面中的级联菜单
aijuans
Ajax
在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐
天-安-门,好高
atongyeye
情感
我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。
晚上躺在床上一个人想了很久,很久。
我生在农
android 动画
百合不是茶
android 透明度 平移 缩放 旋转
android的动画有两种 tween动画和Frame动画
tween动画;,透明度,缩放,旋转,平移效果
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
Animation
查看本机网络信息的cmd脚本
bijian1013
cmd
@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt"
@echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt"
@echo ___________________>>"%userprofile%\
plsql 清除登录过的用户
征客丶
plsql
tools---preferences----logon history---history 把你想要删除的删除
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_spac
【Pig一】Pig入门
bit1129
pig
Pig安装
1.下载pig
wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz
2. 解压配置环境变量
如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量
expor
Java 线程同步几种方式
BlueSkator
volatile synchronized ThredLocal ReenTranLock Concurrent
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法&
StringUtils判断字符串是否为空的方法(转帖)
BreakingBad
null StringUtils “”
转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==
null
或 str.length()==
0
编程之美-分层遍历二叉树
bylijinnan
java 数据结构 算法 编程之美
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LevelTraverseBinaryTree {
/**
* 编程之美 分层遍历二叉树
* 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要
jquery取值和ajax提交复习记录
chengxuyuancsdn
jquery取值 ajax提交
// 取值
// alert($("input[name='username']").val());
// alert($("input[name='password']").val());
// alert($("input[name='sex']:checked").val());
// alert($("
推荐国产工作流引擎嵌入式公式语法解析器-IK Expression
comsci
java 应用服务器 工作 Excel 嵌入式
这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。
----------转帖---------------------------------------------------
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言
关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
daizj
spring
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
<bean id="propertyConfigurerForWZ&q
二叉树:二叉搜索树
dieslrae
二叉树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表.
tree代码:
C语言字符串函数大全
dcj3sjt126com
c function
C语言字符串函数大全
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main
友盟统计页面技巧
dcj3sjt126com
技巧
在基类调用就可以了, 基类ViewController示例代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]];
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
flyvszhb
java jdk
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21&quo
Java在创建子类对象的同时会不会创建父类对象
happyqing
java 创建 子类对象 父类对象
1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,
2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam
跟我学spring3 目录贴及电子书下载
jinnianshilongnian
spring
一、《跟我学spring3》电子书下载地址:
《跟我学spring3》 (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf
跟我学spring3系列 word原版 下载
二、
源代码下载
最新依
第12章 Ajax(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
BI and EIM 4.0 at a glance
blueoxygen
BO
http://www.sap.com/corporate-en/press.epx?PressID=14787
有机会研究下EIM家族的两个新产品~~~~
New features of the 4.0 releases of BI and EIM solutions include:
Real-time in-memory computing –
Java线程中yield与join方法的区别
tomcat_oracle
java
长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。
&nb
android Manifest.xml选项
阿尔萨斯
Manifest
结构
继承关系
public final class Manifest extends Objectjava.lang.Objectandroid.Manifest
内部类
class Manifest.permission权限
class Manifest.permission_group权限组
构造函数
public Manifest () 详细 androi
Oracle实现类split函数的方
zhaoshijie
oracle
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。
CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);
cr