小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
  • 什么是闭包?js闭包的2个最大用途以及注意事项

    什么是闭包?js闭包的2个最大用途以及注意事项

    各种专业文献上的"闭包"(closure)定义非常抽象,很难看懂。简单的说,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因……
    134人已经看过了
您的位置:首页 > 前端开发 > Javascript > 原生JS

4第四阶段12 条件分支+判断循+do循环+for循环+函数+函数的参数+函数重载

分类: 原生JS29个赞


// 1.条件分支 判断 switch
let a1 = 2 + 2
switch (a1) {
    //case 相当于 if(key)
    //如果没有break,将会从正确的位置开始,不会检查下一个case,直到碰到break为止
        case 3:
        console.log("等于3")
        break;
    case 4:
        console.log("会执行这个过程4")
        break;
    case 5:
        console.log("等于5")
        break;
    default:
        console.log("输入不在范围内")
        break;
};
/* let a = prompt("a");
if (!!a) {
    a = parseInt(a);
    if (a===0) {
        alert(0);
    }
    if (a===1) {
        alert(1);
    }
    if (a===2 || a===3) {
        alert("2,3")
    }
}
//以上等于
switch (!!a) {
    case 0:
        alert(0)
        break;
    case 1:
        alert(1);
        break;
    case 2:
    case 3:
        alert("2,3")
        break;
    default:
        alert("判断不出来")
        break;
} */
//2.易语言判断循环首  while  循环需要有个出口,没有就是死循环

let sum = 0;
let i= 1;
while (i<=100) {
    i++;
    if(i % 2 == 0) {
        sum = sum + i
    }

}
console.log(sum);

//3.用的比较少 do循环
/* while (还不还钱?) {
    //打你一顿
}
do {
    //打你一顿
} while (还不还钱); */

//4.for 循环  相当于易语言的变量循环首
for (let b1 = 0; b1 < 3; b1++) {
    console.log(b1)
}
//let b1=0,整个循环过程只会执行一次,b1<=3每次执行完i++后都会来检查一次
//i++ 循环体执行以后才来执行一次i++
//for 里面的b1变量用let声明后是内原变量,在循环体外不生效的,之前的var 没有块级作用域 它是生效的,所以不建议用var
//以上for循环也可以用while写
let b2=0;
while (b2<3) {
    console.log(b2);
    b2++
}
//取10以内的奇数
for(let i=0;i<10;i++)   {
    if(i%2 == 0) continue;
    console.log(i)
}

//break,双层直接跳到外面

for(i=1;i<5;i++){
    for(j=1;j<3;j++){
        break;  //默认只能跳一层 
    }
}
//用以下方法可以直接跳出整个循环
out:for(i=1;i<5;i++){
    for(j=1;j<3;j++){
        break out;  //默认只能跳一层   continue也支持
    }
    console.log(i) //i一次也没有被执行
}
console.log("出来了")

//练习对i++和++i的理解
i1=0;
while(++i1 < 5){
    console.log(i1)
}
i2=0;
while(i2++<5){
    console.log(i2)
}
//输入4行6列的0
let i3=1;
while(i3<5){
    i3++;
    console.log("000000")
}
//三角形 第一行一个0,第一行2个0,到6

let str="";
for(let i=1;i<=6;i++){
    for(let y=1; y<=i;y++){
        str = str + "o";break;
    }
    console.log(str) 
}
//倒三角形 第一行6个0,第一行5个0,到1
let str1="";
for(let i=6;i>=0;i--){
    for(let y=0;y<i;y++){
        str1 = str1 +"0";
    }
    console.log(str1);
    str1=""
}

//5,函数 function
function name() {
    console.log("hello world")
} //定义函数
name() //调用函数 可以重复的去调用
function sayHi(){
    return ("hello");
} //函数返回值方法1
function fun(){
    var a=1;  //函数没有写返回值类型,就会返回undefined
    return
}
console.log(sayHi())
console.log(fun())

let a5=10;
function message(){
    let mess = "hello";
    console.log(`${mess}world,${a5}`); //注意这里用的是``反引号,用单引和双引和都不行(查看09课),变量调用方式是${变量名}
}
message()

//以前var的问题  

var n1=10;
function add(){
    var n2=10;
    var n3=n1+n2;
    var n1=20;
    return n1+n3;
}
console.log(add()) //结果是NaN
//如果在函数中用var声明了变量 ,那么所有的变量都会被重新声明在函数内最前面(变量提升,JS会把所有的变量提升在最前),因为n1在函数内部没有声明,所以是NAN
var n1=10;
function add(){
    var n1,n2,n3;
    var n2=10;
    var n3=n1+n2;
    var n1=20;
    return n1+n3;
}
console.log(add()) 
//而let声明不会存在这样的问题

let n11=10;
function add2(){
    let n12=10;
    let n13=n11+n12;
    return n11+n13;
}
console.log(add2()) //结果是40 正确

//6,函数的参数 function(a,b) 
function cs(a,b){
    a = `**${a}**`;
    console.log(`${a},${b}`)
}
cs("你好","你不好")
cs("你坏","你不坏")
let a="Ann";
cs(a,"你好")
console.log(a) //对于文本类型来说 a并没有被修改
//参数可以有默认值
function cs2(a10,b10="我不想说什么"){
    a10 = `**${a10}**`;
    console.log(`${a10},${b10}`)
}
let a10 ="你好";
cs2(a10) //只写了一个值,另一个会用默认值哦 结果 **你好**,我不想说什么
//参数也可以调用函数
function cs3(a100,b100=getText()){
    a100 = `**${a100}**`;
    console.log(`${a100},${b100}`)
}
function getText(){
    return"我也不知道该说什么呀"
}
let a100="你好啊";
cs3(a100)
//如果不写参数也可以传,因为函数默认有arguments伪数组
function ab4(){
    console.dir(arguments)
    if(arguments.length==2){
        return arguments[0] + arguments[1]
    } 
}
console.log(ab4(1,2))

//函数重载

function ab5(){
    let sum=0;
   for(i=0;i<arguments.length;i++){
       sum +=arguments[i]
   }
   return sum
}
console.log(ab5(1,4))

//函数命名  获取什么东西用 get,如getName  getAge,展示什么东西用show开头如showMessage ,要计算什么记过calc,如果calcSum
//要创建每个东西命名用 create createFrom 创建表单 要检查什么用 check 检查权限checkPermission

//小练习 min函数,取两个函数直接的最小值

function min(a,b){
    if(a>b){
        return b
    }
    if(a<b){
        return a
    }
}3
console.log(min(3,-1))

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        let sum=0;
        while(1){
            let value = +prompt("请输入一个数字")  //写+号是因为让他变成数字
            if(!value){
                break;  //break;就是跳出循环 contiue 是到循环尾
            }
            sum+=value;
        }
        alert(sum)
    </script>
</head>
<body>
    
</body>
</html>


小米技术社区