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绘图:
随机推荐
- 脱壳系列—— 揭开so section加密的美丽外衣
i春秋作家:HAI_ 0×00 前言 对so的加密,https://bbs.pediy.com/thread-191649.htm大神的帖子里已经很详细的说明了.当然加密不是我们研究的重点,如何搞掉这 ...
- Linux学习笔记-基本操作5
1. Linux文件操作相关函数 stat函数 :获取文件属性(从inode上获取) 返回值: 成功:0 ...
- [原创]K8一句话密码爆破工具{秒破10万} 支持ASP/PHP/ASPX/JSP/CFM/DIY
工具: K8_FuckOneShell 20161224编译: VS2012 C# (.NET Framework v4.0)组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http ...
- android开发学习——day6
关于UI的几个插件学习 button和textview,以及点击button利用Toast提醒,editText private EditText editText; @Override protec ...
- Mysql的优化一则
目的在于这么一个sql语句: SELECT w.* FROM wallpaper w inner join wallpaper_category_relation r ON w.wallpaper_i ...
- 02-03:springboot 整合listener
1.通过注解扫描完成Listener组件的注册 1.1 编写listener /** * Springboot 整合listener */ import javax.servlet.ServletCo ...
- postgresql逻辑结构--表空间(四)
一.创建表空间 1. 语法:create tablespace tablespace_name [owner user_name] location 'directory' postgres=# cr ...
- ASP.NET 数据绑定到列表控件
<div> <asp:ListBox ID="ListBox1" runat="server"></asp:ListBox> ...
- ajax传递数组到后台,js传递数组到后台
用angular做商品搜索功能,后台接口那边过滤条件必须传递数组过去,结果比较尴尬的事情发生了,每次传递数组过去,查看请求发送的数据,自动被转成了对象,很头疼. 数据传递前 传递后我查看了请求的数据 ...
- FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
由于产品需要对视频做一系列的解析操作,利用FFmpeg命令来完成视频的音频提取.第一帧提取作为封面图片.音频重采样.字幕压缩等功能: 前一篇文章已经记录了FFmpeg在JAVA中的使用-音频提取&am ...