谓操作符,就是用来操作数据值的符号,在JavaScript中包括算术操作符、位操作符、关系操作符和相等操作符。这些操作符可以操作所有类型的数据,比如字符串、数字、布尔值,甚至对象。
所谓一元操作符就是只能对一个数据值进行操作,比如(递增、递减)操作符。
递增、递减操作符是直接借鉴C语言的,它分前置型和后置型。前置就是操作符在要操作的变量之前,后置在变量之后。
如下示例:
// 前置型
let age=20;
++age; // 递增
console.log(age); // 结果输出21
--age;//递减
console.log(age); // 结果输出20
如上面例子,age通过++操作符递增变成21,又通过--操作符递减变成20;上面的操作等同下面的操作:
// 后置型
let age=20;
age=age + 1; // 加1
age=age -1; // 减1
同理使用后置操作符会得到上面同样的结果,但是前置和后置有区别。前置操作符在语句被求值以前改变,后置是在语句被求值后改变。通过下面的例子看下其区别:
// 前置
let age=20;
let anotherAge=--age + 5;
alert(age); // 输出19
alert(anotherAge); // 输出24
由于前置操作符的优先级和执行语句相等,因此会从左到右依次求值。上面的--age 会先进行递减操作,再继续后面的 + 5 运算,所以结果是24。
// 后置时
let age=20;
let anotherAge=age-- + 5;
alert(age); // 输出19
alert(anotherAge); // 输出25
但是后置的最终结果却是25,因为age-- 使用了递减前的值继续和后面进行+5运算。
如果使用一个加号或减号时,加号代表正值、减号代表负值。
操作多个数据值,比如加减乘除等:
let a=1,b=2;
let c=a + b; // 加
let d=c - a; // 减
let e=d * b; // 乘
let f=e/d; // 除
注意加减乘除主要用来操作数字类型的数据,如果操作数不是数字类型,会先进性强制转换再进行计算,这样结果会不确定。
位操作符,是指按内存中的表示的数值位来操作数值,通俗讲就是用来操作二进制的数据。二进制数据都是由0、1组成的,在JavaScript中所有数值都是64位的格式存储,但位操作符不直接在64位的值上进行计算,会先转化成32位后再运算。位操作符有以下几种:
按位非(NOT)
按位非操作符是(~)符号,就是将二进制中每位数值进行反码操作。其规则如下:
操作符 | 数值 | 结果 |
~ | 1 | 0 |
~ | 0 | 1 |
如下示例:
let a=25;
let b=~a;
alert(b); // 输出-26
按位与(AND)
使用(&)符号表示,它有2个操作数,当2个数对应的位都是1时返回1,任何一位是0则返回0。如下规则:
数值1 | 操作符 | 数值2 | 结果 |
1 | & | 1 | 1 |
1 | & | 0 | 0 |
0 | & | 1 | 0 |
0 | & | 0 | 0 |
示例:
let a=25 & 3;
alert(a); // 输出结果是1
按位或(OR)
用(|)符号表示,同样也是2个操作数。其规则是只要有一位是1其结果就是1,负则结果是0;
数值1 | 操作符 | 数值2 | 结果 |
1 | | | 1 | 1 |
1 | | | 0 | 1 |
0 | | | 1 | 1 |
0 | | | 0 | 0 |
示例:
let a=25 | 3;
alert(a); // 输出结果是27
按位异或(XOR)
由(^)符号表示,也是操作2个操作数,其当2个操作数的位值相同时返回0,负则返回1。
数值1 | 操作符 | 数值2 | 结果 |
1 | ^ | 1 | 0 |
1 | ^ | 0 | 1 |
0 | ^ | 1 | 1 |
0 | ^ | 0 | 0 |
示例:
let a=25 ^ 3;
alert(a); // 输出结果是26
左移
使用(<<)两个小于号表示,这个操作符会将数值每一位向左移动指定位数。如下示例:
let a=2; // 二进制 10
let b=b << 5; // 二进制的 1000000,十进制64
上面,将二进制10向左移动5位,注意左移会多出5个空位,用0来填充,这样就会得到一个完整的32位二进制数据。
注意,左移不会影响符号位(二进制位中第一位表示数的正负),如-2 向左移5位结果是-64。
有符号的右移
使用(>>)两个大于号表示,会将每位向右移动指定位数,但保留符号位(即正负号标记)。如下示例:
let a=64; // 二进制 1000000
let b=b >> 5; // 二进制的 10,十进制的2
在移位过程,原数中也会出现空位,只不过这次空位出现在原数值左侧、符号位右侧。空位使用符号位值填充。
有符号的整数,指32位中前31位表示整数的值,第32位表示数值的符号,0正数,1负数。这个表示符号的位就是符号位。
无符号的右移
使用(>>>)三个大于号表示,这个操作会将所有32位都向右移动。对于正数其结果和有符号的右移一样,如下示例:
let a=64; // 二进制 1000000
let b=b >>> 5; // 二进制的 10,十进制的2
但是负数就不一样了,无符号的右移是以0来填充空位,不像有符号右移使用符号位填充。所以其结果相差很大,如下示例:
let a=-64; // 二进制 1111 1111 1111 1111 1111 1111 1100 0000
let b=b >>> 5; // 二进制 0000 0111 1111 1111 1111 1111 1111 1110 ,十进制的134217726
在任何编程语言中,布尔操作符都是非常重要的,它是用来判断逻辑的关键,布尔操作符一共有三种:非(NOT)、与(AND)、或(OR)。
逻辑非
使用(!)感叹号表示逻辑非,其规则就是:
操作符 | 逻辑值 | 结果 |
! | true | false |
! | false | true |
逻辑与
使用(&&)表示,操作两个数,如下示例:
let a=ture && false;
其规则如下:
逻辑值1 | 操作符 | 逻辑值2 | 结果 |
ture | && | ture | ture |
ture | && | false | false |
false | && | ture | false |
false | && | false | false |
也就是只有当2个数值都是true时其结果才是true。
逻辑或
使用(||)符号表示,也是有两个操作数,其示例:
let a=true || false;
规则如下:
逻辑值1 | 操作符 | 逻辑值2 | 结果 |
ture | || | ture | ture |
ture | || | false | ture |
false | || | ture | ture |
false | || | false | false |
也就是2个操作数中有一个true,结果就是true,负则是false。
注意布尔操作符,不仅仅可以操作布尔类型值,对于其它数据类型同样适用,只不过会先将其它数据类型转换成布尔值,再进行布尔运算。如下示例:
let a=!1; // 输出false
let b=!'string'; // 输出false
let c=1 || 0; // 输出true
let e=1 && 0;// 输出false
let d=''&& 2; // 输出true
关系操作符用来比较2个操作数,有小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。其比较的结果返回一个布尔值,true或false。
如下示例:
let a=5 > 3; // true
let b=5 < 3; // false
同样,关系操作符也可以适用其它类型的数据,比如字符串比较大小时,会按照字符的编码大小比较。如下示例:
let a="Brick" < "alphabet"; // true,
上面中因为B字符编码是66,a的编码是97,所以返回true。
在编程中,确定2个值是否相等是一个非常重要的操作。在JavaScript中分相等(==)和全等(===)、不等(!=)和不全等(!==)四种。
相等(==)和不相等(!=)
如下示例:
let a=1==1; // true
let b=1==0;// false
let c=1!=1; // false
let d=1!=0; //true
注意相等和不相等的操作前会先对操作性进行强制转换,如下示例:
let a=true==1; // 先将true转换成1再比较,结果是true
let b=false==1; // 先将false转换成0再比较,结果是false
全相等(===)和不全相等(!==)
全等和不全等不同之处是,它在比较数据前,不进行数据类型转换,是对原始数值比较,所以它的结果更加严格准确,如下示例:
let a=1===1; // true
let b=1==='1';// false
let c=1!==1; // false
let d=1!=='1'; //true
注意和之前相等和不相等的例子比较,其结果非常不一样。
使用(=)表示赋值操作,其作用就是把等号右侧的值赋值给左边的变量或属性,如下示例:
let a=10; // 给a变量赋值10
如果在等号前面加上其它操作符,就组成了复合型赋值操作,如下示例:
let a=10;
a +=5; // 结果是 15
上面的等同于下面:
let a=10;
a=a + 5; // 结果是 15
当然也可以使用其它操作符,如(*=)、(/=)、(%=)、(-=)、(<<=)等等。
也称三目运算符,它是一种简便的条件运算,可以把它看成是if else的简化,其语法如下:
变量=布尔表达式 ? true_value : false_value
先求出问号前面的布尔表示结果,如果是true,变量使用冒号前面的值,负则使用冒号后面的值。如下示例:
let a=5 > 3 ? '好' : '不好'; // 结果是 '好'
使用(,)符号,表示可以执行多个操作,常用于变量定义或函数参数,如下示例:
var a=0,b=1,c=2; // a、b、c使用逗号隔开
let a,b,c;
// 函数中的参数a、b、c使用逗号隔开
function test(a,b,c){
// 函数主体
}
// 调用函数
test(1,2,3)
本节主要讲述了JavaScript中所有的操作符概念,这些都是最基本的知识,需要完全掌握。在平常工作中其中除了位操作符不常用外,其它操作符使用频率很高,尤其是布尔操作符,算术操作符,比较操作符等。
本篇只是大概讲述了操作符的概念和使用方法,还有一些细节没有讲到,作为入门课程已经足够了,你可以自己搜索每个知识点详细内容,比如关于二进制数据、位操作、数据类型强制转换等,这里不再详细介绍。
《JavaScript 高级程序设计》
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
https://www.w3cschool.cn/javascript/js-operators.html
、 结构
一、标记<Html> 建立HTML文档
<Head> 设置网页头部和其它信息
<Body> 设计文件格式及内文所在<Body> 元素的属性
Text 设置页面文字的送顔色 Bgcolor 设置页面背景的顡色
Background 设置页面的背景图像 Link设置页面黙认的顔色
Bgproperties 设置页面的背景图像为固定,不随页面的滚动而滚动
Alink 设置鼠标正在单击时候的链接顔色 Vlink 设置访问过后的链接顔色
Topmargin 设置页面的上边距 Leftmargin 设置页面的左边距
二、头部
标记 <Base> 当前文档的URL全称 <Title>设置显示在浏览器在上方的标题内容
<Isindex> 表明该文档是一个可用于检索的网关脚本
<Meta> 有关文档本身的信息,例如用于查询的关键词,用于获取该文档的有效期等
<Style> 设置CSS层叠样式表的内容
<link> 设置外部文件的链接 <script> 设置页面中程序脚本的内容
<Mate> 标记属性
Http-Equiv 生成一个HTTP标题域,它的取值与另一个属性相同,
例如Http-Equiv=Expires,实际取值由Content确定
Name 如果元数据是以关键字/取值的形式出现的,Name 表示键字,
如Author或ID
Content 关键字/取值的内容
三、文字
文字标记 <HNumber>……<1HNumber> Number=1.2.3.4.5.6
分别指1至6级标题
<Font>文字
文字的修饰标记 <B>/<strong> 粗体 <I>/<Em>/<cite> 斜体
<Sup>上标 <sub>下标 <Big>大字号 <small>小字号
<U>下划线 <S>/<strike>删除线 <Address>地址
<Tt>打字机文字 <Blink>闪烁文字(只适用于Netscape浏览器)
<Code>/<samp>等宽 <kbd>键盘输入文字 <Var>声明变量
<Fant>标记的属性
Face 字体 Size字号 Color顔色
四.列表
列表标记 <Ul>无序列表 <Ol>有序列表 <Dir>回录列表 <Dl>定义列表
<Meru>菜单列表 <Dt>·<Dd>定义列表的标记 <Li>列表项目的标记
<Ul><Ol>标记的属性 Type设置列表类型 start设置列表起始属性
Type的属性值 1 数字 a 小写字母 A 大写字母 i小写罗马数字
I 大写罗马数字 Disc ● Circle ○ square □
五.链接
链接标记 <A> 链接
<A>标记的属性 Href 指定链接地址 Name给链接命名
Title设置链接提示文字 Target指定链接的目标窗口
Target属性值 -parent在上一级窗口中打开。一般使用分帧的框架页会经常使用
-bank在新窗口中打开
-self在同一个帧或窗口中打开.这项一般不用设置
Href属性值 http:// 进入万维网站点 news://启动新闻讨论
ftp:// 进入文件传输服务器 mailto:// 启动新闻讨论组
telnet:// 启动telnet方式 gopher://访问一个gopher服务器
六.图片
图片标记 <Img>图片 <Map>图像映射 <Area>图像映射中定义区域
<lmg>标记的属性 src图像的源文件 Alt提示文字 Width宽度
Height高度 Vspace垂直间距 Hspace水平间距 Align排列 Border边框
Align属性值 Top文字的中间线居于图片上方 Middle文字的中间线居于图片中间
Bottom文字的中间线居于图片底部 Left 图片在文字的左侧
Right图片在文字的右侧 Absbottom文字的底线居于图片底部
Absmiddle文字的底线居于图片中间 Baseline英文文字基线对齐
Texttop英文文字上边线对齐
Shape属性值
Rect矩形区域 Circle椭圆形区域 Poly多边形区域
七.表格
1.表格标记 <Table>…</Table>表格标记 <Tr>…</Tr>行标记
<Td>…</Td>单元格标记 <Th>表头标记
<Table>标记属性 Bordercolor 表格边框色 Borde表格边框的宽度
Bordercolorlight 表格边框亮边框色(左上边框顔色)
Bordercolordark 表格暗边框色(右下边框顔色)
Bordercolor 行的边框顔色 Width表格的宽度 Height表格的高度
Bgcolor表格的背景顔色 Background表格的背图像
<Tr>标记属性 Align行内容的水平对齐 Valign 行内容的垂直对齐
Bgcolor 行的背景顔色 Background 行的背景图像
Bordercolor 行的边框顔色 Bordercolorlight 行的亮边框顔色
Bordercolordark 行的暗边框顔色
<Td>标记属性 Align单元内容的水平对齐 Valign单元格内容的垂直对齐
Bgcolor 单元格的背景顔色 Background 单元格的背景图像
Bordercolor单元格的背景顔色 Bordercorlorlight单元格的亮边框顔色
Brodercolordark 单元格的暗边框顔色 Width 单元格的宽度
Height单元格的高度
<Th>标记属性 Align表头内容的水平对齐 Valign表头内容的垂直对齐
Bgcolor 表头的背景顔色 Background表头的背景图像
Bordercolor表头的边框顔色 Bordercolorlight 表头的亮边框顔色
Bordercolordark 表头的暗边框顔色 Width 表头的宽度 Height 表头的高度
八.表单
1.表单标记 <Form>表单标记 <Input>表单输入标记
<select>菜单和列表标记 <Option>菜单和列表项目标记
2.属性 <Form> Name表单的名称
Method 定义表单结果从浏览器传送到服务器的方法,一般有两种方法:get,post
Action 用来定义表单处理程序(一个Asp,CGI等程序)的位置(相对地址或绝对地址)
<lnput>标记属性 Name 域的名称 Type域的类型
Maxlength 域的最大输入字符数 size域的宽度 Value 域的默认值
<Select>标记属性 Name 菜单和列表的名称 size 显示的选项数目
Multiple 列表中的项目多选 Value 选项值 selected默认选项
<Texrarea>标记属性 Name 文字域的名称 Rows文字域的行数
Cols 文字域的列数 Value 文字域的默认值
Type属性值 Text 文字域 Password 密码域 File 文件域
Checkbox复选框 Redio单选框 Button普通按扭
Submit 提交按钮 Reset重置按钮 Hidden隐藏域Image图像域
九.滚动
滚动标记 <Marquee>
<Marquee>标记属性 Direction 滚动方向 up 文字向上滚动 Left文字向左滚动
Behavior 滚动方式 Scroll 循环往复
Side 只做一次滚动
Alternate 交替进行滚动
ScrollAmount 滚动速度
ScrollDelay 滚动延迟
Trim函数用来剔除首尾空格
十.框架
1.标记 <Frameset> 框架边框标记 <Frame> 框架标记 <Iframe>浮动框架标记
<Frameset>标记属性 Cols列 Rows行
<Frame> 标记属性 src框架中显示页面源文件的路径
FrameBorder 框架边框显标属性 FrameSpacing框架边框宽度属性
Scrolling框架滚动条显示属性 NoResize 框架尺寸调整属性
BorderColor 框架边框顔色属性 MarginWidt 框架边框缘宽度属性
MarginHerght框架边缘高度属性
<1frame> 标记属性 src浮动框架中显示页面源文件的路径
Width 浮动框架的宽度 Height 浮动框架的高度
Name 浮动框架的名称
Align 浮动框架的排列方式 Left表示居左 Center表示居中 Right表示居右
FrameBorder 框架边框显示属性 FrameSpacing 框架宽度属性
Scrolling 框架滚动条显示属性 ( yes显示 No不显示 Auto根据页面的长度自动判断是否晶粒示滚动条
NoResize 框架尺寸调整属性 BorderColor框架的顔色
MarginWidth 框架边缘宽度属性 MarginHeight 框架边缘高度属性
插入刷新
步骤:1.选择"查看/文件头内容"
2.在插入面板上,打开HTML选项卡
优化代码
打开文件窗口,执行"命令、清理HTML"命令
文本换行:Enter 行距较大
Enter + Shift 行距较小
插入水平线设置顔色:单击属性面板中的快捷标签编辑器按钮
在代码中键入"color=#顔色值"
当图像无法显示时将显示这段文字:
图像属性中的替代→输入文字
插入鼠标经过图像:准备两张图像
在文件窗口中,将光标放置于需要翻转图像位置→插入工具栏中单击鼠标经过图像
Ⅱ.使用导航条:
在"常用"对象组中,单击"图像"小三角→导航条
插入图像占位符:图像小三角→图像占位符
Flash动画的背景实现透明 参数wmode 值 transparent
插入 Java Applet
插入表单
插入表单域:对象面板上"表单"→插入表单
插入文本域:单击面板上的插入文本域. 初始值=打开时显于的文字
插入密码框:在属性面板上选择密码
插入多行文本域:在类型后选择多行
插入隐藏域:对象面板→插入隐藏域
插入按钮:标签用来设置按钮上显示的文本
插入图像提交按钮=图像域:
插入文件上传按钮=文件域:
插入单选框
插入单选按钮组:Label文字说明 Value 单选按钮的值
插入复选框
菜单/插入列表:列表值→
插入跳转菜单:(
制作网页链接
URL统一资源定位器
目标:_blank在一个新的未命名的浏览器窗口中打开
_parent如果是嵌套的框架,链接会在父框架或窗口中打开,否则=_top
_top在完整的浏览器中打开
创建搜索页
运行中输入:
Inetmgr (IIS
Odbcad32 (odbc
Asp对象
Applicatipn 在给定的应用程序的所有用户间共享信息,并在服务器运行期间持久地保存数据。
集合: Contents
staticObjects
Item(变量值)=设置资料变量的值
Key(变量名称)=设置资料变量的名称
Count(变量资料的数量)=表示
Coutents集合中资料的总数量
方法: Lock
Unlock
事件: Applicatipn_Onstart
Application_OnEnd
Session 存储特定的用户会话所需的信息
属性:CodePage
LCID
SessionID
Timeout
集合:Contents
StaticObjects
方法:Abandon
事件:Session_Onstart
Session_OnEnd
Response 用来控制发送给用户的信息,包括直接发送信息给浏览器,重定位浏览器到另一个URL或设置Cookie值
属性: Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute
IsClientConnected
PICS
Status
集合: Cookies
方法: AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Request 访问任何基于HTTP请求传递的信息,常见的有从HTML表单用Post方法或Get方法传递的参数,Cookie或用户认证等。
属性: TotalBytes
集合: ClientCertificate
Cookies
Form
QueryString
ServerVaiables
方法: BinaryRead
Server 提供对服务器方法和属性的访问
属性: ScriptTimeout
集合: 无
方法: CreatObject
HTMLEncode
MapPath
URLEncode
Recordset
MoveNext 将前数据记录移至下一条
MovePrevious 将当前数据记录移至上一条
MoveFirst 将当前数据记录移至第一条
MoveLast 将当前数据记录移至最后一条
AbsolutePosition=N 将当前数据记录移至第N条
EOF 当前数据记录是否移过了最后一条(发生于向下移动时)
BOF 当前数据记录是否移过了第一条 (发生于向上移动时)
VBScript 运算符
算术运算符
指数 取负 乘法 除法 加法 减法 取模 连接 整数除法
∧ - * / ﹢ ﹣ Mod & \
比较运算符
相等 不相等 小于 大于 小于或等于 大于或等于 对象相象
=<> < > <=>=IS
逻辑运算符
逻辑非 逻辑与 逻辑或 异或 逻辑等于 逻辑蕴含
Not And Or Xor Eqv Imp
是一个朋友前天刚接触这个行业不久问我的一个问题,我网上也查了一些,看了下代码,不喜欢;所以
自己动手做了这个小demo;希望大家可以借鉴一下
首先页面布局:其中最主要的是对类wrapper设置position:relative;overflow:hidden;
类items设置:position:absolute等属性;
接下来就事分析如何轮播:
我的思路是:点击下一页的时候:items的animate向左移动
animate({"marginLfet":"-800px"},1000,function(){});其中function({})里执行的方法:
首先将item-1放到$(".items li")最后面,然后items({marginLeft:0})
【一开始在想,将item-1追加到$(".items li")最后面之后,那么一开始item-1是不是要移除掉呢,
然后我观察了下一页的方法执行后的页面元素,才发现这个担心是多余的】
下面是执行下一页之后的页面元素:
【大家发现了没有,第一个li元素跑到最后面了,然后接下来点击上一页的时候,我们只需要取最后一个li元素就行了】
思路:点击上一页的时候,items的css向左移动({"marginLfet":0}),然后$(".items li").eq(3)放在items第一个位置里,然后动画aniamte({"marginLeft":0},1000);
这时候大家脑补一下:items的css向左移动({"marginLfet":0})和$(".items li").eq(3)[即item-1]放在items第 一个位置里都是瞬间完成,人眼是看不出来的;所以再之后执行aniamte({"marginLeft":0},1000)时候,发现item-1慢悠悠从左侧出来
js代码如下:
接下来就是定时器了:自动轮播
【timer一定去做下判断,不然会导致连续点击的时候,图片移动会越来越快】
还有最后一个setTimeout这个:在点击上下一页的时候,我会清除定时器,所有我会在其事件里添加它,然后三秒之后再执行show(),自动轮播;
最后点击事件:
总体页面展示:
*请认真填写需求信息,我们会在24小时内与您取得联系。