1.JavaScript 函数

1.1 JavaScript 函数定义

函数---完成某一个具体功能的代码块。

JavaScript 使用关键字 function 定义函数J

/*  格式:function functionName(parameters){执行代码} */

注释:function--声明/定义/创建函数的关键字【标志】

functionName--函数名称【自己定义】

(parameters)--参数列表,传递参数【参数是引入函数之外的数据进入本函数】

{}--函数体,包含具体功能的实现代码

函数声明后不会立即执行,会在我们需要的时候调用到。

1.2 函数表达式

函数表达式--将函数保存到一个变量中

var res1 = function () { return "hello"; };  //函数是不需要名称的以上函数 "function(){return "hello";}"是一个匿名函数alert(res1); //res1保存的结果是函数本身alert(res1());//访问函数,保存函数的变量就是函数的名称
window.onload=function(){};  //window.属性function(){}--匿名函数

函数存储在变量中,不需要函数名称,通常通过变量名来调用。

1.3 function() 构造函数

创建函数的方式1:使用关键字 function 定义函数

  function test1() {return "hello";}alert(test1());    //无参数,有返回值的函数
 function test2(name, age) {return name + "," + age;}alert(test2("zhangsan", 23));        //有参数,有返回值的函数

创建函数的方式2: 通过内置的 JavaScript 函数构造器(Function() )定义

 var test1 = new Function("return'hello'");alert(test1());    //无参数,有返回值的
 var test2 = new Function("name", "age", "return name+','+age");alert(test2("张三", 23));      //有参数,有返回值

实际上,你不必使用构造函数定义函数。

1.4函数提升(Hoisting)

函数提升(Hoisting)--- 先用后定义声明

 var res1 = test3("lisi", 23);alert(res1);function test3(name, age) {return name + "," + age;
}

1.5自调用函数---不常用

正常调用函数function test3(name, age) {return name + "," + age;}alert(test3("wangwu", 25));
 无参数,无返回值的自调用函数(function test3() {alert("自调用函数");
})();
有参数,自调用函数(function test3(name) {alert("自调用函数--" + name);})("zhangsan"); 
 有参数,有返回值,自调用函数var res1 = (function test3(name) {alert("自调用函数--" + name);return "hello," + name;})("zhangsan");alert(res1); (打印2次)var res1 = (function test3(name) {return "hello," + name;})("zhangsan");alert(res1); (打印1次)

1.6函数是对象

function test3(name) {alert("自调用函数--" + name);}
alert(typeof test3);  //function

JavaScript 函数可以有 属性 和 方法。

arguments.length 属性返回函数调用过程接收到的参数个数.(arguments.length是函数的一个属性)

function myFunction(a, b) {return arguments.length;}
alert(myFunction(100, 300));
2--函数调用过程接收到的参数个数

toString() 方法将函数作为一个字符串返回(toString()是函数的一个方法)

function myFunction(a, b) {return arguments.length;}alert(myFunction.toString());

2. JavaScript 函数参数

参数是引入函数之外的数据进入本函数进行元素的变量

函数显式参数(Parameters)与隐式参数(Arguments)

2.1显示参数

函数显式参数在函数定义时列出。

 function test1(name, age) {return name + "," + age;}

name,age--显式参数

2.2 隐式参数

函数隐式参数在函数调用时传递给函数真正的值。

arguments 是JavaScript 中内置对象--是一个数组--保存参数值

 function test2() {return arguments[0] + "," + arguments[1];}
alert(test2("zhangsan", 23));

2.3 通过值传递参数

 function test3(name, age) {return name + "," + age;}var res1 = test3("lisi", 24);alert(res1);
//"lisi", 24--参数的具体值【值传递】

2.4通过对象传递参数

 function test3(name, age) {return name + "," + age;}var canshu1 = "王五";  //类型stringvar canshu2 = 25; //类型numbervar res1 = test3(canshu1, canshu2);alert(res1);//canshu1,canshu2---参数是变量--对象【对象传递】alert(canshu1.charAt(0));  //charAt(0)是方法 canshu1变量就是对象charAt() 对象方法 返回在指定位置的字符

3.JavaScript 函数调用

JavaScript 函数有 4 种调用方式。

3.1作为一个函数调用

function myFunction1(a, b) {return a * b;}var res1 = myFunction1(10, 12.5);alert(res1);

myFunction1函数不属于任何一个对象,myFunction1函数全局对象,

全局对象属于当前html网页--浏览器窗口--window对象

myFunction1函数是window对象的函数

var res1=window.myFunction1(10,12.5);alert(res1);

this--当前对象

function myFunction1(a, b) {return a * b;}
var res1=this.myFunction1(10,12.5);
alert(res1);
var stu = {name: "zhangsan",testname: function () {alert(this.name);}}stu.testname();  //调取对象中的方法

