5.1  Object类型

1:创建Object实例的两种方式

①new构造法

var obj1 = new Object();   注意大写!不传递参数时可以省略圆括号
obj1.hehe = "nmb";

②对象字面量表示法

var obj1 = {
hehe : "nmb"
};

在使用对象字面量语法的时候,属性名可以使用字符串(new方法会出现undefined string的提示)

var obj1 = {
"hehe" : "nmb"
}; var obj1 = {
hehe : "nmb"
}; //上面两句等价,均使用obj1.hehe进行引用;若是使用obj1."hehe"引用,无论哪种方式都无法成功;

var o ={}; 与 var o = new Object();等价

2:方括号表示法来访问对象的属性——特点是属性名为变量或包含空格,为关键字时才使用方括号表示法

alert(obj["hehe"]);---方括号中的属性名需要以字符串的形式访问

3:所有对象都具有一些基本的属性和方法

比如:toString(),valueOf(),hasOwnProperty()..


5.2Array类型

1:创建数组的方式

//new构造法
var colors = new Array(); var colors = new Array(20); var colors = new Array("red","blue"); //数组字面量表示法
var colors = ["red","blue"]; var names = [];

2:检测数组

Array.isArray();

3:转换方法

Array.toString();返回由逗号分隔开的拼接字符串

Array.valueOf();返回的依旧是数组本身不变

alert(Array);由于alert()要接收字符串参数,所以会在后台调用toString()方法,与toString()方法相同

Array.join();方法可以使用不同的分隔符来构建这个字符串如:Array.join("||")-->red||blue

4:数组对象的各种方法

①push();pop();(返回长度)推入后面,后入先出——栈

②unshift();shift();推入前面,先入先出——队列

③reverse();sort();——重排序

④concat(传递一个或多个参数);slice(传递1-2个参数,新建一个从初始位置到结束位置之前一位的数组);splice(要删除的第一项,删除的项数,填充的项)——操作方法

⑤indexOf(),lastIndexOf()——位置方法(传递1-2个参数,搜索目标和起始位置)

⑥every(),filter(),forEach(),map(),some()——迭代方法

⑦reduce(),reduceRight()——归并方法


5.3 Date类型

1:创建Date类型(不传入参数则自动获取当前日期和时间)

var now = new Date();

2:Date方法

Date.parse();——接收一个表示日期的字符串参数,然后返回相应的日期毫秒数如

var someDate = new Date(Date.parse("May 25, 2004"));

var someDate = new Date("May 25,2004"); //如果无法识别则返回NAN,由于直接将字符串传递给Date会自动调用Date.parse()所以上面两式结果相同
var someDate = new Date();
//如果不传入参数则自动获得当前日期和时间

Date,UTC();——只有前两个参数年月是必填的

var someDate = new Date(Date.UTC(2005,4,5,17,55,55));
var someDate = new Date(2005,4,5,17,55,55);
//GMT事件2005年5月5日下午5:55:55

上面两种方法均返回表示日期的毫秒数

var datenow2 = Date.now();

var datenow2 = +new Date();

//上面均可以获得当前日期的毫秒数,通常可以用于计算

3.继承的方法

Date.toString()——返回带有时区信息的日期和时间

Date.valueOf()——返回日期的毫秒表示

由于关系运算符运算的是对象时,会自动调用对象的valuOf()后比较,所以可以方便的进行比较

var date1 = new Date(2007,0,1);
var date2 = new Date(2007,1,1); alert(date1<date2);
//true

4:Date对象还有很多用于设置和取得日期值中特定部分的方法P102

比如:Date.getTime();——返回表示日期的毫秒数,与ValueOf()返回值相同;


5.4 RegExp正则


5.5 Function类型

1:创建函数

①函数声明(函数提升,但是无法直接跟圆括号调用)

function sum(s1,s2){

  return s1+s2;

}

②函数表达式

var sum = function(s1,s2){

   return num1+num2;

};

