函数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. XML学习笔记

    XML学习笔记 第一部分:XML简介 我们经常可以听到XML.HTML.XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结. XML(eXtensible Markup L ...

  2. JavaWeb---总结(七)HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和响应,那我们 ...

  3. Ubuntu 12.04 root账户开启及密码重设

    以普通用户登录,root账号的开启.关闭和密码设置,命令如下: sudo passwd -u root # 启用root账户 sudo passwd root # 设置root 密码(包括重设) su ...

  4. StringBuilder 和 StringBuffer

    这两者唯一的不同就在于,StringBuffer是线程安全的,而StringBuilder不是.当然线程安全是有成本的,影响性能,而字符串对象及操作,大部分情况下,没有线程安全的问题,适合使用Stri ...

  5. Myeclipse如何设置字体大小

    由于Myeclipse一般是英文版的,这就给英语不太好的人带来了一定的麻烦,有时连设置个字体都无法顺利进行!!! 工具/原料   Myeclipse 方法/步骤   双击启动Myeclipse 点击& ...

  6. angularjs中ng-selected使用方法

    ng-selected只能应用在option标签上,就像ng-submit只能应用在form标签上一样. ng-selected指令为select设置了指定的选中值,HTML规范不允许浏览器保存类似s ...

  7. MSMQ 学习(1)

    在 Windows Server 2008 or Windows Server 2008 R2 上安装消息队列 4.0 在服务器管理器中,单击“功能”. 在“功能摘要”下的右窗格中,单击“添加功能”. ...

  8. JavaScript 、jQuery动态创建元素的关键字~

    JavaScript动态创建元素: 1.创建元素  如:a 标签 var alink= document.createElement("a"); 2.j添加元素属性 alink.h ...

  9. sudo 出现unable to resolve host 解决方法

    inux 环境, 假设这台机器名字叫dev(机器的hostname), 每次执行sudo 就出现这个警告讯息:sudo: unable to resolve host dev虽然sudo 还是可以正常 ...

  10. 自然语言16_Chunking with NLTK

    Chunking with NLTK 对chunk分类数据结构可以图形化输出,用于分析英语句子主干结构 # -*- coding: utf-8 -*-"""Created ...