JavaScript-Function基础知识

function

1.  定义:一段预先设置的代码块,可以反复调用,根据输入参数的不同,返回不同的值;

2.  函数的声明方法:

(1)function 命令声明函数  function  fname(  ){    };

(2)函数表达式: var  a=function( ){    } ;

(3)Function 构造函数:var a=new Function(  )  ;    ——不常用;、

3.  函数的覆盖:   函数若被重复声明,后面的声明会覆盖前面的声明;

4.  函数的调用方法:(1)、()运算符    funcName( )  ,()可以加入函数的参数;

(2)、 window . funcName( )

5.return :   函数体内部可以加入return语句,return所带的表达式是函数返回值;

6.不允许在非函数代码中声明函数,允许函数套函数;

 

7.(1)name属性: 返回紧跟在function关键字之后的那个函数名;

(2)length属性: 返回形参的个数;

(3)arguments (类数组) :返回函数实参的个数;

函数传参:形参,实参

function abc( 形参1,形参2,.......形参n){

... 实参1,2,.....n

 判断实参arguments,且arguments 类似数组                }
 
8.  函数的参数不是必需的,js允许省略参数;
 

9.  自执行函数 :(1)  (function(){   code } )();

eg:   ( kk=function(){

                alert("测试自执行");                     })();        
             (2)(function(){   code } ());

eg: ( LL=function(){                alert(‘22222‘);                    }()) ;

(3) !function(){ code }();
                 eg: !function(){                alert(‘3333‘);                    }();

10.  函数的作用域(scope):变量存在的范围;

    1、全局作用域            (整个window都可以调用)    2、函数(局部)作用域     (指的是函数内部变量)

(1)在函数外部声明的变量就是全局变量(global  variable);在函数内部可以使用全局变量(整个window都可以调用);

(2)在函数内部定义的变量,外部无法读取,称为“局部变量”;

11.闭包

函数内部声明变量一定要用var,否则声明了一个全局变量;

闭包本质:将函数内部和外部连接起来的桥梁,可以简单理解为函数套函数。

闭包的用处: 1.读取函数内部变量

2.让这些变量始终保持在内存中,闭包使它的诞生环境一直存在

3.封装对象的私有属性和私有方法

---------------------------------------------以下内容来自搜索整理------------------------------------------------

闭包原理及应用

1.为什么需要闭包?

保护函数内的变量安全。在内存中维持一个变量。

通过保护变量的安全实现JS私有属性和私有方法(不能被外部访问)

2.怎么释放被闭包的变量内存?

在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。因为函数a被b引用,b又被a外的c引用,这就是为什么函数a执行后不会被回收的原因。

3.代码中函数a的内部函数b,被函数a外面的一个变量c引用的时候,这就叫创建了一个闭包。有时候函数b也可以用一个匿名函数代替来返回,即return function(){};

优点:1.保护函数内的变量安全,加强了封装性

     2.在内存中维持一个变量(用的太多就变成了缺点,占内存)
      闭包之所以会占用资源是当函数a执行结束后, 变量i不会因为函数a的结束而销毁, 因为b的执行需要依赖a中的变量。

4.不适合场景:返回闭包的函数是个非常大的函数

闭包的典型框架应该就是jquery了。
闭包是javascript语言的一大特点,主要应用闭包场合主要是为了:设计私有的方法和变量。
这在做框架的时候体现更明显,有些方法和属性只是运算逻辑过程中的使用的,不想让外部修改这些属性,因此就可以设计一个闭包来只提供方法获取。

5.闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

<---------学习笔记,谢谢指正!-------->

时间: 2024-11-09 14:43:18

JavaScript-Function基础知识的相关文章

javascript的基础知识及面向对象和原型属性

自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; console.log(typeof num); // 1.2 in 运算符 作用:判断指定属性是否存在于指定的对象中. 如果指定的属性存在于指定的对象中,则 in 运算符会返回 true. 语法: 属性 in 对象 返回值:true 或者 false 示例: var obj = { age: 18 };

整理JavaScript高级基础知识

整理JavaScript高级基础知识 因为空余时间很多..所以博客更新频率得相对频繁些.. 原型以及原型链 考察原型以及原型链: var object = {} object.__proto__ === Object.prototype // 为 true var fn = function(){} fn.__proto__ === Function.prototype // 为 true fn.__proto__.__proto__ === Object.prototype // 为 true

JavaScript 之基础知识

JavaScript 基础知识 JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript 是因特网上最流行的脚本语言. JavaScript 很容易使用!你一定会喜欢它的! JavaScript 简介 在数百万张页面中,JavaScript 被用来改进设计.验证表单.检测浏览器.创建cookies,等等等等.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的

[JavaScript]ES5基础知识总结

1.JavaScript是一门动态语言,ES6的出现弥补了Js在大型项目上的乏力(有了"类"). 以下是关于ES5的基础知识: 2. JavaScript 与C++或Java 这种传统的面向对象语言不同,它实际上压根儿没有类.该语言的一切都是基于对象的,其依靠的是一套原型(prototype)系统.而原型本身实际上也是一种对象. 3. 封装:封装概念常由两部分组成:(1)相关的数据(用于存储属性)(2)基于这些数据所能做的事(所能调用的方法) 4. 在JavaScript 中,还有一种

JavaScript语言基础知识总结

1: JavaScript  DOM的基本操作: 2:JavaScript变量的用法 3:JavaScript函数基础 4:JavaScript流程语句 5 : JavaScript数据类型 6:JavaScript数组的应用 7:JavaScript运算符 8:JavaScript正则表达式 9:JavaScript字符串操作函数 10: window 操作对象

JavaScript入门基础知识总结(3)

/* JavaScript基础学习总结 *******该总结用DW写作,为了调试方便,将影响测试的部分以注释形式写出****/ //所有测试以alert()函数显示 //1.JavaScript特殊字符 //在JavaScript中你可以用反斜杠来表示一个特殊字符,来看例子 //    代码     输出 //    \'     单引号 //    \"     双引号 //    \&     和号 //    \\     反斜杠 //    \n     换行符 //    \r

JavaScript学习----基础知识

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JavaScript Study Basi

JavaScript入门基础知识总结(2)

/* JavaScript基础学习总结 *******该总结用DW写作,为了调试方便,将影响测试的部分以注释形式写出****/ //所有测试以alert()函数显示 //1.if条件句 function funIf(){ var date = new Date();//得到一个新的日期 var time = date.getHours();//从日期中得到当前的小时 if(time < 10){ alert("早安!"); }else if( time < 13){ ale

JavaScript的基础知识

一.做CSS案例 通过案例掌握一些CSS的样式属性:定位.浮动等内容 二.JavaScript基本知识 1.JS简介 Netscape公司开发的一种脚本语言 ,并且可在所有主要的浏览器中运行. JS运行在浏览器中,客户端脚本. JavaScript 的正式名称是 "ECMAScript".这个标准由 ECMA 组织发展和维护 2.JS的组成部分 核心(ECMAScript) :数据类型.语句.声明等:核心对象 文档对象模型(DOM) :Document Object Model(XML

JavaScript 常用基础知识

1.数据类型: 1)原始类型: String Boolean Number Null Undefiend 2)引用类型:Object .......... 总结:为什么老生常谈数据类型呢?在开发中他们到底数据类型有什么指引,我从不纠结Null到底是Object类型还是Undefiend类型,没意义的东西不需要花费时间.但是,这里他告诉我们的是:原始类型永远是对象的拷贝,传值不传址:然而,引用类型则传的是引用,改变一个对象的引用会影响对象本身!所以,一定要记住5大原始数据类型. /** 原始类型操