【注】:不带括号的函数名是访问函数指针,而非调用函数;函数表达式有分号结尾,函数声明则没有!

2:函数内部属性

①有两个特殊的对象:arguments和this

I.arguments.callee == 该参数所属的函数名

function sum(s1,s2){

  return arguments.callee;

     //此时的arguments.callee == sum
}

II.caller属性保存着调用当前函数的函数的引用

function outer(){
inner();
} function inner(){
alert(inner.caller);
} outer(); //此处对outer()的调用会显示outer函数的源代码

3:函数属性和方法

①length属性表示希望接收的命名参数的个数;

②prototype属性——toString(),valueOf();

③每个函数都包含两个非继承而来的方法call和apply——传递参数,扩充作用域

④bind方法——创建一个函数实例,其this会被绑定到传给bind()函数的值

例子如下

window.color = "red";
var o = {color: "blue"}; function sayColor(){
alert(this.color);
} var objectSayColor = sayColor.bind(o);
objectSayColor();
//blue

⑤函数继承的toString(),valueOf()方法均返回函数代码


5.6基本包装类型——Boolean/Number/String

1:引用类型与基本包装类型的区别就是对象的生存期,自动创建的基本包装类型的对象只存在于一行代码的执行瞬间,然后立即被销毁

var s1 = "some text";

s1.color = "red";

alert(s1.color);

//undefined

2:Boolean对象没什么用,建议永远不要使用。

3:Number类型

①toString(x)——x表示转化成几进制的字符串形式

②toFixed(x)——x表示按照指定的小数位返回数值的字符串表示

③toExponential(x)——使用科学记数法记数,x表示输出结果中的小数位数

4:String类型

①length——返回字符串字符数(包括空格)

②charAt(x)——返回x处的字符

var str = "hello world";
alert(str.charAt(1));
//e

③ECMASCRIPT定义了另一个访问个别字符的方法[]

var str = "hello world";
alert(str[1]);
//e

④concat()——类似数组的相同方法,但是返回的不是数组而是拼接后的字符串(一般情况下使用+代替)

⑤slice(),substr(),substring()——均是对字符串进行处理后返回处理结果(互相可以替换,效果差不多)

⑥indexOf(),lastIndexOf()——类似数组的方法,接收两个参数,查询值和从哪里开始查询

⑦trim(),trimLeft(),trimRight()——删除前置后置的空格/删除前置空格/删除后置空格

⑧toLowerCase(),toUpperCase()——小写大写转换

⑨字符串的模式匹配方法——与RegXep到时候一起总结

split(x指定分隔符,y指定返回数组大小)——模式匹配很好用的方法


5.7 单体内置对象

1.Global对象

①eval()方法

接受一个参数,即要执行的ECMAScript字符串;

eval("alert('hi')");

在执行了字符串后,会将执行结果插入到原位置,与eval()处于相同的作用域链中

var mes = "hello world";
eval("alert(mes)");
//hello world

②Web浏览器将Global这个全局对象作为window对象的一部分来实现,因此在全局作用域中声明的所有变量和函数,都成了window对象的属性

var color = "red";
function sayColor(){
alert(window.color);
}
window.sayColor();
//red

2.Math对象

①属性

Math.E,Math.PI………………

②Math.max(1,2,3,4);Math.min(1,2,3,4);

要取得数组中的最小值可以用apply方法

var val = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math,values); //虽然书上的方法是这里
var max = Math.max.apply(this,values);  //但是经测试这种写法也是OK

③Math.ceil()——向上舍入,Math.round()——向下舍入,Math.floor()——标准舍入(四舍五入),Math.random()