3.2函数作为方法调用

var myobj = {name: "zhangsan",age: 23,test1: function () {return this.name + "-" + this.age;}}var res1 = myobj.test1();   //调取对象中的方法alert(res1);

3.3使用构造函数调用函数

   function myFunction(a, b) {this.name = a;return a * b;}

javascript 高级01(函数)相关推荐

  1. JavaScript高级之函数进阶

    1. 函数的定义和调用 1.1 函数的定义方式 函数声明方式 function 关键字 (命名函数) 函数表达式 (匿名函数) new Function() Function 里面参数都必须是字符串格 ...

  2. JavaScript高级(二)|函数进阶+正则表达式

    一.函数进阶 01.函数的定义与调用 1.1函数的定义方式 1.2函数的调用方式 02.this 2.1函数内this的指向 2.2改变函数内部this的指向 2.3 call apply bind总 ...

  3. javascript高级知识点——函数原型

    代码信息来自于http://ejohn.org/apps/learn/. 向函数的原型中添加方法 function Ninja(){} Ninja.prototype.swingSword = fun ...

  4. javaScript高级[二]

    javaScript高级[二] 函数 函数的定义和调用 函数的定义方式 函数的调用方式 this 函数内this指向 改变函数内部this指向 call()方法 apply()方法 bind()方法 ...

  5. 尚硅谷JavaScript高级教程(javascript实战进阶)学习笔记

    前言 这个是我学习过程中的笔记,分享给大家,希望对大家有用. 学习内容是尚硅谷JavaScript高级教程(javascript实战进阶),这里是视频链接. 我在前面有两篇对于web前端HTML和CS ...

  6. JavaScript高级第01天笔记

    本资源由 itjc8.com 收集 JavaScript高级第01天笔记 1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再 ...

  7. javaScript系列 [01]-javaScript函数基础

    [01]-javaScript函数基础 1.1 函数的创建和结构 函数的定义:函数是JavaScript的基础模块单元,包含一组语句,用于代码复用.信息隐蔽和组合调用. 函数的创建:在javaScri ...

  8. JavaScript进阶系列01,函数的声明,函数参数,函数闭包

    本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...

  9. JavaScript高级day02-AM【函数的prototype、显式原型与隐式原型、原型链】

    笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目   录 P15 15.尚硅谷_JS高级_函数的prototype 15:04 1. 函数 ...

最新文章

  1. oracle中的数据集合操作
  2. 实习日记7.13-7.14
  3. Linux c基本知识整理
  4. PPLIVe是如何通过URL来启动程序的?
  5. 【Weiss】【第03章】练习3.7:有序多项式相乘
  6. Druid的外网访问异常
  7. Atitit 可读性的艺术 目录 1. 原则类 1 2. 方法类 2 2.1. 1.8. 选择选择表格化 3 2 2.2. 体现了“声明式编程”的风格,即只要说明意图,而不需要写出处理细节。 2 2
  8. matlab r2014a 序列号,Matlab R2014a 免费版
  9. linux 双mipii摄像头,Toybrick-开源社区-TB-RK3399ProD-imx258摄像头 mipi 错误
  10. 专访Nick McKeown:网络领域的游戏颠覆者
  11. 从《目标》、《凤凰项目》到《持续交付》:DevOps 的过去、现在及未来 | Chat · 预告
  12. 最新最全MTK联发科手机芯片型号及参数汇总
  13. java回顾:MyBatis开发、配置、标签、封装会话工具
  14. 完美日记母公司逸仙电商将收购护肤品牌Eve Lom
  15. 计算机硬盘替换,如何更换笔记本电脑硬盘?
  16. 面试:GET 请求能上传图片吗,已解决
  17. 第十二章 牛市股票还会亏钱-外观模式(读书笔记)
  18. python-设计模式-1
  19. 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换
  20. java计算机毕业设计西安财经大学校园一卡通管理系统源代码+数据库+系统+lw文档

热门文章

  1. LaTeX入门学习-WinEdt
  2. Echarts图表资源,更多资源,Echarts示例
  3. 个人微信公众号搭建Python实现 -个人公众号搭建-总结(14.3.6)
  4. 利用Spring AOP 更新memcached 缓存策略的实现(一)
  5. 遗传算法计算城市距离
  6. java计算机毕业设计网上书店的设计与实现源码+数据库+系统+lw文档+mybatis+运行部署
  7. 第一次使用爱斯维尔(Elsevier)论文模板注意事项
  8. 域名怎么管理,域名管理注意事项有哪些?
  9. 数据恢复软件从iOS恢复短信
  10. 华为交换机不同vlan通过DHCP中继方式获取IP的配置方法