JavaScript高级编程——引用类型、Array数组使用、栈方法
JavaScript高级编程——引用类型、Array数组使用、栈方法
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>引用类型</title>
</head>
<body>
<script> /*
创建Object类型实例的方式有两种
1.使用New操作后跟Object构造函数
2.对象字面量表示法
*/ //使用New操作后跟Object构造函数
var person = new Object();
person.name = "Nicholas";
person.age = 18; //与new Object()相同,而且能给人封装数据的感觉
var personlog = {};
personlog.name = "Nicholas";
personlog.age = 18; //对象字面量表示法,在使用对象字面量语法时,属性名也可以使用字符串
var persontwo =
{
name: "Nichola",
age: 29,
5: true
}
console.log(person);
console.log(persontwo); function dispalyInfo(args) {
var output = "";
if (typeof args.name == "string") {
output += "Name:" + args.name + "\n";
}
if (typeof args.age == "number") {
output += "Age:" + args.age + "\n";
}
alert(output);
} dispalyInfo({ name: "Nichholas", age: 29 });
dispalyInfo({ name: "Greg" }); /*
Array类型,创建数组的基本方式有两种 第一种使用Array构造函数,可以设置length值为20的数组,也可以向Array构造函数传递数组中包含的值
var colors = new Array(20);
var colors = new Array("red","blue","green");
在使用array构造函数时,也可以省略new操作符
var colors = Array(20);
var colors = Array("red"); 第两种创建数组的第二种基本方式是使用数组字面量表示法,数组字面量由一对包含数组项的方括号表示,
多个数组项之间以逗号隔开, var names = [];创建一个空数组 */
var colors = new Array();
var colorssplit = ["red", "blue", "green"];
var names = []; alert("colorssplit的数组长度为:" + colorssplit.length); //3
alert("空数组的数组长度为:" + names.length); //0 console.log("toString:" + colorssplit.toString());
console.log("valueOf:" + colorssplit.valueOf());
console.log("colorssplit:" + colorssplit);
alert("使用toString返回数组的值" + colorssplit.toString());
alert("使用valueOf返回数组的值" + colorssplit.valueOf());
alert("直接返回数组的值" + colorssplit); /*
toString和toLocaleString
*/
var person1 =
{
toLocaleString: function () {
return "Nikolaos";
},
toString: function () {
return "Nicholas";
}
}; var person2 =
{
toLocaleString: function () {
return "Grigorios";
},
toString: function () {
return "Greg";
}
}; var people = [person1, person2];
alert("people:" + people);
alert("people.toString:" + people.toString());
alert("people.toLocaleString:" + people.toLocaleString()); console.log("people.toString:" + people.toString());
console.log("people.toLocaleString:" + people.toLocaleString()); //使用join方法,可以使用不同的分隔符来构建这个字符串
var colorjoin = ["red", "blue", "green"];
alert(colorjoin.join(","));
alert(colorjoin.join("||"));
console.log("colorjoin:使用,逗号" + colorjoin.join(","));
console.log("colorjoin:使用||分号" + colorjoin.join("||")); /*栈方法 push方法和pop
push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度
pop()方法则从数组末尾移除最后一项,减少length值,然后返回移除的值
*/
alert("进入栈方法 push方法和pop")
var colorspush = Array(); //创建一个数组
var count = colorspush.push("red", "green");//推入两项
alert("推入(red、green)" + count); count = colorspush.push("black"); //推入另一项
alert("推入(red、green、black)" + count); var item = colorspush.pop(); //取得最后一项
alert("使用pop得到是black:"+item);
alert("使用pop方法数组移除一位,数组长度为:"+colorspush.length); //2
/*
队列方法,栈数据结构的访问规则是Lifo(后进先出),队列在列表的末端添加项,从列表的前端移除项
由于push()是向数组末端添加项的方法,因此要模拟队列只需要一个从数组前端取得项的方法,实现这
一操作的数组方法就是Shift(),它能移除数组中的第一个项并返回该项,同时数组长度减1,
结合使用shift和push就可以像使用队列一样使用数组
ECMAScript还为数组提供了一个unshift()方法,与shift的用途相反
它能在数组前端添加任意个项并返回数组的长度,可以从相反的方向来模拟队列
*/
var colorspop = Array(); //创建一个数组
var countpop = colorspop.push("red", "blue"); //推入两项
alert("推入(red、blue)" + countpop);
countpop = colorspop.push("black");
alert(countpop); var itempop = colorspop.shift(); //取得第一项
alert("使用shift取得第一项:"+itempop); //pop取得是red
alert("使用shift数组长度减一:" + colorspop.length); //返回的length值是2,shift取得第一项,同时数组的长度减1 var colorUnShift = Array(); //创建一个数组
var countUnShift = colorUnShift.unshift("red", "green"); //推入两项
alert("使用unshift推入:" + countUnShift); //2
countUnShift = colorUnShift.unshift("black");
alert("使用unshift再次推入:" + countUnShift); //3
var itemUnShift = colorUnShift.pop();
alert("获取最后一项:" + itemUnShift); //green
alert(colorUnShift.length); //2 </script>
</body>
</html>
JavaScript高级编程——引用类型、Array数组使用、栈方法的更多相关文章
- JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)
1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法. 2.有时候需要传递大量可选参数的情形时,一 ...
- JavaScript引用类型之Array数组的栈方法与队列方法
一.栈方法 ECMAScript数组也提供了一种让数组的行为类似与其他数据结构的方法.具体的来说,数组可以变现的向栈一样,栈就是一种可以限制插入和删除向的数据结构.栈是一种LIFO(Last In F ...
- JavaScript高级编程——Array数组迭代(every()、filter()、foreach()、map()、some(),归并(reduce() 和reduceRight() ))
JavaScript高级编程——Array数组迭代(every().filter().foreach().map().some(),归并(reduce() 和reduceRight() )) < ...
- JavaScript中的内置对象-8--1.Array(数组)-Array构造函数; 数组的栈方法; 数组的转换方法; 数组的操作方法; 删除-插入-替换数组项; ECMAScript为数组实例添加的两个位置方法;
JavaScript内置对象-1Array(数组) 学习目标 1.掌握任何创建数组 2.掌握数值元素的读和写 3.掌握数组的length属性 如何创建数组 创建数组的基本方式有两种: 1.使用Arra ...
- JavaScript高级编程———JSON
JavaScript高级编程———JSON < script > /*JSON的语法可以表达一下三种类型的值 简单值:使用与javas相同的语法,可以在JSON中表达字符串.数值.布尔值和 ...
- JavaScript高级编程———基本包装类型String和单体内置对象Math
JavaScript高级编程———基本包装类型和单体内置对象 <script> var stringObject = new String("hello world") ...
- JavaScript高级编程———数据存储(cookie、WebStorage)
JavaScript高级编程———数据存储(cookie.WebStorage) <script> /*Cookie 读写删 CookieUtil.get()方法根据cookie的名称获取 ...
- javascript高级编程笔记01(基本概念)
1.在html中使用JavaScript 1. <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...
- 思维导图(自己整理,希望对大家有用):JavaScript函数+canvas绘图+Array数组
1.javascript函数: 2.Array数组: 3.canvas绘图:
随机推荐
- Shell - 简明Shell入门06 - 循环语句(Loop)
示例脚本及注释 #!/bin/bash # for循环 for filename in t1 t2 t3 do touch $filename.txt echo "Create new fi ...
- 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器(转)
用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器 现在不用Git,都不好意思说自己是程序员. 当你想用Git,而源代码服务器是Windows系统时,你 ...
- java中result和resultSet
ResultSet: 1,定义 public interface ResultSet 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成. 2,获得 State ...
- 安装ORACLE时 各Linux版本下载地址
oracle linux :https://edelivery.oracle.com/osdc/faces/SearchSoftware 需要注册oracle账号 redhat官方下载 https:/ ...
- 使用安装 php-memcache-client
1.memcache:是一个高效的分布式内存对象缓存系统 2. IES---请求--->服务器(apace) | | |---->会查看memcache.是否有IES想要的内容--> ...
- nginx配置文件 nginx.conf 说明
#user nobody; #开启进程数 <=CPU数 worker_processes 1; #错误日志保存位置 #error_log logs/error.log; #error_log ...
- FineBI学习系列之FineBI的Windows里安装步骤(图文详解)
不多说,直接上干货! 先进入FineBI官网. http://www.finebi.com/product/download/ windows系统里FineBI的安装流程 1.从FineBI官网下载 ...
- MySQL 分组之后如何统计记录条数 gourp by 之后的 count()
SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的 ...
- [Java初探07]__关于面向对象的简单认识
前言 类和对象,在我们学习Java语言的过程中,它们无时无刻不存在着,在我们还远未详细弄明白它们的意义之前,在我们不知不觉的下意识里,我们都会直接或间接的用到它们,这是因为Java是一门面向对象的语言 ...
- Vue笔记:webpack项目vue启动流程
VUE启动流程 1. package.json 在执行npm run dev的时候,会在当前目录中寻找 package.json 文件, 有点类似 Maven 的 pom.xml 文件,包含项目的名称 ...