函数Function

通过函数封装多条语句,在任何地方执行。javascript函数不会重载,相同名字函数,名字属于后定义的函数通过function关键词声明。

function functionName(arguments){
statement;
}

函数会在执行return语句后停止并退出。return语句之后的任何代码不会被执行。
function say(){
return “hay”;
alert("hay"); //永远不执行
}

return后不带返回值的会返回undefined。

理解参数

  ECMAScript中的参数在内部是用一个数组来表示的,函数接受到的始终是这个数组,而不关心数组中包含哪些参数,

以及参数个数。在函数体内部可以通过arguments对象来访问这个参数数组,从而获取每个参数,实际上,arguments对

象只是与数组类似,它不是Array的实例。

function funcName(arg0, arg1, arg2...argn){
alert(arguments[0]); //可以通过方括号语法访问每个元素
alert(arguments.length) //通过length属性来确定传递进来多少参数
}

  即使没有arg标识符,函数的功能依旧,因为ECMAScript函数的命名参数只提供便利,但不是必须,另外解析器不会验证命名参数。

  arguments的值永远与命名参数值保持同步。

function fuc(num1){
arguments[0] = 10;    //arguments的值会自动反映到参数名,同步的
alert(num1);       //10
}

  但这两个值不是在相同的内存空间中,他们的内存空间是独立的,只是值会同步。arguments的length属性是传入参数确定的不是定义函数参数确定的。

  没有传递的命名参数将自动赋予undefined,

  严格模式重写arguments的值导致语法错误。

总结:

javascript的核心语言特性在ECMA-262中是以名为ECMAScript的伪语言来定义的,ECMAScript定义了基本的语法、操作符、数据类型、和对象,

但没对输入和输出做规定。理解ECMAScript的各种细节,是理解其ECMAScript在WEB浏览器中的实现——Javascript的关键.

  1. ECMAScript 6种数据类型Undefined、Null、Boolean、Number、String、Object
  2. 没有为整数和浮点数定义不同的数据类型,Number类型表示所有数值
  3. 复杂数据类型Object。
  4. 严格模式对易出错得分提供限制“use strict”
  5. 无需指定函数返回值,可在任何时候返回任何值
  6. 未指定函数返回的是一个undefined值
  7. 函数参数是以一个包含多个值的数组形式传递的,可传递任意数量的参数,通过arguments来访问这些参数。
  8. 函数不可重载

Javascript高级程序设计——函数的更多相关文章

  1. Javascript高级程序设计——函数声明与函数表达式的区别

    在Javascript中,函数是Functioin类型的实例,所以函数也具备属性和方法,因为函数是对象,所以函数名自然就是指向对象的指针啦. 函数可以通过声明语法和表达式来定义: 声明:functio ...

  2. JavaScript高级程序设计--函数小记

    执行环境和作用域链   每个函数都有自己的执行环境.当执行流进入一个函数时,函数 的环境就会被推入一个环境栈中.而在函数执行之后,栈将其环境弹出,把控制权返回给之前的执行环境.   当代码在一个环境中 ...

  3. 2020/06/05 JavaScript高级程序设计 函数表达式

    函数表达式 函数定义的两种方式: 函数声明(函数声明提升,非标准name属性可访问给函数指定的名字) 函数声明提升:执行代码前先读取函数声明 function functionName(arg0, a ...

  4. Javascript高级程序设计——函数内部属性与函数属性

    函数内部属性 函数内部有两个特殊的属性arguments和this.其中,arguments是类数组对象,包含传入函数中的所有值,这个arguments还有一个属性:callee,这个属性是一个指针, ...

  5. (读书笔记)函数参数浅析-JavaScript高级程序设计(第3版)

    ECMAScript函数不介意传递的参数个数,因为在其内部是用一个数组进行表示的.在函数体内可以通过arguments对象来访问这个参数数组,就像我们正常访问数组一样处理. arguments对象只是 ...

  6. JavaScript高级程序设计(读书笔记)之函数表达式

    定义函数的方式有两种:一种是函数声明,另一种就是函数表达式. 函数声明的一个重要特征就是函数声明提升(function declaration hoisting),意思是在执行代码前会先读取函数声明. ...

  7. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  8. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  9. 读javascript高级程序设计00-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

随机推荐

  1. ES6之let(理解闭包)和const命令

    ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,E ...

  2. TCP 介绍

    TCP介绍 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络O ...

  3. python wmi使用

    python wmi 官方开发文档https://msdn.microsoft.com/en-us/library/aa394388(v=vs.85).aspx WMI使用的WIN32_类库名 htt ...

  4. ionic的scroll的使用出现的问题

    今天再写ionic的时候发现了一个问题,在使用ui-view的时候引用ion-scroll指令的时候初次加载的时候能能实现拖拽滚动,只能实现滚动鼠标滚轴滚动,然后各种调试,各种比较,终于发现原来是路由 ...

  5. Yocto开发笔记之《驱动调试-GPS数据采集》(QQ交流群:519230208)

    开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...

  6. Objective-C学习笔记之for( int )机制

    NSArray *myArray = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4&q ...

  7. 使用ultraiso制作启动盘

    1.以管理员方式运行Ultralso 2.点击菜单栏里的“启动”菜单下的“写入硬盘映像”命令,打开“写入硬盘映像”对话框. “硬盘驱动器”里就是选择你要刻录的U盘,这里演示用的是一张数码相机的内存卡. ...

  8. WinForm------如何跳转另一个窗口,同时关闭当前窗口

    添加一个按钮,并为按钮添加点击事件(注:Frm_Main为需要跳转的窗口名字) private void Btn_OK_Click(object sender, EventArgs e) { //打开 ...

  9. HTML学习笔记——锚链接、pre标签、实体

    1>锚链接 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  10. ansible加密命令

    ansible-vault用于配置文件加密,如编写的playbook配置文件中包含敏感信息,不希望其他人随意查看,ansible-valut可加密/解密这个配置文件,刚试了下也可以加密txt文档,猜想 ...