Javascript高级程序设计复习——第五章引用类型 【原创】的更多相关文章

  1. Javascript高级程序设计笔记 <第五章> 引用类型

    一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...

  2. 《javascript高级程序设计》第五章 reference types

    第5 章 引用类型5.1 Object 类型5.2 Array 类型 5.2.1 检测数组 5.2.2 转换方法 5.2.3 栈方法 5.2.4 队列方法 5.2.5 重排序方法 5.2.6 操作方法 ...

  3. JavaScript高级程序设计:第五章

    引用类型 一.object类型: 创建object实例的方式有两种.第一种是使用new操作符后跟Object构造函数,如下所示: var  person = new  Object(): person ...

  4. 《JAVASCRIPT高级程序设计》第五章(1)

    引用类型是一种将数据和功能组合到一起的数据结构,它与类相似,但是是不同的概念:ECMAScript虽然是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和结构等基本结构.引用类型也被称为“对 ...

  5. 《JavaScript高级程序设计》第5章 引用类型

    5.2.2 转换方法 所有对象都有toString()和valueOf()方法调用数组的toString()方法,会返回一个字符串,由数组中的每个项通过逗号连接而成调用valueOf()还是返回数组 ...

  6. 《JAVASCRIPT高级程序设计》第五章(2)

    一.Date类型 Date类型类型用于保存日期,有以下几种创建方式: //获取当前时间 var now = new Date(); //获取当前时间的毫秒数 var nowSecond = Date. ...

  7. 《JAVASCRIPT高级程序设计》第三章

    <JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子 ...

  8. 《JavaScript高级程序设计》笔记——第一章到第三章

    2019年,新年伊始,我打算好好重读一下<JavaScript高级程序设计>这本前端必备经典书.每天半小时. 以下内容摘自<JavaScript高级程序设计> 2019-2-1 ...

  9. 《JavaScript高级程序设计》学习笔记(4)——引用类型

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...

随机推荐

  1. PHP 查询脚本

    POST查询以表格传参数支持中文,GET不支持. POST查询: <?php $id=$_POST["id"];//id(中括号)为传来的参数,$id为php中的变量 //l ...

  2. OpenCV——照亮边缘

    具体的算法原理可以参考: PS滤镜,照亮边缘 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_ ...

  3. Oracle ERP系統借贷关系表

    系统分步骤产生的分录: 1)库存模块作接收时产生的分录为: 借:材料采购 (采购单价X订单数量) 贷:应计负债 (采购单价X订单数量) 2)库存模块作检验入库时产生的分录为: 系统产生的分录分别为: ...

  4. Set对象常用操作方法和遍历

    Set<String> set = new HashSet<String>(); /** * set的常用操作方法有: * add()向集合添加元素 clear()清空集合元素 ...

  5. JAVA线程与线程、进程与进程间通信

    I.线程与线程间通信 一.基本概念以及线程与进程之间的区别联系: 关于进程和线程,首先从定义上理解就有所不同1.进程是什么?是具有一定独立功能的程序.它是系统进行资源分配和调度的一个独立单位,重点在系 ...

  6. JavaScript中两个对象数组 属性undefined

    var BaiduUsers = []; var UserArray = function(name, phone, id, id2) { this.name = name; this.phone = ...

  7. tomcat启动非常慢;连接oracle数据库失败,jdbc错误日志提示connection reset;测试主机间网络互通及数据库端口都正常

      [判断确认:这时候大家可能要去检查一下/dev/random 这个设备档案.可以用cat /dev/random 来看它的内容,如果你发现他一直没显示任何内容﹝可能是乱码数字之类的﹞,那就是它出问 ...

  8. 用sql获取一段时间内的数据

    我把我CSDN写的   搬来博客园了.. SELECT * FROM 表名 WHERE timestampdiff(MINUTE, SYSDATE(), send_time) <=60 AND ...

  9. Colossus: Successor to the Google File System (GFS)

    Colossus is the successor to the Google File System (GFS) as mentioned in the recent paper on Spanne ...

  10. Android Data Binding使用笔记

    说在前面:先来三个文档,官网文档:https://developer.Android.com/topic/libraries/data-binding/index.html 官网文档的汉化版:http ...