12.js基础知识-函数进阶和正则表达式

函数进阶

  • 能够说出函数的多种定义和调用方式
  • 能够说出和改变函数内部this的指向
  • 能够说出严格模式的特点
  • 能够把函数作为参数和返回值传递
  • 能够说出闭包的作用
  • 能够说出递归的两个条件
  • 能够说出深拷贝和浅拷贝的区别

1.函数的定义和调用

1.自定义函数:function fn(){};2.函数表达式:var fun = function(){};3.利用new Function('参数1','参数2','函数体')函数也属于对象

2.函数的调用方式:

1.普通函数:fn();fn.call();;this指向window

2.对象的方法:o.sayHi();;;this指向该方法所属对象

3.构造函数:new star();;;this指向实例对象,原型对象里面的方法也指向实例对象

4.绑定事件函数:but.onclick = function(){};;;this指向绑定事件对象

5.定时器函数:setInterval(function(){},1000);;;this指向window

6.立即执行函数(function(){立即执行})();;;this指向window

2.this

改边函数内部的this指向:bind();call();apply()

call(参数,实参,实参)方法,第一个可以调用函数,第二个可以改边函数内的This指向,第三个可以实现继承

apply()方法调用了一个函数,就是调用函数的方式,但是它可以改边函数的this指向fun.apply(thisArg在fun函数运行时指定的this值,[argsArray]传递的值,必须包含在数组里面)返回的就是函数的返回值,因为它就是调用函数

数组中没有求最大值的方法1,但是字符串中有,于是Math.max.apply(this,数组参数)

bind()捆绑绑定,它不会调用原来的函数,会改边this指向,返回的是原函数改变之后的新的函数

call()一般用作继承,apply经常和数组相关,bind不调用函数改边定时器指向

3.严格模式

'use strict'为整个脚本开启严格模式

4.高阶函数

高阶函数是对其他函数进行操作的函数,它接受函数作为参数或将函数作为返回值输出

5.闭包

一个函数里的作用域调用了另外一个函数里的变量,这个变量所在的函数就是闭包

闭包主要作用延申了变量范围

利用闭包获取当前Li的索引号()();是立即执行函数,(function(i){})(i);

立即执行函数又叫小闭包

6.递归

如果一个函数可以在内部调用其本身,那么这个函数就是递归函数

深拷贝和浅拷贝

浅拷贝只是拷贝一层,更深层次对象级别的只拷贝地址,这样修改参数会影响原参数

深拷贝拷贝多层,每一级别的数据都会拷贝

Object.assign(target,sources)es6新增方法可以浅拷贝

正则表达式

  • 能够说出正则表达式的作用
  • 能够写出简单的正则表达式
  • 能够使用正则表达式对表单进行验证
  • 能够使用正则表达式替换内容

1.正则表达式

1.正则表达式是用于匹配字符串中字符串组合的模式,在js中正则表达式也是对象

2.正则表达式在js中的使用

1.利用RegExp对象来创建正则表达式:var regexp = new RegExp(/123/)

2.通过字面量创建:var rg = /123/;

3.test()正则对象方法,用于检测字符串是否符合该规则,该对象会返回true或false,其参数是测试字符串regexxObj.test(str)

/表达式/[swicth]switch按照什么模式来匹配,有三种:g全局匹配,i忽略大小写,gi全局匹配+忽略大小写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值