JavaScript高级程序设计(二)
一、函数
1.1 JS中函数无重载,同一作用域下定义两个函数,而不会引发错误,但真正调用的是后面定义的函数。例如:
function doAdd(iNum){
alert(iNum+100);
} function doAdd(iNum){
alert(iNum+10);
} doAdd(10);//结果为20,第二个函数覆盖了第一个
1.2 arguments 对象,arguments.length返回传递给函数参数的个数。我们可以用arguments模拟函数重载。
function doAdd(){
if(arguments.length==1){
alert(arguments[0]+10);
} else if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
} doAdd(10);// 输出20
doAdd(30,10)//输出40
1.3 Function类直接创建
var function_name=new Function(argument1,argument2,……,function_body)
//每一个argument都是参数,最后一个是执行主体代码。这些参数都必须是字符串。
var odAdd=new Function("iNum",,"alert(iNum+100)");
1.4 对象类的函数
slice()和String类的一样。
var aStr=["aa","bb","cc","dd"]; var sStr=aStr.slice(1);//当只有一个参数时返回从该位置到数组结尾处所有项。bb,cc,dd
var aStr=["aa","bb","cc","dd"]; var sStr=aStr.slice(0,3);//当只有两个参数时返回他们之间的所有项,不包括第二个位置项。aa,bb,cc
push()//存入数组尾部
pop()//删除最后一个,返回它作为函数值。
shift()//删除第一个项,返回它作为函数值。
unshift()//把一个项放在第一个位置,其余项向后移动一个位置。
sort()//升序排列
1.5 数组迭代方法
every():对数组中每一项运行给定函数,如该函数对每一项都返回true,则返回true;
var numbers = [1,2,3,4,5,6];
var everyResult=numbers.every(function(item,index,array){
return (item >2)});
alert(everyResult);//false
some():对数组中每一项运行给定函数,如该函数对有一项返回true,则返回true;
var numbers = [1,2,3,4,5,6];
var someResult=numbers.some(function(item,index,array){
return (item >2)});
alert(someResult);//true
filter():它利用指定的函数确定是否在返回的数组中包括某一项。
JavaScript高级程序设计(二)的更多相关文章
- JavaScript高级程序设计(二):在HTML中使用JavaScript
一.使用<script>元素 1.<script>元素定义了6个属性: async:可选.表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本 ...
- javascript 高级程序设计 二
这里我们直接进入主题: 在JS刚刚开始的时候,必须面临一个问题,那就是如何使的JS的加载和执行不会影响web核心语言HTML的展示效果,和HTML和谐共存. 在这个背景下<script>标 ...
- javascript 高级程序设计 十二
1.组合使用原型模式和构造函数模式: 由于原型模式创建对象也有它的局限性------有智慧的人就把原型模式和构造函数模式进行了组合. function Person(name, age, job){/ ...
- 《Javascript高级程序设计》阅读记录(二):第四章
这个系列之前文字地址:http://www.cnblogs.com/qixinbo/p/6984374.html 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较 ...
- 《JavaScript高级程序设计(第3版)》笔记-序
很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的 ...
- 读javascript高级程序设计08-引用类型之Global、Math、String
一.Global 所有在全局作用域定义的属性和方法,都属于Global对象. 1.URI编码: encodeURI():主要用于对整个URI编码.它不会对本身属于URI的特殊字符进行编码. encod ...
- JavaScript高级程序设计学习(三)之变量、作用域和内存问题
这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...
- javascript 高级程序设计 一
前言: 作为一个即将毕业.正在实习的大学生,我也默默的进入了开发者的行列.从一开始的c#编码狗到java程序员再到现在的JS开发者,我一直 希望自己可以在这个'万恶'的互联网时代走的更远.但是我还是一 ...
- 《Javascript高级程序设计》阅读记录(七):第七章
<Javascript高级程序设计>中,2-7章中已经涵盖了大部分精华内容,所以摘录到博客中,方便随时回忆.本系列基本完成,之后的章节,可能看情况进行摘录. 这个系列以往文字地址: < ...
- 《Javascript高级程序设计》阅读记录(六):第六章 下
这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 <Javascript ...
随机推荐
- Linux 共享内存 详解
一.什么是共享内存区 共享内存区是最快的可用IPC形式.它允许多个不相关的进程去访问同一部分逻辑内存.如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案.一旦这样的内存区映射到 ...
- 在IFrame中查找IFRAME中的元素的方式
下面是内部iframe找外部mainFrame的情况 var websiteSearchButton = window.parent.parent.document.getElementById(' ...
- 《java入门第一季》之面向对象匿名内部类面试题
面试题一: /* 按照要求,补齐代码 interface Inter { void show(); } class Outer { // ...
- 使用 /sys 文件系统访问 Linux 内核
sysfs 与 /sys sysfs 文件系统总是被挂载在 /sys 挂载点上.虽然在较早期的2.6内核系统上并没有规定 sysfs 的标准挂载位置,可以把 sysfs 挂载在任何位置,但较近的2.6 ...
- Android下NDK开发环境搭建
Android下NDK开发环境搭建 1. AndroidNDK安装与配置 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP部 ...
- 寻找春天 九宫格日记-2014.04.26
写九宫格日记 总会在听到某一首歌的时候泪流满面:总会在看到某个似曾相识的背影的时候惆怅莫名,总会在嗅到某种香味的时候默默发呆,总会在经过某个地方的时候频频回首.生命有限,不要把它浪费在重复别人的生活上 ...
- UML之协作图
面向对象动态建模,用于建立行为的实体间行为交互的四种图,状态图(Stage Diagram),时序图(Sequence Diagram),活动图(Activity Diagram)前面的博客中,我们已 ...
- Ubuntu14.04安装Matlab2013a
source url: http://blog.sina.com.cn/s/blog_ec5021d60102v3ky.html 1. 为方便操作,把Matlab镜像文件(iso)重命名为'Matla ...
- hive使用过的基本命令
命令:完成操作 hive:进去hive show databases:显示 所有database use wizad: 使用database wizad,或者如use aso show tables: ...
- rails项目如何改变已建立的model结构
有时候第一次用rails g model或者scaffold建立数据模型的时候难免会出错,比如字段类型错误或者字段名称错误,甚至少添加或多添加了几个字段哦.这种情况下手动去修改数据结构是比较头疼的,官 ...