资讯专栏INFORMATION COLUMN

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

张宪坤 / 1567人阅读

摘要:之间的项,但不包括结束位置。一个参数,返回从该参数指定位置到当前项末尾的所有项。传入的函数每一项都返回,才返回查询数组中的项是否满足条件。

第五章引用类型

5.1 Object类型

创建Object实例的方式有两种。
第一种是使用new操作符

 var person=new Object();
 person="eve";
 person.age=29;

第二种是对象字面量 **推荐的写法

var person={
      name:"eve",
      age:20
 }

对象字面量的属性名也可以是字符串

 var person={
      "name":"eve",
      "age":20
      5:true //数值属性会自动转换成字符串
 }

 var person={};
 person.name="eve";
 person.age=20;//这种写法和上面的写法等价

一般来说,访问对象属性使用的是点表示法。但也可以使用方括号来访问对象的属性。

alert(person["name"]);
alert(person.name);

5.2 Array类型

创建数组的基本方式有两种。
第一种使用Array构造函数
var colors=new Array();
可以传递数量也可以传递具体数值
var colors=new Array(20);
var colors=new Array{red,blue,green};
也可以省略new 关键字
var colors=Array(20);
var colors= Array{red,blue,green};

第二种是使用数组字面量表示法.
var colors=[red,blue,green];//创建一个包含3个字符串的数组
var names=[];//创建一个空数组
读取项数用length
alert(colors.length);//3
length不是只读的,可以设置这个属性,从数组的末尾移除项和向数组中添加新项。
var colors=[red,blue,green];
colors[colors.length]="black";//在3上的位置添加
colors[colors.length]="brown";//在4上的位置添加
访问索引是length-1;

检测数组
除了用instanceof

 if( value instanceof Array){

//对数组执行某些操作
}
一般用isArray
if(Array.isArray(value)){
//对数组执行某些操作
}区别在于全局作用域

5.2.2 转换方法

所有的对象都具有toLocaleString()、toString()、valueOf()方法

 var colors=["red","blue","green"];
alert(colors.toString());//red,bule,green 返回由数组中值拼接的一个以逗号分隔的字符串
alert(colors.valueOf());//red,bule,green  返回的还是数组
//默认分隔符是逗号,可用join方法改变分隔符
var colors=["red","blue","green"];
alert(colors.join(","));//red,blue,green
alert(colors.join("||")); //red||blue||green       
alert(colors.join()); //red,blue,green  
alert(colors.join(undefined)); //red,blue,green 

不传值或者传入undefined,依旧返回逗号

5.2.3 栈方法

LIFO 后进先出
push()从数组末尾插入并返回修改后数组的长度
pop()从删除数组末尾移除最后一项,减少数组的length长度,并返回移除的项

var colors=new Array(); //创建一个数组
var count=colors.push("red","green"); //推入两项
alert(count);  //2
count=colors.push("black");
alert(count); //3
var item=colors.pop(); //取得最后一项
alert(item); //black
alert(colors.length); //2

5.2.4 队列方法
FIFO 先进先出
shift() 移除数组第一项并返回该项,同时长度减去1
unshift() 在数组第一项添加并返回新数组的长度

   var colors=new Array(); //创建一个数组
    var count=colors.push("red","green"); //推入两项
    alert(count);  //2
    count=colors.push("black");
    alert(count); //3
    var item=colors.shift();//取得第一项
    alert(item); //red
    alert(colors.length); //2

var colors=new Array(); //创建一个数组
var count=colors.unshift("red","green"); //推入两项
alert(count);  //2
count=colors.unshift("black"); //推入另一项
alert(count); //3
var item=colors.pop();//取得一最后项
alert(item); //green
alert(colors.length); //2
ie7集更早的版本其unshift方法总是返回undefined而不是数组的长度 ie8 在非兼容模式下回返回正确的长度值

5.2.5 重排序方法
reverse() 反转数组的顺序
sort() 按升序排列数组 比较的是字符串

function compare (value1,vlaue2) {
        return vlaue2-value1;
    }
 var value=[0,10,1,2,5,15];
 value.sort(compare);
 alert(value); //从大到小的排列 15,10,5,2,1,0

5.2.6 操作方法

concat()连接,把值添加到数组的末尾
slice() 基于当前数组中的一个或多个项创建一个数组。两个参数,返回参数项的起始和结束位置。之间的项,但不包括结束位置。一个参数,返回从该参数指定位置到当前项末尾的所有项。不会影响原始数组
splice() 可以删除、插入、替换,算是最强大的数组方法了。有很多用途,主要用途是向数组中部插入项

 var colors=["red","green","blue","yelllow","browns"];
 var removed=colors.splice(0,3);//删除操作 要两个参数,要删除的第一项的位置和要删除的项数
 alert(colors); //yelllow,browns
 alert(removed); //red,green,blue 返回被删除的项

 removed=colors.splice(1,0,"orange"); //插入操作 ,从位置1,插入一项
 alert(colors); //yelllow,orange,browns
 alert(removed);//返回的是一个空数组

 removed=colors.splice(2,1,"red","purple"); //替换操作 删除当前位置2的项,然后从位置2开始插图red,purple 
 alert(colors);//yelllow,orange,red,purple
 alert(browns); //orange  返回的数组只包括一项

