Javascript高级程序设计复习——第五章引用类型 【原创】
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高级程序设计复习——第五章引用类型 【原创】的更多相关文章
- Javascript高级程序设计笔记 <第五章> 引用类型
一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...
- 《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 操作方法 ...
- JavaScript高级程序设计:第五章
引用类型 一.object类型: 创建object实例的方式有两种.第一种是使用new操作符后跟Object构造函数,如下所示: var person = new Object(): person ...
- 《JAVASCRIPT高级程序设计》第五章(1)
引用类型是一种将数据和功能组合到一起的数据结构,它与类相似,但是是不同的概念:ECMAScript虽然是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和结构等基本结构.引用类型也被称为“对 ...
- 《JavaScript高级程序设计》第5章 引用类型
5.2.2 转换方法 所有对象都有toString()和valueOf()方法调用数组的toString()方法,会返回一个字符串,由数组中的每个项通过逗号连接而成调用valueOf()还是返回数组 ...
- 《JAVASCRIPT高级程序设计》第五章(2)
一.Date类型 Date类型类型用于保存日期,有以下几种创建方式: //获取当前时间 var now = new Date(); //获取当前时间的毫秒数 var nowSecond = Date. ...
- 《JAVASCRIPT高级程序设计》第三章
<JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子 ...
- 《JavaScript高级程序设计》笔记——第一章到第三章
2019年,新年伊始,我打算好好重读一下<JavaScript高级程序设计>这本前端必备经典书.每天半小时. 以下内容摘自<JavaScript高级程序设计> 2019-2-1 ...
- 《JavaScript高级程序设计》学习笔记(4)——引用类型
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...
随机推荐
- Erlang cowboy 处理不规范的客户端
Erlang cowboy 处理不规范的客户端 Cowboy 1.0 参考 本章: Dealing with broken clients 存在许多HTTP协议的实现版本.许多广泛使用的客户端,如浏览 ...
- Erlang cowboy 处理简单的HTTP请求
Erlang cowboy 处理简单的HTTP请求 原文出自: Handling plain HTTP requests 处理请求的最简单的方式是写一个简单的HTTP处理器.它的模型参照Erlang/ ...
- ZooKeeper leader election
Paxos是分布式应用中解决同步问题的核心.作为应用研发工程师,我们总是倾向于使用一种相对简洁的方式实现复杂的算法.ZooKeeper leader election实现就是一个非常好的参考. 其实现 ...
- 二叉树的建立以及遍历的多种实现(python版)
二叉树是很重要的数据结构,在面试还是日常开发中都是很重要的角色. 首先是建立树的过程,对比C或是C++的实现来讲,其涉及到了较为复杂的指针操作,但是在面向对象的语言中,就不需要考虑指针, 内存等.首先 ...
- vs工具
首页 精选版块 论坛帮助 论坛牛人 论坛地图 专家问答 CSDN > CSDN论坛 > .NET技术 > 非技术区 返回列表 管理菜单 结帖 发帖 回复 关注 [推荐] Visual ...
- 使用Python自动提取内容摘要
https://www.biaodianfu.com/automatic-text-summarizer.html 利用计算机将大量的文本进行处理,产生简洁.精炼内容的过程就是文本摘要,人们可通过阅读 ...
- App上线Check List
1.umeng统计.安全加固等第三方功能到位,本次上线市场列表选择好.2.后台数据库模式准备3.后台数据库数据准备4.后台应用服务器运行检查5.前端界面信息要正确6.前端交互不能出现过度卡顿和经常闪退 ...
- GPU Accelerated Computing with Python
https://developer.nvidia.com/how-to-cuda-Python python is one of the fastest growing and most popula ...
- Effective Java 第三版——40. 始终使用Override注解
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- JDBC连接数据库时候出错
错误提示如下: Fri May 13 09:06:04 CST 2016 WARN: Establishing SSL connection without server's identity ver ...