当前位置: 首页 > news >正文

网站建设好推荐无锡今日头条新闻

网站建设好推荐,无锡今日头条新闻,国产真实母子视频做那里有网站,网站域名如何查询函数进阶 函数提升 函数提升与变量提升比较类似,是指函数在声明之前即可被调用 好处:能够使函数的声明调用更灵活 函数提升出现在 相同作用域 当中 //可调用函数 fn()//后声明函数 function fn() {console.log(可先调用再声明) } 注意:函数表…

函数进阶

函数提升

函数提升与变量提升比较类似,是指函数在声明之前即可被调用
好处:能够使函数的声明调用更灵活
函数提升出现在 相同作用域 当中
//可调用函数
fn()//后声明函数
function fn() {console.log('可先调用再声明')
}
注意:函数表达式不存在提升的现象
//调用表达式,不存在提升现象
bar()  //错误var bar = function() {console.log('函数表达式不存在提升哦')
}

函数参数

动态参数
arguments 是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参
function sum() {// console.log(arguments) arguments是伪数组let s = 0for (let i = 0; i < arguments.length; i++) {s += arguments[i]}console.log(s)}sum(3, 3)  //6
总结:
1. arguments 是一个伪数组, 只存在于函数中
2. arguments 的作用是动态获取函数的实参
3. 可以通过for循环依次得到传递过来的实参
剩余参数   (提倡使用)
剩余参数允许我们将一个不定数量的参数表示为一个数组
function getSum(...other) {console.log(other)  //使用的时候不需要写...//other 得到 [1,2,3]
}
getSum(1,2,3)
  • ... 是语法符号,置于最末函数形参之前,用于获取多余的实参
  •  借助 ... 获取的剩余实参,是个真数组,只存在于函数中
function getSum(a,b,...other) {console.log(a,b,other)  //里面的 other 也可以换成其他字母哦
}
getSum(1,2,3,4) //1 2 [3,4]
展开运算符(…)
数组中使用, 将一个数组进行展开,不会修改原数组
典型运用场景:
求数组最大值(最小值)
const arr = [1,2,3,4]
console.log(...arr)  //1 2 3 4//...arr === 1,2,3,4
console.log(Math.max(...arr))  //4
console.log(Math.min(..arr))   //1
合并数组
const arr1 = [1,2]
const arr2 = [3,4]
const arr3 = [...arr1,...arr2] 
console.log(arr3)  //[1,2,3,4]

箭头函数(重要)

引入箭头函数的目的是更简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更简洁
更适用于那些本来 需要匿名函数的地方

基本写法

//普通写法
const fn = function () {console.log('我是普通函数哦') 
}
fn()
//箭头函数
const fn = () => {console.log('俺是箭头函数')
}
fn()
只有一个参数可以省略小括号
//普通函数
const fn = function (x) {return x + x
}
consle.log(fn(1))  //2//箭头函数
const fn = x => {return x + x
}
console.log(fn(1))  //2
如果函数体只有一行代码,可以写到一行上,并且无需写 return 直接返回值
//普通函数
const fn = function(x,y){return x+y
}
fn(1,2)  //3
//箭头函数   一行代码的时候可以省略大括号,也可以省略return
const fn = (x,y) => x+y
console.log(fn(1,2))  //3//更简洁的语法
const form = document.querySelecor('form')
form.addEventListener('click', ev => ev.preventDefault())
加括号的函数体返回对象字面量表达式
const fn1 = uname => ({name : uname})
console.log(fn1('俸涛'))

 箭头函数属于表达式函数,因此不存在函数提升

箭头函数参数

箭头函数没有 普通函数的arguments 动态参数,但是有 剩余参数 ..args(args可以用任意字母替代)

const getSum = (...args) => {let sum = 0for(let i = 0; i < args.length; i++){sum += args[i]
}
return sum  //注意函数体有多行代码时,要用return 
}
console.log(getSum(1,2,3))  //6

箭头函数 this

箭头函数更适用于那些本来 需要匿名函数的地方
箭头函数不会创建自己的this ,它只会从自己的作用域链的 上一层 沿用this
console.log(this)  //此处为 windowconst sayHi = function(){console.log(this)  //普通函数指向调用者 此处为window
}
sayHi()const sayHi = () => {console.log(this)  //箭头函数此处this为 window,并不是window调用了此函数,而是上一层作用域的this
}
sayHi()btn.addEventListener('click',function(){console.log(this)   //当前this 指向 btn 
})btn.addEventListener('click',() => {console.log(this)   //当前this 指向 window
})
//对象方法箭头函数 this
const user = {name:'小明',//该箭头函数中的 this 为函数声明环境中 this 一致walk: () => {console.log(this)  //指向 window 不是 user
}
}
user.walk()
const user = {name:'小明',sleep: function () {console.log(this)  //指向 userconst fn = () => {console.log(this)  //指向 user  //普通函数的this 指向的是它的调用者,箭头函数的this指向的是其上一层的调用者
}
//调用箭头函数
fn()}
}
user.sleep()
在开发中【使用箭头函数前需要考虑函数中 this 的值】,事件回调函数使用箭头函数时,this 为全局的 window,因此
DOM事件回调函数为了简便,还是不太推荐使用箭头函数
//获取DOM 节点
const btn = document.querySelector('.btn')//箭头函数 此时 this 指向了 window
btn.addEventListener('click', () => {console.log(this)
})//箭头函数 此时 this 指向了 DOM对象   
//所以推荐使用这种情况
btn.addEventListener('click',function() {console.log(this)
})

路漫漫其修远兮,吾将上下而求索

http://www.yidumall.com/news/1933.html

相关文章:

  • 宁德工程建设监督网站百度怎么发布广告
  • 海口网站建设公司关键词排名推广方法
  • 推进门户网站建设seo培训学校
  • wordpress小型商城南昌seo管理
  • 什么是网络营销的职能网站seo优化服务
  • html网站标题怎么做的合肥关键词快速排名
  • 山东省建设工程领域挂证存颖网站上海哪家seo好
  • 电子商务网站规划与设计网络黄页平台网址有哪些
  • 长沙营销网站建设公司数字营销包括哪六种方式
  • 长沙企业做网站抖音推广方式有哪些
  • 网站建设销售开场seo外链专员
  • 豪柏大厦做网站的公司识万物扫一扫
  • 做网站怎么推广seo推广软件排行榜
  • 做众筹网站要什么资质朋友圈产品推广文案
  • 大连免费营销型建站网络推广上海seo优化公司
  • 企业网站源码模板百度平台我的订单查询在哪里
  • php网站在线打包源码厦门seo全网营销
  • 合肥公司网站搭建服务商百度一下百度搜索首页
  • 做网站需要资质吗百度权重提升
  • 黄岩做网站安卓aso
  • 本地建站教程深圳百度推广
  • 丹阳做网站合肥网络推广营销
  • 高校网站建设申请怎么写百度一下你就知道百度首页
  • 企业网站如何做微信营销全网网络营销
  • 网站优化建设山东什么是网络推广
  • 东莞市网络优化推广平台黑河seo
  • 某某网站建设策划书2000字长沙seo网络优化
  • app开发与网站建设难度排名优化课程
  • 七牛云做网站百度sem是什么
  • 网络建设与维护提升seo排名