ECMAScript function的理解

ECMAScript 函数与其他语言函数最大的不同在于,其不介意传入多少参数以及参数的类型
比如函数的形参有两个,但是调用函数传入的参数可以写一个,三个或不写参数(对应undefined)等,解析器都可以正常解析,这是因为
ECMAScript中参数在内部是以一个数组形式来表示,故而不需要关系传入参数的数量和类型
在函数体内通过arguments对象来访问这个参数数组,从而获取传递给函数的参数
修改命名参数值不会改变arguments对应值
可以通过arguments.length来获得传给函数参数的个数,依次,可以来写不同的实现方法
ECMAScript没有重载的概念,重名函数,其后会覆盖前面相同定义的,但是可以通过上一点模仿重载

基本类型 引用类型

引用类型,可以添加属性和方法
基本类型和引用类型值在复制变量值的差异,引用类型是通过指针对象来实现的
参数传递,二者都是通过值传递的
instanceof来检测具体的引用类型

demo代码 写一遍 理解一遍

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>js高程学习笔记2 demo</title><script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script><style type="text/css"></style><script type="text/javascript">function jsFunction(demoNum){switch(demoNum){case 1: sayHi("Jim"," nice to meet you");break;case 2: sayHi();break;case 3: sayHi2("Jim"," nice to meet you");break;case 4: doAdd(10);break;case 5: doAdd(10,2000);break;}}// 有参数的function sayHi(name,message){alert("hello "+name+message);}// 通过arguments获取参数function sayHi2(){alert("hello "+arguments[0]+arguments[1]);}// 通过arguments.length实现重载的功能function doAdd(){if(arguments.length == 1){alert(arguments[0] + 10);}else if(arguments.length == 2){// 修改命名参数值不会改变arguments对应值 //arguments[1] = 100; alert(arguments[0]+arguments[1]);}}function test(){var person = new Object();setName(person);alert(person.name);}function setName(obj){obj.name = "Nicholas"// 引用变量的参数传递 也是值传递// obj = new Object();// obj.name = "Jim";}</script>
</head>
<body><div class="content">js函数的理解,数值变量,引用变量</div><hr/><div class="jsFunction"><div>js函数的一些demo</div><input class="demo1" type="button" value="sayHi" onclick="jsFunction(1)"><input class="demo2" type="button" value="sayHi2" onclick="jsFunction(2)"><input class="demo3" type="button" value="sayHi2" onclick="jsFunction(3)"><input class="demo4" type="button" value="doAdd(10)" onclick="jsFunction(4)"><input class="demo5" type="button" value="doAdd(10,20)" onclick="jsFunction(5)"></div><hr/><div class="dataType"><div>数值类型 引用类型</div><input class="demo6" type="button" value="setName" onclick="test()"></div>
</body>
</html>

javascript高程3 学习笔记(二)相关推荐

  1. javascript高程3 学习笔记(三)

    执行环境 执行环境是什么? javascript的解释器每次开始执行一个函数时,都会为每个函数创建一个执行环境(execution context). 执行环境定义了变量或者函数有权访问的其他数据,决 ...

  2. JavaScript高级程序设计学习笔记二(在HTML中使用JavaScript)

    在 HTML 中使用 JavaScript 在html中使用JavaScript脚本有两种方式一种是嵌入在HTML中的脚本,另一种是引入外部的脚本.两种方式都离不开<script>元素. ...

  3. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  4. GEE(Google Earth Engine) 最基础代码学习笔记二 —— JavaScript 语言

    GEE(Google Earth Engine) 学习笔记二 Javascript 语言 1. 注释 print('Hello World!'); 如果要注释,则在代码前面加//,比如: // pri ...

  5. Mr.J-- jQuery学习笔记(二十一)--模拟微博页面

    先看之前的节点操作方法:Mr.J-- jQuery学习笔记(二十)--节点操作方法 Mr.J-- jQuery学习笔记(五)--属性及属性节点 Mr.J-- jQuery学习笔记(十一)--事件委托  ...

  6. JavaScript高级程序设计学习笔记(三)

    分享一下第五章(引用类型)的笔记,内容比较多,我拆成了两部分,今天这部分是关于Object.Array.Date和RegExp类型的. 以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识, ...

  7. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  8. 码匠社区学习笔记(二)

    所需资料 教程视频地址 Bootstrap spring模板 elasticsearch中文社区(想模仿的效果) 码云aAuth 获取授权用户的资料 github第三方授权文档 码匠社区学习笔记(二) ...

  9. ES6学习笔记二arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

最新文章

  1. 【技术应用】【informix】 c++版 数据库通用操作
  2. Linux操作系统下利用SSH进行远程控制
  3. 【已解决】github中git push origin master出错:error: failed to push some refs to(亲测)
  4. [PHP] 现代化PHP之路:composer的镜像站设置
  5. Flutter 系列文章:Flutter Icon 控件介绍
  6. android-线程池-最顺手的写法
  7. 因为造轮子,我一个月就转正了 | 原力计划
  8. maven打包所有依赖
  9. 在linux下使用ftp客户端命令
  10. C/C++ inline 函数
  11. 每日学习笔记(17)
  12. HBase: 看上去很美
  13. matlab基础与应用教程 王月明,MATLAB基础与应用教程
  14. cnvd与cnnvd区别_漏洞都是怎么编号的CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD
  15. 【实用】excel中创建项目进度计划
  16. 虚拟机vm安装 黑群晖 DS3617xs 6.2
  17. 【论文学习】Large-scale Video Classification with Convolutional Neural Networks
  18. 微积分同济大学第三版下
  19. 关于一个杯子的测试用例
  20. 个人腾讯云服务器的搭建

热门文章

  1. mac下安装配置mongodb
  2. 多线程同步中sleep与wait区别
  3. 【python】闭包
  4. 《Python编程从入门到实践》学习笔记8(第9章:类)
  5. windows下sshfs挂载远程文件夹-server could not connect故障解决
  6. 设计模式C++实现——组合模式
  7. 判断任意控制台输入的十进制数是否为水仙花数
  8. android应用崩溃的调试方法
  9. oralce10g中约束与列属性NULLABLE的关系
  10. Git.之.最小化配置