双路分支
var num=prompt("请输入一个数字");
if(num<0) {
alert("这是一个负数");}
else {
alert("这是一个正数");}
// 双路分支:两条路可以走,第一条走不通,就走第二条
// 基于单路分支,增加一条路
// if(条件表达式){
// 代码块1
// }else{
// 代码块2
// }
// 如果(if)条件表达式满足(true),执行代码块1,否则的话(else),执行代码块2
嵌套分支
if语句的嵌套,在if语句的基础上,再嵌套一个if语句
// if(条件表达式1){
// if(条件表达式2){
// 代码块2
// }else{
// 代码块3
// }
// }else{
// 代码块4
// }
如果当条件表达式1满足的时候,就去看条件表达式2是否满足,如果条件表达式2满足,执行代码块2,如果条件表达式2不满足,执行代码块3,如果当条件表达式1不满足的时候,执行代码块4.
猜数字游戏基础版
<script>
//猜数字
var value=parseInt(Math.random()*100+1);
alert("接下来请输入一个1~100之间的数");
alert("你有8次输入的机会");
var num=Number(prompt("请输入一个1~100之间的数"));
console.log(value);
for(var i=1;i<=8;i++){
if(value==num){
alert("恭喜你对了")
}else if(value>num){
alert("小了");
var num=Number(prompt("请继续输入"));
}else if(value<num){
alert("大了");
var num=Number(prompt("请继续输入"));
}else{
alert("世界和平");
}
}
switch分支语句
判断switch后面的值是否与case后面的值一样.
一样的话就执行case后面的代码块,否则就往下继续读当所有的都不一样时就执行defaulr后面的代码块
// switch (判断的值) {
// case 值1:
// 代码块1
// break;
// case 值2:
// 代码块2
// break;
// case 值3:
// 代码块3
// break;
// default:
// 代码块4
// break;
// }
for循环
for(引进变量;条件表达式;处理);
//for循环
console.log("这是for循环");
for(var i=1;i<=8;i++){
document.write(i+"<br />");
};
for in语句
var content=["卡卡西","我爱罗","薛之谦","佐助","九哪嘛"];
console.log(content);
for(var i in content){
console.log(i+"\n");
console.log(content[i]);
}
var value={
1:"卡卡西",
2:"我爱罗"
};
console.log(value);
for(var i in value){
console.log(i);
console.log(value[i]);
};
while语句
// 语法
// while(条件){
// 代码块
// }
先判断是否满足条件,在指定条件为真的时候执行代码块
var x=1;
while(x<=8){
console.log(x);
x++;
}
do while语句
// do while // while变形体 // do{ // 代码块 // } // while(条件) 先执行一次,然后再判断
var i=1;
do{
console.log(i);
i++;
}
while(i<=8);
break和continue;
break打断(打断循环);
continue跳跃(跳出循环);
变量交换
console.log("变量交换");
var a=1;
var b=2;
console.log("a is"+a+"\t"+"b is"+b);
var content;
content=a;
a=b;
b=content;
console.log("a is"+a+"\t"+"b is"+b);
数组反转
var value=["卡卡西","我爱罗","漩涡鸣人","宇智波佐助","千手","薛之谦","张艺兴","华晨宇"];
console.log("数组反转--->>>");
var content='';
for(var j=0;j<parseInt(value.length/2);j++){
content=value[j];
value[j]=value[value.length-j-1];
value[value.length-j-1]=content;
}
console.log(value);
函数基础
**函数的定义,调用,参数,返回值,作用域,变量,释放内存,预解析
官方定义:是由事件驱动或者当他被调用的时候可以重复使用的代码块
写好一段代码,封装起来,什么时候需要就什么时候用**
函数定义
// 函数定义
// 函数声明定义
// function 函数名(参数,参数){
// }
// 函数名();
// 带参数的函数调用
// function fn(形参1,形参2){
// }
// fn(实参1,实参2)
要求形参的数量与形参的数量相等;
作用域
- 局部作用域
局部JavaScript变量—>>>只能在局部调用的变量
<script>
function FUNC(){
var value="我的愿望是世界和平";
console.log(value);
};
FUNC();
console.log(value);
</script>
- 全局作用域
全局JavaScript变量,在函数外部声明的变量,没有通过var声明的变量,在任何位值都可以访问的到.
全局作用域=显示全局变量+隐式全局变量
显示全局变量
var value = "卡卡西"; //全局 显示全局变量
function fn(){
var value = "我爱罗";
console.log(value);
}
fn();
// 优先在当前得作用域去查找变量,如果当前作用域找不到,逐层向外查找
隐式全局变量
function fn(){
a1 = 996;
a2 = 1024;
}
fn();
console.log(a1);
// 隐式全局变量,在函数体内部没有通过var声明的变量,在当前函数体调用一次以后,就变为全局变量
生命周期
全局变量 当页面关闭以后被删除
局部变量 当前函数运行以后被删除
全局变量多好还是局部变量多好—>>>你猜那肯定是局部变量多好呀!
手动释放内存
delete(不是所有的变量都可以删除)
var value = "卡卡西";
delete(value);
console.log(value);
// 通过var声明的这种显示全局变量不可以用delete删除
content = "我爱罗";
delete(content);
console.log(content);
// null清空
var nl = "大蛇丸";
nl = null;
console.log(nl);
return返回值
把函数当成一个值考虑,return之后的语句不再执行
function fn(a,b){
return a+b;
console.log("我的愿望是世界和平");
}
console.log(fn(456,996));
1452
变量声明提升
会优先把所有的变量提升到顶部
函数声明定义有声明提升,可以先调用,再写函数