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. 小记 ArchLinux 下 Typora 无法输入中文

    今天准备写一篇 Linux 下的打印机文章,打开 Typora 时我发现不管我怎么设置都无法输入中文. pacman -R typora pacman -S typora 重新安装是无效的,我突然想起 ...

  2. Ubuntu14.04 + Text-Detection-with-FRCN(CPU)

    操作系统: yt@yt-MS-:~$ cat /etc/issue Ubuntu LTS \n \l Python版本: yt@yt-MS-:~$ python --version Python pi ...

  3. 安卓Dialog对话框多次显示而闪退的解决办法

    事情是这样子的,我在一个活动中自定义了一个AlertDialog,通过一个按钮点击即可弹出,而后来出现的情况是,第一次点击就没问题, 正常跳出,而第二次就直接程序闪退,然后报The specified ...

  4. 生成代码的代码 之 POJO生成器

    我们在写Java代码时候,有时候需要写一些POJO类,也就是只有一些属性和get, set方法的类.例如,在写REST 服务时候,利用Jersery + Jackson,可以把输入的JSON字符串自动 ...

  5. 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法

    部分转载于: http://blog.csdn.net/georgejin/article/details/1706647 http://www.cnblogs.com/loveyunk/p/6089 ...

  6. (转)使用 db2pd 命令进行监视和故障诊断

    原文:https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.7.0/com.ibm.db2.luw.admin.trb.doc/doc/c00 ...

  7. ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Cannot run program "hive": error=2, No such file or directory

    原因是hive没有设置环境变量 1,vim /etc/profile  (切换root用户) 2.source /etc/profile

  8. CentOS 6.5 安装和使用Gitlab

    环境:CentOS 6.5 x64 min GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. htt ...

  9. Quartz.NET在ASP.NET 中使用

    Quartz.NET 项目地址 http://quartznet.sourceforge.net/ common logging是一个通用日志接口,log4net是一个具体实现 ,也可以使用NLog, ...

  10. How to set background image to a LinearLayout using Android-Universal-Image-Loader ? #594

    You can do it by 2 ways: use loadImage(...) and set layout background in listener (ImageLoadingListe ...