javascript高级程序设计(第3版)笔记——chapter3:基本概念(函数部分)

     2022-04-26     398

关键词:

3.7函数

3.7.1 理解参数

  • ECMAScript 函数不介意传递进来多个参数,也不在乎传递进来的参数是什么数据类型。因为在 ECMAScript 中的参数在内部是用一个数组来表示的。在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
  • 命名的参数只提供便利,但不是必需的。
  • arguments 对象可以与命名参数一起使用。
  • arguments对象的值永远与对应命名参数的值保持同步。不过,这并不是说读取这两个值会访问相同的内存空间。它们的内存空间是独立的,但它们的值会同步。
  • arguments对象的长度有传入的参数的个数决定,不是由定义函数时的命名参数的个数决定的。没有传递值的命名参数将自动被赋予undefined值。
  • ECMAScript 中所有的参数传递的都是值,不可能通过引用传递参数。

arguments对象与命名参数的关系:

 1 function say_hello(var1, var2, var3) {
 2      var len = arguments.length;
 3      alert(len);
 4      for (i in arguments) {
 5          alert(arguments[i]);
 6      }
 7      alert(var1);
 8      alert(var2);
 9      alert(var3);
10 }
11 
12 say_hello(); //0, undefined, undefined, undefined
13 say_hello("first"); // 1, first, first, undefined, undefined
14 say_hello("first", "second", "third"); // 3, first, second, third, first, second, third
15 say_hello("first", "second", "third", "forth");// 4, first, second, third, forth, first, second, third
1 function say_hello(var1, var2, var3) {
2      for (i in arguments) {
3          arguments[i] = "change";
4      }
5      alert(var1 + var2 + var3);
6 }
7 
8 say_hello(1,2,3); //changechangechange

 

3.7.2 没有重载

  • 没有函数签名,真正的重载是不可以做到的。
  • 如果在ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数。
  • 通过检查传入函数中参数的类型和数量并作出不同的反应,可以模拟方法的重载。

没有重载

1 function overLoad (var1) {
2     alert("This is the first function");
3 }
4 
5 function overLoad(var1, var2) {
6     alert("This is the second function");
7 }
8 
9 overLoad(1); //This is the second function

 

模拟重载

 1 function overLoad () {
 2     if (arguments.length === 0) {
 3         alert("first");
 4     } else if (arguments.length === 1) {
 5         alert("second");
 6     } else {
 7         alert("third");
 8     }
 9 }
10 
11 overLoad(); //first
12 overLoad(1); //second
13 overLoad(1,2,3,4); //third

 

javascript高级程序设计(第3版)第五章读书笔记

第五章引用类型创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如:varperson=newObject();person.name=“Nicholas”;person.age=29;第二种是使用对象字面量表示法。如:varperson={name:“Nicholas”,age:29};在最... 查看详情

javascript高级程序设计(第3版)|学习笔记:在html中使用javascript

 标签的位置  如果页面需要很多JavaScript代码,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白。为了避免这个问题,现代Web应用程序一般都把全部JavaScript引用放在<body&g... 查看详情

javascript高级程序设计第三版读书笔记

第三章 基本概念  1.在JavaScript中是区分大小写的,第一个字符是字母_或者$,其他字符可以试数字 字母_或者$,命名格式要求是驼峰式书写(第一个字母小写,剩下的每个有意义的单词开头大写 比如fontSize)  2.单... 查看详情

javascript高级程序设计(第3版)笔记——chapter3:基本概念(函数部分)

3.7函数3.7.1理解参数ECMAScript函数不介意传递进来多个参数,也不在乎传递进来的参数是什么数据类型。因为在ECMAScript中的参数在内部是用一个数组来表示的。在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递... 查看详情

《javascript高级程序设计(第四版)》学习笔记第3章(代码片段)

《JavaScript高级程序设计(第四版)》学习笔记(二)第3章📢大家好,我是小丞同学,最近在刷红宝书,这是一篇学习笔记📢愿你我一起在这肆意生活里大放光彩这是阅读《JavaScript高级程序设... 查看详情