5.2.7 位置方法
indexof() 从数组的开头位置0开始向后查找
lastIndexOf() 从数组的开头向前查找
两个方法都返回要查找项在数组中的位置,没有找到返回-1.都接受两个参数,要查找的项和表示查找起点位置的索引(可选)。
查找特定项在数组中的位置

5.2.8 迭代方法
every()查询数组中的项是否满足条件。传入的函数每一项都返回ture,才返回true
filter()
forEach()
map()
some()查询数组中的项是否满足条件。只要传入的函数有一项返回ture,就返回true
都不会修改数组中包含的值

5.2.9 归并并法

reduce()
reduceRight()

5.3 Date类型
创建日期对象
var now=new Date();
在不传递参数的情况下返回的是当前日期和时间。
如果想得到特定的日期和时间创建日期对象,则需要传入参数
ECMAscripte提供了两个方法:Date.parse()和Date.UTC();
Date.parse()接收一个表示日期的字符串参数,返回相应日期的毫秒数。

var someDate=new Date(Date.parse("May 25,2004"));
可简化为
var someDate=new Date("May 25,2004");

Date.UTC()同样返回日期的毫秒数。参数分别表示年份,基于0的月份,天,小时,秒,毫秒。只有前两个是必须的。
如:

var y2k=new Date(2000,0);//本地时间2000年1月1日
var allFives=new Date(2005,4,5,17,55,55);//本地时间2005年4月5日下午5:55:55

ECMAscript5添加了Date.now()方法。返回调用这个方法时的日期和时间的毫秒数。

var start=Date.now();//取得开始时间
doSomething//调用函数
var stop=Date.now();//取得停止时间
var result=stop-start;

直接方法的浏览器包括iE9,firefox3+,safari3+.opera10.5,chorme;
在不支持的浏览器中科院使用+操作符获取Date对象的时间戳 。

var start=new Date();//取得开始时间
doSomething//调用函数
var stop=+new Date();//取得停止时间
var result=stop-start;

5.3.1继承的方法
便于比较日期时间值

var date1=new Date(2007,0,1);
var date2=new Date(2007,0,1);
alert(date1date1);//false

5.3.2日期格式化的方法
5.3.3日期/时间组件方法
5.4 RegExp类型

5.4.1 RegExp实例属性
5.4.2 RegExp实例方法
5.4.3 RegExp构造函数属性
5.4.4 模式的局限性
5.5 Function类型
5.5.2 函数声明与函数表达式
5.5.3 作为值得函数
5.5.4 函数内部属性
5.5.5 函数属性和方法
5.6 基本包装类型
5.6.1 Boolean类型
5.6.2 Number类型
5.6.3 String
5.7 单体内置对象
5.7.1 Global对象
5.7.2 Math对象

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78442.html

相关文章

  • JavaScript 高级程序设计三版笔记

    摘要:以上是使用转换函数方法时会返回的值在用判断的时候,首先执行了,然后判断为真或假。对象的遍历返回一个数组,包括对象自身的不含继承的所有可枚举属性不含属性的键名。 tip:本文含部分Es6语法 1.if(a)的自动转换 数据类型    转换为true的值       转换为false的值   Boolean      true              false   String  任何...

    tulayang 评论0 收藏0
  • JavaScript 高级程序设计三版笔记

    摘要:以上是使用转换函数方法时会返回的值在用判断的时候,首先执行了,然后判断为真或假。对象的遍历返回一个数组,包括对象自身的不含继承的所有可枚举属性不含属性的键名。 tip:本文含部分Es6语法 1.if(a)的自动转换 数据类型    转换为true的值       转换为false的值   Boolean      true              false   String  任何...

    leo108 评论0 收藏0
  • JavaScript 高级程序设计三版笔记

    摘要:以上是使用转换函数方法时会返回的值在用判断的时候,首先执行了,然后判断为真或假。对象的遍历返回一个数组,包括对象自身的不含继承的所有可枚举属性不含属性的键名。 tip:本文含部分Es6语法 1.if(a)的自动转换 数据类型    转换为true的值       转换为false的值   Boolean      true              false   String  任何...

    opengps 评论0 收藏0
  • javascript高级程序设计三版)学习摘录上

    摘要:在这种情况下,函数在停止执行后将返回值。这种用法一般用在需要提前停止函数执行而又不需要返回值的情况下严格模式对函数有一些限制不能把函数命名为或不能把参数命名为或不能出现两个命名参数同名的情况。 把近期看高程这本书做的笔记摘录整理出来了,总归对原生javascript理论有了一个比较全面的的认识,这次把书中的一些知识要点摘录出来了,便于以后查阅的时候有方向,也更有效率!! 第一章、jav...

    leap_frog 评论0 收藏0
  • 004-读书笔记-JavaScript高级程序设计 基本概念(下)

    摘要:操作符,会将数值改变正数变成负数负数变成正数。同时,也说明了,使用两个逻辑非操作符和的操作结果相同。操作符得到的是余数。不相等操作符有两种。 这篇笔记的内容对应的是《JavaScript高级程序设计(第三版)》中的第三章。 1.操作符 1-1 一元操作符 递增和递减操作符 递增和递减操作符有两个 ++ 和 --。一元操作符使用的时候,可以前置也可以后置。由于两个操作方式类似,先只说明 ...

    nevermind 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<