千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  行业资讯  >  千锋Web前端培训学员分享JS中函数作用域知识点

千锋Web前端培训学员分享JS中函数作用域知识点

来源:千锋教育
发布人:Yolanda
时间: 2019-01-21 15:10:00

  转眼间学习千锋Web前端培训二阶段的课程已经一个月了,我感受到了JS明显比一阶段的HTML和CSS基础难多了。但JS比较有意思,可以实现好多功能。JS函数部分也算是JS重要知识点,好多地方都会用到函数,写一个函数很容易,但写好一个函数,要是理解不到位的话,也是很困难的,就像博客里一些大牛写的代码,完全看不懂!所以说,基础还得掌握牢固。接下来我简单举个例子,给大家分享一下函数中的作用域问题。

  1、作用域的定义:变量或者函数起作用的范围(能够被访问到的区域)

  2、作用域的分类:全局作用域&局部作用域

  全局作用域特点:1)最外层函数和最外层函数外通过var来定义的变量;2)在函数内不通过var来定义的变量(function(){ a=10;})a是全局变量;3)window对象的属性和方法(alert())。

  局部:在es5中函数是七分全局个局部唯一的代码块。特点:1)在函数内通过var定义的变量以及内部定义的函数;2)函数的参数具有局部作用域。

  再者就是声明提升,JS代码运行有两步,预编译和编译,预编译阶段会把函数和声明的变量提升到代码顶部。数组和字符串的方法,有些是重复的,有些容易记混淆,一定要区分记忆。

图片5

  ES5新增的数组和字符串方法:

  1.indexOf: 数组.indexOf(元素) 查找到就返回元素下标,查找不到就返回-1

  2.forEach: 数组.forEach(function(item,index,array){ item:当前遍历到的元素;index:当前遍历到的下标;array:当前数组}) arr.forEach(alert)

  3.map:映射,遍历->操作->返回 数组.map(function(item,index,array){return item+2})

  4.filter: 过滤,数组.filter(function(item,index,array){return item>一个值})找出大于这个值的元素。

  5.some: 判断return后面条件是否成立,如果成立返回ture,否则返回false,如果匹配成功则返回true,后面就不再进行遍历。(只要有一个成立就返回true)arr.some(function(item,index,array){return item>一个值})

  6.every: 跟some一样,但这个必须全部成立才返回true

  7.reduce:对数组中的所有元素调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。arr.reduce(function(pre,next,index,array){pre:上一次遍历return后面的值;next:当前遍历到的元素})

  字符串的方法:

  1.replace() 字符串.replace(匹配的字符串,替换的字符串)

  2.slice() 字符串.slice(start.end)不包括end位

  2.substring() 字符串.substring(start,end);不包括end位(位置可以互换)

  3.substr() 字符串.substr(开始位,截取长度)

  3.split 字符串.split(分隔符) 分割成数组

  在一个就是事件部分的知识:

  scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。

  clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。 (width+padding)

  offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变。该属性和其内部的内容是否超出元素大小无关,只和本来设定的border以及width和height有关 (width+padding+border)

  //获取事件源

  var _target = evt.target || evt.srcElement;

  console.log(_target,this);

  //阻止冒泡:

  evt.stopPropagation();

  evt.cancelBubble = true;

  if(evt.stopPropagation){

  evt.stopPropagation();

  }else{

  evt.cancelBubble = true;

  }

  //阻止默认行为:

  return false;

  e.preventDefault();

  e.returnValue=false;

  以上就是我对这一个月学习内容的一个小总结,在接下来的时间我会继续努力!

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

女孩子适合学it吗?适合哪些专业

2023-02-16

现在学it有前途吗?需不需要培训

2023-02-14

前端开发的未来发展如何?

2020-02-12

最新文章NEW

程序员需要什么条件?有就业目标就好

2023-02-20

学前端要学多久?学完之后好就业吗

2023-02-16

太原it培训班大概需要多少钱?要培训多久

2023-02-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>