《javascript高级程序设计(第四版)》学习笔记第3章(代码片段)

《JavaScript高级程序设计(第四版)》学习笔记(二)第3章📢大家好,我是小丞同学,最近在刷红宝书,这是一篇学习笔记📢愿你我一起在这肆意生活里大放光彩这是阅读《JavaScript高级程序设... 查看详情

javascript高级程序设计(第3版)-第01章

2017-05-10js简介一个叫“不难登”的人发明的。js的流行是因为ajax的关系。js分为三个部分:核心:ECMAScript文档对象模型:DOM浏览器对象模型:BOM核心:ECMAScript他与浏览器并没什么关系,只是规定了一些语法、类型、关键字... 查看详情

javascript高级程序设计(第3版)pdf

下载地址:网盘下载  内容简介  · · · · · ·本书是JavaScript超级畅销书的最新版。ECMAScript5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很... 查看详情

《javascript高级程序设计》笔记目录

第1章什么是JavaScript第2章HTML中的JavaScript第3章语言基础第4章变量、作用域与内存第5章基本引用类型第6章集合引用类型第7章迭代器与生成器第8章对象、类与面向对象编程第9章代理与反射第10章 查看详情

《javascript高级程序设计(第3版)》.nicholas.c.zakas.扫描版.pdf

下载地址:网盘下载 内容简介编辑本书从最早期Netscape浏览器中的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的JavaScript技巧,以及与在Web应用... 查看详情

javascript高级程序设计(第3版)第三章(基本概念)

3.1语法  1.不以数字开头的数字,字母,下划线,美元符号  2.注释:html<!---->css/**/js单行//多行/**/    3.ES5引入了严格模式(strictmode)。即为js定义的一种不同的解析与执行模型。可以在整个脚本头部或者... 查看详情

《javascript高级程序设计(第四版)》学习笔记第3章(续)(代码片段)

...在这肆意生活里大放光彩📢这是阅读《JavaScript高级程序设计(第四版)》的第三天,本书已阅读82/865第三章真的好多,但是有些又很基础有点乏味,最近 查看详情

《javascript高级程序设计(第四版)》学习笔记第3章(续)(代码片段)

...在这肆意生活里大放光彩📢这是阅读《JavaScript高级程序设计(第四版)》的第三天,本书已阅读82/865第三章真的好多,但是有些又很基础有点乏味,最近 查看详情

javascript之基本概念一

   13年的时候就买了《JavaScript高级程序设计》(第3版)和Jquery的书,平时偶尔也看一两眼,没系统的看,今年定下的目标是学习web,所以打算系统的学习一下。写下JavaScript系列的博客也算是笔记,以后好复习。内容也是按... 查看详情

javascript高级程序设计(第3版)第一章(js简介)

1.我比js早一年2.web浏览器是ECMAScript实现的宿主环境之一。  其它实现ECMAScript的宿主环境包括Node和AdobeFlash3.ECMAScript主要规定js的组成部分:语法,关键字和保留字;            &nb... 查看详情

javascript权威指南(第6版)学习笔记四

第七章数组一、创建数组使用数组直接量是最简单的方法:varempty=[];varprimes=[1,3,5,7,11];varm=[1.1,"a",true];varb=1024;vartable=[b,b+1,b+2];varbc=[[1,{x:1,y:2}],[2,{x:3}]]//如果直接量中省略某个值,则默认赋予undefined值varcount=[1,,3];数组直接量中允许... 查看详情

javascript高级程序设计(第3版)第二章(在html中使用js)

1.script元素的属性(6个):①async(异步脚本),只对外部脚本有效                 ②defer(延迟脚本),只对外部脚本有效      &n 查看详情

javascript权威指南(第6版)学习笔记一

第2章 词法结构一、字符集*JavaScript程序是用Unicode字符集编写的。*JavaScript严格区分大小写。*JavaScript注释:(1)“//”用于单行注释;(2)"/*  ....   */"用于多行注释。*JavaScript使用分号将语句之间分隔;如... 查看详情