JavaScript_3
1.JavaScript 运算符
1.算术运算符 + 、-、、/、%、++、–。*
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>算术运算符</title>
<script>
window.onload=function(){
//1.算术运算符 + 、-、*、/、%、++、--。
var num1=10;
var num2=3;
//+ 算术运算符【加--和】
//+ 连字符
document.write("<h1>"+num1+"+"+num2+"="+(num1+num2)+"</h1>");
document.write("<h1>"+num1+"-"+num2+"="+(num1-num2)+"</h1>");
document.write("<h1>"+num1+"*"+num2+"="+(num1*num2)+"</h1>");
document.write("<h1>"+num1+"/"+num2+"="+(num1/num2)+"</h1>");
document.write("<h1>"+num1+"%"+num2+"="+(num1%num2)+"</h1>");
//++[自动加1]
//变量++【先用后加】
//document.write("<h1>num1++ ="+(num1++)+"</h1>"); //10
//document.write("<h1>num1="+num1+"</h1>");// 11
//++变量【先加后用】
//document.write("<h1>++num1 ="+(++num1)+"</h1>"); //11
//document.write("<h1>num1="+num1+"</h1>"); //11
//--【自动减1】
//变量--【先用后减】
//document.write("<h1>num1-- ="+(num1--)+"</h1>"); //10
//document.write("<h1>num1="+num1+"</h1>");// 9
//--变量【先减后用】
document.write("<h1>--num1 ="+(--num1)+"</h1>"); //9
document.write("<h1>num1="+num1+"</h1>"); //9
}
</script>
</head>
<body>
</body>
</html>
2.比较运算符 == === != > < >= <=
运算结果一定是布尔Boolean型
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>比较运算符</title>
<script>
window.onload=function(){
//2.比较运算符 == != > < >= <= ===
var num1 = 10;
var num2 = 3;
document.write("<h1>"+num1+"=="+num2+"="+(num1==num2)+"</h1>");
document.write("<h1>"+num1+"!="+num2+"="+(num1!=num2)+"</h1>");
document.write("<h1>"+num1+">"+num2+"="+(num1>num2)+"</h1>");
document.write("<h1>"+num1+"<"+num2+"="+(num1<num2)+"</h1>");
document.write("<h1>"+num1+">="+num2+"="+(num1>=num2)+"</h1>");
document.write("<h1>"+num1+"<="+num2+"="+(num1<=num2)+"</h1>");
// === [比较数值的同时,也要比较数据类型]
var a=10;
var b="10";
document.write("<h1>"+a+"==="+b+"="+(a===b)+"</h1>");
}
</script>
</head>
<body>
</body>
</html>
3.逻辑运算符 || && !
运算数据和运算结果都是布尔boolean
3 || 5—???
(3>5) || (3<5)------true
真值表
a=true b=false
| | | | true or false|
|- -|–|
| a||b | true |
| b||a | true |
| a||a | true |
| b||b | false |
| a&&b | false |
| b&&a | false |
| a&&a | true |
| b&&b | false |
| !a | false |
| !b | true |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>逻辑运算符</title>
<script>
window.onload=function(){
//3.逻辑运算符 || && !
var num1 = 10;
var num2 = 3;
document.write("<h1>"+((num1>num2) || (num1<num2))+"</h1>"); //true
document.write("<h1>"+((num1>num2) && (num1<num2))+"</h1>"); //false
document.write("<h1>"+!((num1>num2) || (num1<num2))+"</h1>"); //false
}
</script>
</head>
<body>
</body>
</html>
4.条件运算符 【(判断表达式) ? 数值1 : 数值2】 ()? :
var iablename=()?value1:value2
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>条件运算符</title>
<script>
function test1(){
//4.条件运算符 【(判断表达式) ? 数值1 : 数值2】 ()? :
var val=document.getElementById("text1").value;
var str=(val > 18)?"成年":"未成年";
document.getElementById("text1").value=str;
}
</script>
</head>
<body>
<input id="text1" type="text" value="请输入年龄" /><br>
<input type="button" value="测试条件运算符" onclick="test1();"/>
</body>
</html>
5.typeof 操作符–检测变量的数据类型
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>typeOf</title>
<script>
window.onload=function(){
//typeof 操作符--检测变量的数据类型
//格式 : typeof 变量
var str="hello"; //string
var num=123.5; //number
var boo=false; //boolean
var arr=new Array(12,45.5); //object
var obj={id:1001,name:"zhangsan"}; //object
var testnull=null; //object
var un; //undefined
document.write("<h1>str的数据类型=="+typeof str+"</h1>");
document.write("<h1>num的数据类型=="+typeof num+"</h1>");
document.write("<h1>boo的数据类型=="+typeof boo+"</h1>");
document.write("<h1>arr的数据类型=="+typeof arr+"</h1>");
document.write("<h1>obj的数据类型=="+typeof obj+"</h1>");
document.write("<h1>testnull的数据类型=="+typeof testnull+"</h1>");
document.write("<h1>un的数据类型=="+typeof un+"</h1>");
}
</script>
</head>
<body>
</body>
</html>
3.JavaScript 流程控制语句
-
1.顺序结构 自上往下一行一行逐行执行
2.选择结构 有选择的执行某一部分程序 -
2.1if语句结构
1.if(){}
2.if(){}else{}
3.if(){}else if(){}else if(){}…else{}
4.if语句的嵌套
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>if语句结构</title>
<script>
window.onload=function(){
//if(){} --当()中的结果为true是执行{}中的程序
var num1=-10;
/*
if(num1>11){
alert("当()中的结果为true是执行{}中的程序");
}
*/
//2.if(){}else{}--【2选1】
//当()中的结果为true是执行第一个{}中的程序
//当()中的结果为false是执行第二个{}中的程序
/*
if(num1>11){
alert("当()中的结果为true是执行第一个{}中的程序");
}else{
alert("当()中的结果为false是执行第二个{}中的程序");
}
*/
//3.if(){}else if(){}else if(){}...else{}--【多选1】
//当第一个()中的结果为true执行第一个{}中的程序
//当第一个()中的结果为false执行第二个()中的程序
//当第二个()中的结果为true执行第二个{}中的程序
//当第二个()中的结果为false执行第s三个()中的程序
//.....以此类推
//当所有()中的结果为false的时候,执行最后一个{}中的程序
/*
if(num1>0){
alert("当第一个()中的结果为true执行第一个{}中的程序");
}else if(num1<8){
alert("当第二个()中的结果为true执行第二个{}中的程序");
}else if(num1<4){
alert("当第三个()中的结果为true执行第三个{}中的程序");
}else{
alert("当所有()中的结果为false的时候,执行最后一个{}中的程序");
}
*/
//4.if语句的嵌套 【4选1】
if(num1>0){
if(num1<60){
alert("不及格"); //true true
}else{
alert("及格"); //true false
}
}else{
if(num1==0){
alert("0分"); //false true
}else{
alert("没有负数"); //false false
}
}
}
</script>
</head>
<body>
</body>
</html>
2.2Switch语句结构
switch 语句用于基于不同的条件来执行不同的动作。
语法
switch(表达式 n){
case 常量值1:
执行代码块 1 break;
case 常量值1:
执行代码块 2 break;
…
case 常量值n:
执行代码块 n
break;
default:
表达式的结果与case后面常量值都不匹配;
}
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>switch</title>
<script>
function jisuan(){
var num1=document.getElementById("num1").value;
var op=document.getElementById("op").value;
var num2=document.getElementById("num2").value;
var span=document.getElementById("span");
switch(op){
case "+": span.innerHTML=num1+"+"+num2+"="+(num1*1+num2*1);break;
case "-": span.innerHTML=num1+"-"+num2+"="+(num1*1-num2*1);break;
case "*": span.innerHTML=num1+"*"+num2+"="+(num1*1*num2*1);break;
case "/": span.innerHTML=num1+"/"+num2+"="+(num1*1/num2*1);break;
default: span.innerHTML="运算符号有错!";
}
}
</script>
</head>
<body>
<input id="num1" type="text" value="请输入数字" /><br>
<input id="op" type="text" value="请输入运算符" /><br>
<input id="num2" type="text" value="请输入数字" /><br>
<input type="button" value="计算结果" onclick="jisuan()"/><br>
<span id="span"></span>
</body>
</html>
3.循环结构
3.1for循环
for (语句 1; 语句 2; 语句 3){
被执行的代码块
}
语句 1 (代码块)开始前执行 starts.[初始条件]
语句 2 定义运行循环(代码块)的条件[判断条件]
语句 3 在循环(代码块)已被执行之后执行[循环增量/减量]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>for</title>
<script>
window.onload=function(){
/*
for (语句 1; 语句 2; 语句 3){
被执行的代码块
}
语句 1 (代码块)开始前执行 starts.[初始条件]
语句 2 定义运行循环(代码块)的条件[判断条件]
语句 3 在循环(代码块)已被执行之后执行[循环增量/减量]
*/
/*
var arr1=new Array(6,5,4,3,2,1);
for(var i=0;i<arr1.length;i++){
document.write("<h"+arr1[i]+">测试for循环</h"+arr1[i]+">");
}
*/
for(var i=10;i>0;i--){
document.write("<h1>数字i=="+i+"</h1>");
}
}
</script>
</head>
<body>
</body>
</html>
3.2for/in
JavaScript for/in 语句循环遍历对象的属性
for (保存属性变量 in 对象){
对象名称[保存属性值的变量] ;//属性值
}
例如:
var user={id:1001,name:"zhangsan",age:23};
var att=""; //保存属性的变量
for(att in user){
//alert(att);
alert(att+"=="+user[att]);
}
3.3 while循环
语法:
while (判断条件){
需要执行的代码
}
1.初始值需要定义在while语法以外
2.控制循环增量/减量的代码,需要写在” 需要执行的代码”后面,如果没有就是死循环。
例如:
var arr1=new Array(6,5,4,3,2,1);
var i=0; // 初始值
while(i<arr1.length){
document.write("<h"+arr1[i]+">测试for循环</h"+arr1[i]+">");
i++;
}
3.4 do{}while循环
语法
do{
需要执行的代码
}while (判断条件);
1.初始值需要定义在while语法以外
2.控制循环增量/减量的代码,需要写在” 需要执行的代码”后面,如果没有就是死循环。
例如:
var arr1=new Array(1,2,3,4,5,6);
var i=0; // 初始值
do{
document.write("<h"+arr1[i]+">测试for循环</h"+arr1[i]+">");
i++;
}while(i<arr1.length);
while与do{}while()的区别?
while是先判断后执行,do{}while()先执行后判断,do{}while()与while同等条件下多执行一次。
while/do{}while()与for的区别
for–在执行的时候需要明确的知道循环的次数
While()/do{}while()----不需要明确的知道循环的次数。