javascript之函数进阶详解

 更新时间:2021年12月02日 15:41:47   作者:维生素D没有用  
这篇文章主要为大家介绍了javascript函数进阶,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>

函数定义方式

function fn(){}//命名函数
 
var fun=function(){}//匿名函数
 
// new fn=new Funcion("参数1","参数2","函数体"),很少用。
//所有函数都是Function的实例对象(函数也是对象)
var fn=new Funcion("a","b","console.log(a+b)")
console.log(fn instanceof Object)//true

函数的调用(6种)

 

 

 

this指向问题

1.普通函数:window

2.对象方法:实例对象obj1

3.构造函数:实例对象。原型对象里面的this指向的也是 ldh这个实例对象

4.绑定事件函数:事件的调用者button1

5.定时器:window

6.立即执行函数:window

改变函数内部this指向:call(),apply(),bind(),

 

 

 如果有的函数我们不需要立即调用,但是又想改变这个函数内部的this指向此时用bind

 

 

严格模式

 为整个脚本开启或为函数开启:“use strict”;

 严格模型的语法规范:

1.变量使用前必须声明

2.我们不能随意删除已经声明好的变量

3.严格模型下的全局作用域中函数中的this是undefined

4.构造函数不加new调用,this指向undefined,给undefined赋值会报错(。以前指向window,相当于给window添加属性了)

5.定时器this还是指向window 。事件、对象还是指向调用者。

6.参数不能重名 

7.函数必须声明在顶层.新版本的JavaScript 会引入“块级作用域”(ES6 中已引入)。为了与新版本接轨,不允许在非函数的代码块内声明函数。

高阶函数

定义:高阶函数是对其他函数进行操作的函数,它接收函数作为参数(回调函数)或将函数作为返回值输出。

闭包

闭包( closure )指有权访问另一个函数作用域中变量的函数。简单理解就是,一个作用域可以访问另外一个函数内部的局部变量。

闭包的作用:延伸变量的作用范围

闭包练习:

已知:绑定事件、定时器都是异步操作,不会立即执行。

(function(i){...})(i) 立即执行函数会立即执行,参数传给尾部的小括号,function里面的小括号会再次接收这个参数。立即执行函数也称作小闭包,里面的所有函数都可以访问它内部变量。

(1)点击输出当前索引号(面试常见)

 (2)延迟三秒输出<li>中内容 

 (3)

 

 闭包的思考:

 

递归:函数里面调用自己,需要有结束条件

深拷贝与浅拷贝:

1.浅拷贝:只拷贝最上面一层,深层的对象只拷贝了地址,所以原深层数据改变会引起拷贝过来的深层数据改变

Object.assign(objNew,objOld)

2.深拷贝:把所有深层数据值全部拷贝到新对象里面。新旧两个对象的数据修改互不影响。

相关文章

  • Javascript----文件操作

    Javascript----文件操作

    Javascript----文件操作...
    2007-01-01
  • Bootstrap字体图标无法正常显示的解决方法

    Bootstrap字体图标无法正常显示的解决方法

    这篇文章主要为大家详细介绍了Bootstrap字体图标无法正常显示的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Javascript中使用A标签获取当前目录的绝对路径方法

    Javascript中使用A标签获取当前目录的绝对路径方法

    这篇文章主要介绍了Javascript中使用A标签获取当前目录的绝对路径方法,本文讲解的方法比较特别,需要的朋友可以参考下
    2015-03-03
  • Bootstrap每天必学之导航条(二)

    Bootstrap每天必学之导航条(二)

    Bootstrap每天必学之导航条,进一步向大家讲解了导航条养殖,以及导航条中元素的使用方法,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • JS中改变this指向的方法(call和apply、bind)

    JS中改变this指向的方法(call和apply、bind)

    this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象,通过本文给大家介绍JS中改变this指向的方法(call和apply、bind),需要的朋友参考下
    2016-03-03
  • 手把手教你uniapp和uview2.0实现表单校验实战

    手把手教你uniapp和uview2.0实现表单校验实战

    表单提交对大家来说应该都不陌生,这是个很常见的功能,这篇文章主要给大家介绍了关于手把手教你uniapp和uview2.0实现表单校验的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • JavaScript 使用Ckeditor+Ckfinder文件上传案例详解

    JavaScript 使用Ckeditor+Ckfinder文件上传案例详解

    这篇文章主要介绍了JavaScript 使用Ckeditor+Ckfinder文件上传案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • javascript实现避免页面按钮重复提交

    javascript实现避免页面按钮重复提交

    很多时候我们都需要防止重复提交,这方面的文章也比较多,实现的途径差别也很大.因为有些时候即使服务器能够识别重复的提交,也会造成问题.比如需要很长等待时间的操作,在首次提交后,不断重复提交,页面可能会死掉.用脚本来控制的话可以防止这种问题.
    2015-01-01
  • JavaScript 选中文字并响应获取的实现代码

    JavaScript 选中文字并响应获取的实现代码

    当鼠标选择一段文字时,对这个事件产生响应,并且将选中的文字传递出去。
    2011-08-08
  • 微信小程序商城分类滚动列表锚点的项目实践

    微信小程序商城分类滚动列表锚点的项目实践

    本文主要介绍了微信小程序商城分类滚动列表锚点的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论