1、函数的最大作用是提供代码复用;

2、JavaScript函数是弱类型语言,定义函数时既不要声明函数的返回值,也不要声明函数的参数列表类型;

语法如下:

 function functionName(parameter-list){
statements;
}

3、函数可以有返回值,也可以无返回值。函数运行过程中遇到一条return语句即返回返回值,函数结束;

 function hello(){
return 6;
} alert(hello());//输出6;

4、局部函数:在函数A内定义一个函数B,则B为局部函数,局部函数B只能在函数A内调用有效,无法在函数A之外调用,如果在函数A之外调用,将会报未定义错误;

 function A(){
//定义局部函数B1;
function B1(){
document.write("局部函数inner1");
}
//定义局部函数B2;
function B2(){
document.write("局部函数inner2");
} //调用局部函数;
B1();//输出"局部函数inner1";
B2();//输出"局部函数inner2";
};
//调用全局函数;
A();
//在函数A外部调用局部函数B1;
B1();//在firefox的firebug下的控制台中可以看到错误提示“B1 is not defiend”;

5、JavaScript允许传递空参数给函数,但是却不允许使用未定义的变量或函数;传递空参数给函数,虽然会得到undefined值,但是浏览器不会报错;但如果使用未定义的变量或函数,浏览器会报未定义错误;

6、如果将一个对象的某个实例方法用“对象名.方法名()”的形式当作函数调用,则既不会得到undefined值,也不会报未定义错误,而是会报“XX  is not a function”错误;

7、匿名函数的创建方式:

方式一:使用new关键字加Function对象创建;

var f = new Function('name','document.write(name)');
//Function对象构造器的参数可以不受限制。
//Function可以接受一系列的字符串参数,其中最后一个参数是函数的执行体;执行体的各语句以分号隔开;

方式二:直接创建;

var f = function(name){document.write(name)};
f('yeeku');

8、可以将一个函数赋给一个普通变量,将一个函数abc赋给一个普通变量f后,通过f()即可调用abc函数,而abc()将失去作用,无法调用,如果调用,将报abc未定义错误;但是在IE中的IE8以下版本的浏览器中却不一样,在IE8以下的浏览器中将一个函数赋给一个普通变量后,将会得到两个一样的函数,两个都可以调用;

var f = function abc(name){
document.write(name);
}
f('yeku');//输出yeku;
abc('yeku');//在firefox中报未定义错误,在IE中输出yeku;

9、函数的局部变量、实例属性和静态属性;

局部变量:在函数中以普通方式声明的变量,包括以var或不加任何前缀声明的变量;

局部变量只能在函数内调用,在函数外调用将会报未定义错误;

实例属性:在函数中以this前缀修饰的变量;实例属性是属于单个对象的,只有对象才可以调用,类如果调用实例属性将会出现未定义错误;

静态属性:在函数中以函数名为前缀修饰的变量;

静态属性是属于类的,只有类才可以调用,对象如果调用静态属性将会出现未定义错误;

JavaScript函数学习要点总结(一)的更多相关文章

  1. JavaScript的学习要点

    概要 了解Javascript历史以及Javascript三个不同组成部分: ECMAScript DOM(文档对象模型) BOM(浏览器对象模型) ECMAScript 目标 掌握Javascrip ...

  2. JavaScript函数学习总结(一)---函数定义

    博客原文地址:Claiyre的个人博客 如需转载,请在文章开头注明原文地址 在许多传统的OO语言中,对象可以包含数据,还可拥有方法,也就是属于该对象的函数.但在JavaScript中,函数也被认为是一 ...

  3. javascript 函数学习

    1.自以为好的部分,更多访问: http://www.runoob.com/js/js-tutorial.html 2.this 3.new 4.闭包 5.自执行

  4. 第一百零二节,JavaScript函数

    JavaScript函数 学习要点: 1.函数声明 2.return返回值 3.arguments对象 函数是定义一次但却可以调用或执行任意多次的一段JS代码.函数有时会有参数,即函数被调用时指定了值 ...

  5. javascript基础学习(五)

    javascript之函数 学习要点: 函数的介绍 函数的参数 函数的属性和方法 系统函数 一.函数的介绍 1.函数就是一段javascript代码.可以分为用户自定义函数和系统函数.   如果一个函 ...

  6. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  7. JavaScript基础学习-函数及作用域

    函数和作用域是JavaScript的重要组成部分,我们在使用JavaScript编写程序的过程中经常要用到这两部分内容,作为初学者,我经常有困惑,借助写此博文来巩固下之前学习的内容. (一)JavaS ...

  8. Javascript函数的简单学习

    第九课函数的定义与调用1:函数的定义    语法格式    function 函数名(数据类型 参数1){//function是定义函数的关键字        方法体;//statements,用于实 ...

  9. Javascript 随机数函数 学习之二:产生服从正态分布随机数

    一.为什么需要服从正态分布的随机函数 一般我们经常使用的随机数函数 Math.random() 产生的是服从均匀分布的随机数,能够模拟等概率出现的情况,例如 扔一个骰子,1到6点的概率应该相等,但现实 ...

随机推荐

  1. meta便签的用法

    1.定义编码规则,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" / ...

  2. NPAPI火狐插件VS2013开发示例

    NPAPI火狐插件VS2013开发示例 下面是我根据网上开发示例自己做的一个demo,并提供代码下载. 开发环境 Windows 8.1 x64 Visual studio 2013 准备工作 首先需 ...

  3. coredata中谓词的使用

    Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配.谓词表示计算真值或假值的函数.在cocoa ...

  4. cf C. Alice and Bob

    http://codeforces.com/contest/347/problem/C 这道题就是求出n个数的最大公约数,求出n个数的最大值,总共有max1/gcd-n个回合.然后判断如果回合数%2= ...

  5. LeetCode_N-Queens

    The n-queens puzzle is the problem of placing n queens on an n�n chessboard such that no two queens ...

  6. 【转】git 学习笔记( 随时更新中…… 最后更新日期201304281518)--不错

    原文网址:http://blog.csdn.net/yasin_lee/article/details/5975070 GIT 是版本管理的未来!   推荐几个GIT教程网站 http://www-c ...

  7. Java宝典(一)

    -switch语句能作用在byte上,能否作用在long上,能否作用在String上? -在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或I ...

  8. python练习linux下创建路径

    #coding=utf-8 import os class MakeDirectory(): def mkdir(self,path): # 去除首位空格 path=path.strip() # 去除 ...

  9. POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心

    参考链接:http://blog.csdn.net/xiaohuan1991/article/details/6956629 (HDU 1257 解题思路一样就不继续讲解) POJ 1065题意:给你 ...

  10. Qt creator 搭配 valgrind 检测内存泄漏

    继上次重载operator new检测内存泄漏失败之后,妥协了.决定不管是否是准确指明哪一行代码出现内存泄漏,只要告诉我是否有泄漏就行了,这样就没有new替换的问题.在开发中,总是一个个小功能的开发. ...