美文网首页js笔记让前端飞程序员
js笔记二十三之函数的操作

js笔记二十三之函数的操作

作者: uplyw | 来源:发表于2018-05-19 22:27 被阅读58次

函数的基本操作

js中的函数

函数是指一段在一起的/可以做某一件事的程序,也叫子程序(OOP的)方法

函数是实现某一功能的方法

创建函数

function [函数名](){
    // 函数体
    // 实现功能的具体的js代码
}

执行函数

函数名() // 把创建的函数执行
函数名() // 这个函数可以执行很多次
...
// 每一次执行都相当于把函数体中实现功能的js代码重新执行了一遍
// 创建函数
function sun(){
    console.log(1+1)
}
// 执行函数
sum() // -> 2
sum() // -> 2
sum() // -> 2

在真实项目中, 我们一般会把实现一个具体功能的代码封装在函数中:

  1. 如果当前这个功能需要在页面中执行多次, 不封装成为函数,每一次想实现这个功能,都需要重新把代码写一遍,浪费时间;而封装在一个函数中, 以后想实现多次这个功能,我们就没有必要重新写代码了,只要把函数重新执行即可,提高了开发效率;
  2. 封装在一个函数中, 页面中就基本上很难出现重复一样代码了,减少了页面中代码的冗余度
    ,提高了代码的重复利用率低耦合 高内聚

我们把以上的特点统称为 函数封装(OOP面向对象编程思想,需要我们掌握的就是类的继承,封装,多态)


函数的核心操作

函数的核心原理

函数作为js中引用类型中的一种,也是按照引用地址来操作的

创建函数

  1. 首先会在当前作用域中声明一个函数名(声明的函数名和使用var声明的变量名是一样的操作,var sum;function sum();这两个名字重复了)
  2. 浏览器首先会开辟一个新的内存空间(分配一个十六进制地址),把函数体中写好的代码当做普通字符串存储在一个内存空间中(创建一个函数如果不执行,函数没有意义)
  3. 把内存空间的地址赋值给之前声明的那个函数名

函数执行

目的: 把之前存储的实现具体功能的js代码执行

"形参赋值"(跳过)
"私有作用域的变量提声"(跳过)
函数执行,浏览器首先会为其开辟一个新的私有作用域(只能执行函数中之前编写的js代码)
把之前创建时候存储的那些js代码字符串拿到私有作用域中,然后把它们变成js代码表达式从上到下执行
"私有作用域是否销毁的问题"(跳过)

闭包

函数执行会形成一个私有的作用域,让里面的私有变量和外界互不影响(相互不干扰,无眠的无法获取里面的变量值),此时可以理解为私有作用域把私有变量保护起来,把这种保护机制称之为闭包

栈内存

作用域(全局作用域/私有作用域): 提供一个供js代码执行的环境

堆内存

所有的引用类型,它们需要存储的内容都在堆内存中(相当于一个仓库,目的是存储信息)
对象会把键值对存储进来
函数会把代码当做字符串存储进来

相关文章

  • js笔记二十三之函数的操作

    函数的基本操作 js中的函数 函数是指一段在一起的/可以做某一件事的程序,也叫子程序(OOP的)方法函数是实现某一...

  • JS操作属性、JS换肤、JS操作style属性、JS操作clas

    JS操作属性: JS换肤: JS操作style属性: JS操作class: JS中括号操作属性: JS函数: JS...

  • JS操作属性、函数

    JS操作style属性 JS操作class属性 函数 匿名函数 函数传参 作业 if练习 switch练习

  • koltin的常用操作符 (2018-12-10)

    koltin的常用操作符(参考他人进行整理,用于个人笔记) 内联扩展函数之 let 内联扩展函数之 with 内联...

  • JS-12day

    1、js操作style属性 2、js操作属性 3、js函数 4、js换肤 5、js换肤可控制 6、js中括号操作属...

  • 前端(十三)2

    1.js操作class 2.js中括号操作属性 3.js函数 4.变量和函数预解析 5.匿名函数 7.函数传参 8...

  • JS面试之对象(2)

    序列文章 JS面试之函数(1)JS面试之数组的几个不low操作(3) 前言 一篇彻底搞懂对象,从此不用担心没对象啦...

  • 2018-12-01

    js中括号操作属性 js函数 js换肤 变量和函数预解析 匿名函数 函数传参 函数return关键字 流程控制语句...

  • jQuery入门

    jQuery是js的函数库。 功能: html元素选择与操作 css操作 html事件函数 JS特效和动画 Htm...

  • 好程序员web前端培训分享web测试之Js中的函数

    好程序员web前端培训分享web测试之Js中的函数,在JS中,一般使用函数其实就是为了封装某些操作,或者把编写的程...

网友评论

    本文标题:js笔记二十三之函数的操作

    本文链接:https://www.haomeiwen.com/subject/huaadftx.html