JS_高程3.基本概念(6)函数
1.ECMAScript中的函数使用function关键字来声明。
eg:
function sum (num1,num2){
alert(num1+num2);
}
sum(3,7);
注意:
在有return语句的函数中,函数会在执行完return语句后停止并立即退出。因此,位于return语句之后的任何代码都永远不会执行。
eg:
function sum (num1,num2){
return num1+num2;
alert("Hello!");//永远不会执行。
}
alert(sum(3,7));
以上代码执行后,会出现内容为“10”的警告框,但是不会出现内容为“Hello!”的警告框,因为函数内部执行完return语句后就停止结束了,不会执行后面的alert(“Hello!”);语句。
2.严格模式下对函数的一些限制
(1)不能把函数命名为evel或是arguments;
(2)不能把参数命名为evel或是arguments;
(3)不能出现两个命名参数同名的情况。
3.理解参数
(1)ECMAScript中的参数在内部是用一个数组来表示的,函数接收到的始终是这个数组,ECMAScript函数不介意传递进来的参数个数以及参数的数据类型,从这一点可以看出,ECMAScript函数不能实现传统意义上的重载。
重载函数的定义:在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。
(2)函数体内可以通过arguments对象访问到参数数组,从而获得传递给函数的每一个参数。
function sum (){
return arguments[0]+arguments[1];
}
alert(sum(3,6));
以上例子说明:
ECMAScript函数命名的参数只提供便利,但不是必需的。
(3)arguments对象的length属性可以获知有多少个参数传递给了函数。
eg:
function howManyArgw(){
alert(arguments.length);
}
howManyArgw("hello",45); //
howManyArgw(); //
howManyArgw(12); //
出现三个提示框,依次是:
(4)开发人员可以利用这一点让函数接收任意个参数并分别实现适当的功能。
eg:
function doAdd(){
if(arguments.length==1){
alert(arguments[0]+10);
}else if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
}
doAdd(20);
doAdd(21,10);
(5)arguments对象可以与命名参数一起使用:
eg:
function doAdd( num1,num2){
if(arguments.length==1){
alert(num1+10);
}else if(arguments.length==2){
alert(arguments[0]+num2);
}
}
doAdd(20);
doAdd(21,10);
(6)arguments的值永远与对应命名参数的值保持同步。
eg:
function add(num1,num2){
arguments[1]=10; //每次执行add函数都会重写第二个参数,将第二个参数的值改为10.
alert(arguments[0]+num2);
}
add(1,2);//本来的值是1+2=3,因为第二个参数的值被改变1+10=11.
注意:
(1)这并不是说着两个值会访问相同的内存空间,它们的内存空间是独立的,但是它们的值会同步。
(2)没有传递值的命名参数将会自动被赋予undefined值。
eg:
function add(num1,num2){
arguments[1]=10;
alert(arguments[0]+num2);
}
alert(typeof(num2));
add(1);
依次出现的提示框:
(3)ECMAScript中的所有参数传递都是值,不可能通过引用传递参数。
JS_高程3.基本概念(6)函数的更多相关文章
- JS_高程3.基本概念(4)操作符
ECMA-262用于操作数据值的操作符包括: 算术操作符 位操作符 关系操作符 相等操作符 ECMAScript操作符的不同之处在于:它能够适用于很多值,包括字符串,数字值,布尔值,甚至是对象.(在应 ...
- JS_高程3.基本概念(3)
1.ECMAScript数值的范围 由于内存的限制,在大多数浏览器中,ECMAScript能够拿保存的数据的范围是 5e-324 ~ 1.7976931348623157e+308,其中最小的数值保存 ...
- JS_高程3.基本概念(2)
1.ECMAScript数据类型 5种简单数据类型,分别是: Undefined Null Boolean Number String 1种复杂数据类型: Object (1)typeof操作符——检 ...
- JS_高程3.基本概念(1)
1.语法 (1)ECMAScript中的一切(变量,函数名和操作符)都是区分大小写的. (2)标识符 标识符的第一个字符必须是字母,下划线或是美元符号. 其他字符可以是字母,下划线,美元符号和数字. ...
- JS_高程3.基本概念(5)语句
1.if语句 2.do-while语句:后测循环语句,循环体内的代码至少执行一次. 3.while语句:前测循环语句. 4.for语句:前测循环语句. 注意:在ECMAScript中不存在块级作用域, ...
- Tensorflow一些常用基本概念与函数(三)
摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的数据IO.图的运行等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系列之三. 1.序言 本文所 ...
- Tensorflow一些常用基本概念与函数(四)
摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的模型训练Training与测试Testing等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系 ...
- JS高程3.基本概念(6)函数
1.ECMAScript中的函数使用function关键字来声明. eg: function sum (num1,num2){ alert(num1+num2); } sum(3,7); 注意: 在有 ...
- JS_高程7.函数表达式(2)递归
递归函数:一个函数通过名字调用自身的情况构成的.eg: //递归实现阶乘 function factorial(num){ if(num <= 1){ return 1; }else{ retu ...
随机推荐
- Visual Studio 2012 Update 3
不知道是不是都关注Win8.1和Visual Studio 2013 preview去了… 貌似没大有人发现2012的update3在update2后2月就出了… ms明显加快了开发速度额… KB a ...
- 在ionic2中集成swiper插件
1. 下载官方的js和css文件分别放在assets下的js和css文件夹,然后在index.html中引入 <!DOCTYPE html> <html lang="en& ...
- Codeforces 1111D Destroy the Colony 退背包 (看题解)
第一次知道这种背包还能退的.... 我们用dp[ i ]表示选取若干个物品重量到达 i 的方案数. 如果我们g[ i ]表示不用第 x 个物品的, 然后选若干其他的物品到达 i 的方案数. if(i ...
- scrapy meta不用pipe用命令-o
1. spider代码: # -*- coding: utf-8 -*- import scrapy from tencent1.items import Tencent1Item import js ...
- 用面向对象重写thread 实现多次调用一个线程
思路: 利用thread类中,run方法在子线程中调用,其他方法在主线程调用,所以将生产者写入主线程,将消费者写入run函数中在子线程中执行,完成生产者消费者模型 注意: 1. 要在 init 函数中 ...
- Centos7服务器中通过编译源码安装MySQL
基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径 在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置 我决定再尝试一下通过编译源码来自定义安装: ...
- hive提前过滤重要性
hive提前过滤 create table sospdm.tmp_yinfei_test_01 ( id string ) partitioned by (statis_date string) ; ...
- 【python】函数式编程
No1: 函数式编程:即函数可以作为参数传递,也可以作为返回值 No2: map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的 ...
- poj 3067 Japan 【树状数组】
<题目链接> 题目大意: 有两个点集,这两个点集从上至下分别从1~n,1~m编号,现在给出n组数据,(x,y),表示左边点集编号为x的点与右边点集编号为y的点相连,现在要求计算这些线段的交 ...
- Diango之通过form表单向服务端发送数据
通过form表单向服务端发送数据 表单元素 表单:form></form>表单用于向服务器传输数据.另外一种向服务端传输数据的方式为ajax. form属性: action:提交表单 ...