算术运算符
+ 加、- 减、* 乘、/ 除、% 取模(求余数)、++、--
<script type="text/javascript">
console.log(4343%3);//2
console.log(15%18);//15
//取模的时候,如果前面的数字比后在的数字小,那得到的结果就是前面的数字
console.log(15%0)//NaN
//取模的时候,后面的数字不能为0,如果为0的话得到的结果就是NaN
var n=10;
n++;
console.log(n);//11;
//n=n++;
//console.log(n);//11
n=++n;
console.log(n);//12
//++在后面先运算后增加1
//++在前面先增加1后运算
//--的前面选减1再运算
//--在后面选运算再减1
var m=12;
m=m--;//12
--m;//11
console.log(m++)//11
console.log(m)//12
</script>
赋值运算符
=、+= 、-=、/=、%=
<script type="text/javascript">
var m=8;
m+=2;//m=m+2
console.log(m);//10
m-=2;//m=m-2;
console.log(m);//8
m%=2;//m=m%2
console.log(m);//0
m++;
m/=2;
//m=m/2;
console.log(++m)//1.5
</script>
关系运算符
==比较两个值是否相同,相同反回true
===首先比较两个值的类型,若不同直接返回false, 若类型相同再进行值比较,
如果相等返回true,
!=比较两个是不同,不同返回 true,相同返回false
!==只有两边数据类型不同,值不同才返回true
undefined只与null相等
字符串比较的话,比较的是对应的ascii码
<script type="text/javascript">
console.log(10>9);//true
console.log(10>=9);//true
console.log(10<9);//false
console.log(10<=9);//false
console.log(10==9);//false
console.log(10=='10');//true
//==操作时 若数据类型不同 ,先把两边的数据转换成相同的类型再运算
console.log(10==='10');//false
//===时选判断类型相同不,若不同返回false,若相同再进行值的判断
console.log(3!=8);//true;
console.log(8!=8);//false
console.log(8!='8');//false
console.log(8!=='8');//true 三个运算符在一起严格运算
console.log(undefined==null);//true
console.log(undefined===null);//false
var m=10,n=18;
console.log(m>n)//false
console.log('a'<'b');//字母和字母比较时按ascii 97<98 true
</script>
逻辑运算符
如果 a 的值成立返回b,否则返回c
<script type="text/javascript">
//&& 与也是并且 左边和右边的条件同时成立返回true,否false
// 当左边为真的时候,返回右边的值。
//当左边为假的话,返回左边的值
console.log(8>5&&4>7);//false
var n=7;
console.log(n-->6&&n==6);//true
console.log(n&&n++);//6 n=7
console.log(0&&n--);//0
var m;
console.log(m&&n);//undefined
//|| 或 当左右是条件时 只要有一个成立,返回值是true
// 当左边的值是真的时侯返回自已
//当左边的值是假的话,返回右边的值
console.log(8>5||4>7);//true
//console.log(n||n++);//7
console.log(0||n++);//8
console.log(m||n);//7 8
//!取反
//一个!代表先把数据转成布尔值,然后再取反
//二个!代表把数据转成布尔值
console.log(!m);// !false -> true
console.log(!0);//true
console.log(!8);//false
console.log(!!8);// !8->false-> !false->true
</script>
三目运算
也叫三元运算 操作数有三个
一元运算符,操作数有一个 ++ -- typeof !
二元运算符,操作数有两个 + - * / % %=…
三元运算符操作数用3个
a?b:c
如果 a 的值成立返回b,否则返回c
// if(条件1){
// 条件1成立要执行的内容
// }
// if(条件1){
// 条件1成立要执行的内容
// }else{
// 条件1不成立要执行内容
// }
// if(条件1){
// 条件1成立要执行的内容
// }else if(条件2){
// 条件1不成立条件2成立要执行内容
// }else{
// 条件1和2都不成立执行的
// }
// var score=60;
// if(score>=60){
// console.log('及格')
// }
//
// var score=59;
// if(score>=60){
// console.log('及格')
// }else{
// console.log('不及格')
// }
// var score=45;
// if(score>=60&&score<=70){
// console.log('中等')
// }else if(score>70){
// console.log('优秀')
// }else{
// console.log('不及格')
// }
// 条件?条件成立执行的内容:条件不成立执行的内容
var s=59;
s>60?console.log('及格'):console.log('不及格');
流程控制语句if
If(判断条件1){
判断条件1成立执行的代码
}else if(判断条件2){
判断条件1不成立,判断条件2成立执行的代码
}else{
判断条件1,判断条件2都 不成立执行的代码
true:真
false:假
程序首先会把if后括号中的判断条件转为true或者false,然后再判断
流程控制语句switch
If实例-下拉菜单
1、点击按钮,当下拉菜单隐藏时显示
2、点击按钮,当下拉菜单显示时隐藏
1、点击按钮、判断下拉菜单display为block的时候,改为none
2、点击按钮,判读下拉菜单display为none时改为block
Style只能操作行间样式
显示隐藏例子
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#box{width:100px;
height:200px;
border:1px solid red}
li{list-style: none;}
</style>
</head>
<body>
<input type="button" value="显示/隐藏" id="btn"/>
<div id="box">
<ul>
<li>我显示了</li>
<li>我也是</li>
<li>我也是</li>
</ul>
</div>
<script type="text/javascript">
var obtn=document.getElementById('btn');
var obox=document.getElementById('box');
var show=true;//自定义变量来判断是否显示或者隐藏
btn.onclick=function(){
if(show){
obox.style.display="none";
btn.value="显示";
}else{
obox.style.display="block";
btn.value="隐藏"
}
show=!show;
}
</script>
</body>
</html>
获取一组元还素
getElementsByTagName(“标签名”)
通过html标签获取一组元素
getElementsByClassName(“类名”)
通过class类名获取一组元素
querySelector(“css选择器”)
通过css选择器获取一个元素
querySelectorAll(“css选择器 ”)
通过css选择器获取一组元素、
集合属性
Length
<head>
<meta charset="UTF-8">
<title></title>
<style>
li{background: red;}
.yel{background: yellow;}
</style>
</head>
<body>
<ul id="ul">
<li class="yel">1</li>
<li>2</li>
<li class="yel">3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li class="yel">7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
<script type="text/javascript">
// var Id=document.getElementById('ul'); //一个元素
// console.log(Id);
// Id.style.paddingTop="200px";
var oul=document.getElementsByTagName('ul');//一组元素
console.log(oul);
oul[0].style.paddingTop="200px";
var oLis=document.getElementsByTagName('li');//通过标签名获取一组元素
var classname=document.getElementsByClassName('yel');//通过class名获取一组元素
for(var j=0;j<classname.length;j++){
classname[j].style.color="red"
}
console.log(oLis);
// oLis[0].style.backgroundColor="yellow";
// oLis[1].style.backgroundColor="yellow";
// oLis[2].style.backgroundColor="yellow";
// oLis[3].style.backgroundColor="yellow";
// oLis[4].style.backgroundColor="yellow";
// oLis[5].style.backgroundColor="yellow";
// oLis[6].style.backgroundColor="yellow";
// oLis[7].style.backgroundColor="yellow";
// oLis[8].style.backgroundColor="yellow";
// oLis[9].style.backgroundColor="yellow";
for(var i=0;i<oLis.length;i++){
oLis[i].style.backgroundColor='blue'
}
var yel=document.querySelector(".yel");
console.log(yel);
var yels=document.querySelectorAll(".yel");
console.log(yels);
</script>
</body>
流程控制语句-for
当条件判断满足真的时侯,重复执行的代码
重复第二步、第三步、第四步直到条件判断为假时,整个for循环就执行结束了
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
for(条件初始化;条件判断;条件变化){
当条件判断满足真的时侯,重复执行的代码
}
<script type="text/javascript">
for(var n=1;n<10;n++){
n+=5;
}
console.log(n)
//var n=1 1<10 n=1+5 n=6 6++
//7<10 n=7+5 n=12 12++
</script>
</body>
隔行变色
<head>
<meta charset="UTF-8">
<title></title>
<style>
li{background: gray;}
</style>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script type="text/javascript">
var oLis=document.getElementsByTagName('li');
//三行
// for(var i=0;i<oLis.length;i++){
// if(i%3==0){
// oLis[i].style.backgroundColor="red"
// }else if(i%3==1){
// oLis[i].style.backgroundColor="yellow"
// }else{
// oLis[i].style.backgroundColor="green"
// }
// }
for(var i=0;i<oLis.length;i+=2){
oLis[i].style.backgroundColor="red"
}
</script>
</body>
for in
循环,用来遍历对象中的数据
语法:
for(var 变量名 in 对象){
变量名 对象里的属性名(key)
对象[属性名] 属性名对应的值
}
获取到一个对象里的所有数据,只能用for in 方法
var person={name:’老李’,age:30,height:’180cm’}
for(var attr in person){
console.log(atrtr,person[attr]);
}
while循环
While(条件){
当条件满足时会执行这里的代码;
}
注:当while条年不具备停止条件的时侯,一定要在循环体内给一个条件变化。
否则就是一个死循环。
for 循环 知道循环次数
While 条件循环,知道结束条件时用它,它一般用在嵌套的元素,或者有嵌套的数据。
要做循环时,首选考虑for,如果for做不出来,那就选择while
var n=10,m=0;
while(n>8){
console.log(++m,n);
n=n-2;
}
//10>8 1,10 n=10-2=8