javascript 高级01(函数)
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(函数)相关推荐
- JavaScript高级之函数进阶
1. 函数的定义和调用 1.1 函数的定义方式 函数声明方式 function 关键字 (命名函数) 函数表达式 (匿名函数) new Function() Function 里面参数都必须是字符串格 ...
- JavaScript高级(二)|函数进阶+正则表达式
一.函数进阶 01.函数的定义与调用 1.1函数的定义方式 1.2函数的调用方式 02.this 2.1函数内this的指向 2.2改变函数内部this的指向 2.3 call apply bind总 ...
- javascript高级知识点——函数原型
代码信息来自于http://ejohn.org/apps/learn/. 向函数的原型中添加方法 function Ninja(){} Ninja.prototype.swingSword = fun ...
- javaScript高级[二]
javaScript高级[二] 函数 函数的定义和调用 函数的定义方式 函数的调用方式 this 函数内this指向 改变函数内部this指向 call()方法 apply()方法 bind()方法 ...
- 尚硅谷JavaScript高级教程(javascript实战进阶)学习笔记
前言 这个是我学习过程中的笔记,分享给大家,希望对大家有用. 学习内容是尚硅谷JavaScript高级教程(javascript实战进阶),这里是视频链接. 我在前面有两篇对于web前端HTML和CS ...
- JavaScript高级第01天笔记
本资源由 itjc8.com 收集 JavaScript高级第01天笔记 1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再 ...
- javaScript系列 [01]-javaScript函数基础
[01]-javaScript函数基础 1.1 函数的创建和结构 函数的定义:函数是JavaScript的基础模块单元,包含一组语句,用于代码复用.信息隐蔽和组合调用. 函数的创建:在javaScri ...
- JavaScript进阶系列01,函数的声明,函数参数,函数闭包
本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...
- JavaScript高级day02-AM【函数的prototype、显式原型与隐式原型、原型链】
笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目 录 P15 15.尚硅谷_JS高级_函数的prototype 15:04 1. 函数 ...
最新文章
- oracle中的数据集合操作
- 实习日记7.13-7.14
- Linux c基本知识整理
- PPLIVe是如何通过URL来启动程序的?
- 【Weiss】【第03章】练习3.7:有序多项式相乘
- Druid的外网访问异常
- Atitit 可读性的艺术 目录 1. 原则类	1 2. 方法类	2 2.1. 1.8. 选择选择表格化	3	2 2.2. 体现了“声明式编程”的风格,即只要说明意图,而不需要写出处理细节。	2 2
- matlab r2014a 序列号,Matlab R2014a 免费版
- linux 双mipii摄像头,Toybrick-开源社区-TB-RK3399ProD-imx258摄像头 mipi 错误
- 专访Nick McKeown:网络领域的游戏颠覆者
- 从《目标》、《凤凰项目》到《持续交付》:DevOps 的过去、现在及未来 | Chat · 预告
- 最新最全MTK联发科手机芯片型号及参数汇总
- java回顾:MyBatis开发、配置、标签、封装会话工具
- 完美日记母公司逸仙电商将收购护肤品牌Eve Lom
- 计算机硬盘替换,如何更换笔记本电脑硬盘?
- 面试:GET 请求能上传图片吗,已解决
- 第十二章 牛市股票还会亏钱-外观模式(读书笔记)
- python-设计模式-1
- 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换
- java计算机毕业设计西安财经大学校园一卡通管理系统源代码+数据库+系统+lw文档
热门文章
- LaTeX入门学习-WinEdt
- Echarts图表资源,更多资源,Echarts示例
- 个人微信公众号搭建Python实现 -个人公众号搭建-总结(14.3.6)
- 利用Spring AOP 更新memcached 缓存策略的实现(一)
- 遗传算法计算城市距离
- java计算机毕业设计网上书店的设计与实现源码+数据库+系统+lw文档+mybatis+运行部署
- 第一次使用爱斯维尔(Elsevier)论文模板注意事项
- 域名怎么管理,域名管理注意事项有哪些?
- 数据恢复软件从iOS恢复短信
- 华为交换机不同vlan通过DHCP中继方式获取IP的配置方法