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数组使用、栈方法的更多相关文章

  1. JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)

    1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法.   2.有时候需要传递大量可选参数的情形时,一 ...

  2. JavaScript引用类型之Array数组的栈方法与队列方法

    一.栈方法 ECMAScript数组也提供了一种让数组的行为类似与其他数据结构的方法.具体的来说,数组可以变现的向栈一样,栈就是一种可以限制插入和删除向的数据结构.栈是一种LIFO(Last In F ...

  3. JavaScript高级编程——Array数组迭代(every()、filter()、foreach()、map()、some(),归并(reduce() 和reduceRight() ))

    JavaScript高级编程——Array数组迭代(every().filter().foreach().map().some(),归并(reduce() 和reduceRight() )) < ...

  4. JavaScript中的内置对象-8--1.Array(数组)-Array构造函数; 数组的栈方法; 数组的转换方法; 数组的操作方法; 删除-插入-替换数组项; ECMAScript为数组实例添加的两个位置方法;

    JavaScript内置对象-1Array(数组) 学习目标 1.掌握任何创建数组 2.掌握数值元素的读和写 3.掌握数组的length属性 如何创建数组 创建数组的基本方式有两种: 1.使用Arra ...

  5. JavaScript高级编程———JSON

    JavaScript高级编程———JSON < script > /*JSON的语法可以表达一下三种类型的值 简单值:使用与javas相同的语法,可以在JSON中表达字符串.数值.布尔值和 ...

  6. JavaScript高级编程———基本包装类型String和单体内置对象Math

    JavaScript高级编程———基本包装类型和单体内置对象 <script> var stringObject = new String("hello world") ...

  7. JavaScript高级编程———数据存储(cookie、WebStorage)

    JavaScript高级编程———数据存储(cookie.WebStorage) <script> /*Cookie 读写删 CookieUtil.get()方法根据cookie的名称获取 ...

  8. javascript高级编程笔记01(基本概念)

    1.在html中使用JavaScript 1.  <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...

  9. 思维导图(自己整理,希望对大家有用):JavaScript函数+canvas绘图+Array数组

    1.javascript函数: 2.Array数组: 3.canvas绘图:

随机推荐

  1. Python(28)---模块和包的基本概念

    一.模块 定义:在python中,一个 .py 文件就称为一个模块 使用模块的好处:最大的好处就是提高了代码的可维护性 分类(三种): python标准库 第三方模块 应用程序自定义模块 模块导入方法 ...

  2. POJ 2696

    #include<iostream> #define MAXN 1005 #include<stdio.h> using namespace std; int _m[MAXN] ...

  3. Spring框架的演变

    什么是Spring 如果想要解释Spring,那么最难的部分就是对其进行分类.通常情况下,Spring被描述为构建Java应用程序的轻量级框架,但这种描述带来了两个有趣的观点. 首先,与许多其他框架( ...

  4. oracle ASM安装过程中UDEV实现磁盘绑定

    UDEV相较于ORACLE 自己的ASMlib 相对比较成熟. 文章转载自:  Maclean Liu的个人技术博客 [http://www.oracledatabase12g.com/] 在< ...

  5. Oracle 查看当前数据库版本的方法

    常用的有三种方法:   方法一:v$version SQL> select * from v$version; BANNER ---------------------------------- ...

  6. NPOI读取excel文件导出数据, 而此时文件正在打开中抛异常怎么办

    项目中需要用到一些数值表格, 方便起见都是用excel来的. 而如果excel正打开中, 直接使用npoi制作的工具来导出数据的话, 在这一行将会异常: workbook = new XSSFWork ...

  7. Ruby:线程实现经典的生产者消费者问题

    运行结果: ProAndCon 0 produced 1 produced consumed 0 2 produced 3 produced consumed 1 consumed 2 consume ...

  8. storm_常用命令

    1)nimbus:启动nimbus守护进程        storm nimbus 2)supervisor:启动supervisor守护进程        storm supervisor 3)ui ...

  9. Linux下删除Tomcat缓存

    step1:进入Tomcat的bin目录,停止Tomcat服务 ./shutdown.sh step2:进入Tomcat的work目录,删除work目录里面的全部文件 step3.启动Tomcat服务 ...

  10. vuex数据管理-数据共享

    应用场景 提供一个地址省市区地址联动操作的应用场景:在地址管理的地址修改.地址添加.选择送货区域等逻辑中,会用到该联动picker.在地址picker操作中,需要请求省份列表,下面以省份列表的操作为例 ...