1.导航制作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>导航</title>
<style type="text/css">
{
margin:0;
padding:0;
}
.a{
width: 960px;
height: 40px;
background-color: #55a8ea;
margin: 100px auto;
}
.b a{
text-decoration: none;
font:14px '微软雅黑';
color:#fff;
/display: block;*/
line-height: 40px;
width: 100px;
text-align: center;
float:left;
}
.b li{
list-style: none;
}
.b a:hover{
background-color: #00619f;
color:red;
}
.b img{
position: absolute;
top: 87px;
}
</style>
</head>
<body>
<div class='a'>
<ul class='b'>
<li><a href="#">首页</a></li>
<li><a href="#">网站建设</a></li>
<li><a href="#">程序开发</a></li>
<li><a href="#">网络营销</a></li>
<li><a href="#"><img src="css3/img/new.png">企业VI</a></li>
<li><a href="#">案列展示</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</div>
</body>
</html>
运算符
1、javascript具有下列种类的运算符:算术运算符;等同运算符与全同运算符;比较运算符;
2、目的分类:字符串运算符;逻辑运算符;逐位运算符;赋值运算符;
3、特殊运算符:条件运算符;typeof运算符;创建对象运算符new;delete运算符;void运算符号;逗号运算符;
算术运算符:+ 、 – 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 —
等同运算符与全同运算符:== 、 ===、 !== 、 !===
比较运算符:< 、 > 、 <= 、 >=
字符串运算符::< 、 > 、 <= 、 >= 、 = 、 +
逻辑运算符:&& 、 ||、 !、
赋值运算符:=、 +=、 *=、 -=、 /=
对字符串是不能进行乘法运算的,”a” * “b” 是不合法的,但是,在可能的情况下,javascript会把表达式转换成正确的类型,因此,表达式 “3” * “5” 是合法的,javascript将字符串转换成数字执行运算,结果返回的是数字15,而不是字符串”15″。
1.+ 根据运算数的不同,具有不同的表现:
字符串 + 字符串 = 字符串(被连接);”a” + “b” = “ab” “5” + “6” = “56”
字符串 + 数字 = (字符串转换成数字)字符串(被连接);”a” + 5 = “a5” 5被转换成字符串 “1” + 0 = “10”
数字 + 数字 = 数字(相加)5 + 5 = 10。
2.注意运算符的结合性,有些运算符从左到右的结合性;有些从右到左结合性。
例如:w = a + b + c 等同于 w = (a + b) + c;
w = —b 等同于 w = – ( – ( -b ) ); w = a = b = c 等同于 w= ( a = ( b = c ))
一元运算符、赋值运算符、三元运算符的结合性是从右到左的;
“/” 在javascript中,由于所有的数都是浮点数,除法的结果都是浮点数,5 / 2 = 2.5 ;除数为0的结果为正负无穷;0/0为NaN;
“-”一元取反:将运算数取反,如果运算数不是数字,则转化成数字。
当两个运算数的类型不同时:将他们转换成相同的类型,
1)一个数字与一个字符串,字符串转换成数字之后,进行比较。
2)true转换为1、false转换为0,进行比较。
3)一个对象、数组、函数 与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString)
“?:”条件运算符是唯一的一个三元运算符;
变量和函数预j解析
处理执行上下文代码分为两个阶段:
进入执行上下文
执行代码
进入执行上下文:
进入执行上下文,方法的变量对象(VO)就会被以下属性填充
参数,参数名就是VO中的名称。值就是实参的值。如果没有传递,则为undefined
函数声明,如果VO中中已经存在相同的属性,则替换它的值
变量声明:通过var声明的。在VO中的值为undefined,如果VO中已经含有相同的属性,则不会影响已经存在的属性。
var n = 1;
fn(n);
function fn() {
console.log(n);
var n = 2;
}
打印结果:
undefined
var n = 1;
fn(n);
function fn(n) {
console.log(n);
var n = 2;
}
打印结果:
1
var n = 1;
fn(n);
function fn(n) {
console.log(n);
function n() {
console.log(666);
}
var n = 2;
}
打印结果:
function n() {
console.log(666);
}
1,预解析的顺序是从上到下,函数的优先级高于变量,函数声明提前到当前作用域最顶端,在var之上。
2,函数执行的时候,函数内部才会进行预解析,如果有参数,先给实参赋值再进行函数内部的预解析。
3,预解析函数是声明+定义(开辟了内存空间,形参值默认是undefined)。
4,预解析变量是只声明,不赋值,默认为undefined。
5,函数重名时,后者会覆盖前者。
6,变量重名时,不会重新声明,但是执行代码的时候会重新赋值。
7,变量和函数重名的时候,函数的优先级高于变量。