黑马JavaScript基础--Day4

Day4

  1. 函数 function name(参数1,参数2){ 代码 函数体 },是代码简化,使代码复用。
  2. 函数命名规范:(1)和变量名基本一致 (2)小驼峰 (3)使用动词开头
  3. 函数的调用: 函数名加()  function sayHello(){}   sayHello( );  函数写完不是立即调用的,要使用函数名来调用才生效。
  4. 函数的参数:fucntion(参数列表),例如一个求和的函数,你传入两个参数,计算并且返回这两个参数的和
  5. 有形参、实参。形参,就是在funtion函数声明时的是形参数,在调用的时采用的是实际参数。保持实际参数和形式参数一致。
  6. 参数默认设置,形参可以看作变量,如果用户不赋值默认是undefined,   

我们在函数声明时:给出默认参数:例如

function getSum(x=0,y=0){ return x+y }

当调用函数getSum时,如果参数参数,使用传入的参数,如果没有传入参数,那就使用默认值。

  1. 封装一个函数,数组求和。

把数组当作参数传入函数参数,只有数组才有长度,如果函数参数写,一个普通的参数,那么用户输入的其他值,在后面使用arr.length时,就会报错。因此,函数参数写arr=[ ],就避免了,默认给一个空数组。

  1. 实参可以是变量,可以输入你声明或者赋值的变量。
  2. 函数的返回值:

例如,prompt函数有返回值,但是alert函数就没有

函数返回值,采用return来返回,return 的结果就是函数的返回值。没有返回值的函数的返回类型就是undefined 。return能结束函数,但是函数执行到return时,直接结束函数。因此return 后面的代码不会执行,因此,return 写在函数的最后面最佳。return 后面的数据不要换行。

返回多个值,return [max,min] 多个,采用数组的形式

  1. 封装一个函数,求两个数字的最大值、最小值。(使用return来返回,多个返回值)
  2. 两个同名函数,后面一个会覆盖前面一个
  3. 函数参数不匹配:(1)参数过多,自动省略多余参数
  1. 参数过少,少的为undefined
  1. 作用域:限定变量名有效的范围。
  2. 全局作用域:作用与代码执行的整个环境(整个script标签(js文件)内)
  3. 局部作用域:作用与函数内的环境,跟函数关系有关
  4. 根据作用域的不同,变量可以分为全局变量和局部变量。全局:let定义的、函数(for)之外。局部:let定义的、函数中之内的。
  5. 特殊情况:如果函数内部直接赋值了一个变量,没有声明,也当作全局变量来看,但是强烈不推荐。
  6. 形参也是局部变量,在函数之外也不可以使用。
  7. 如果函数中还嵌套了函数,在函数嵌套函数中还可以定义函数,局部作用域下还有局部作用域。
  8. 匿名函数:简单来说就是没有名字的函数。 function(){} 函数没有名字,无法直接使用。
  9. 匿名函数的使用:
    1. 函数表达式: let  fn=funtion(){ },现在fn这个变量就相当于函数的名字,可以调用(后期WebAPI会使用)
    2. 立即执行:避免全局变量的污染。 (function(){console.log(1) })() 函数立即执行(第二个小括号写参数,第一个小括号写函数形参列表)
    3.  
    4. 案列:把用户输入的时间(秒)自动转换为时,分,秒
    5. 公式:h=parseInt(  s/60/60%24 )
    6. /* 直接把输入阶段报错也返回本函数,解决学需要刷新
    7.         问题,然后采用三元输入符号,判断
    8.         */
    9. 代码:        function getTimer() {
    10.             let second = +prompt("请输入秒数:")
    11.             let h, m, s
    12.             if (second <= 0) {
    13.                 alert("输入错误!请重新输入!")
    14.                 return getTimer()
    15.             }
    16.             if (second > 0) {
    17.                 h = parseInt(second / 60 / 60 % 24)
    18.                 m = parseInt(second / 60 % 60)
    19.                 s = parseInt(second % 60)
    20.                 h = h < 10 ? '0' + h : h
    21.                 m = m < 10 ? '0' + m : m
    22.                 s = s < 10 ? '0' + s : s
    23.             }
    24.             return `转换完毕后是${h}小时${m}分${s}秒`
    25.         }
    26.         document.write(getTimer())
    27.  
    28. 逻辑中断:在形参列表不写默认参数,而采用逻辑中断:
    29.        存在于   && 左边为false就短路   ||左边为true就短路,通过左边的到式子结果。
    30. 逻辑&&
    31. false &&22  false&& 3+5    一假则假 左边为假,就不执行右边。例如:
    32. a=10  conssole.log(false&& a++ )   console.log(a)  a为10,++操作没用逻辑中断了
    33. 逻辑||  输出 false
    34. a=10  console.log(11||age++) console.log(a)  一真则真,没必要看左边值,左边不执行。 输出 11
    35. 特殊: console.log(22&&99)  输出99
    36.        console.log(22||99)   输出22    
    37. console.log(undefined||00)  输出 00    undefined在逻辑中当0(假)
    38.  
  10. 转换为布尔型:  
  1. Boolean(李成林) Boolean(  ) 字符串空为假,其他全真
  2. 数字0为假,其他全真
  3. undefined为假
  4. Null 假
  5. NaN 假
  6. Flase 假
  7. - 减法会使 (空字符串为0)
  8. Null经过数字转换为0  null++1=0
  9. NaN+1=NaN

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值