JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*)
length属性:获取字符串的字符个数。(无论中文字符还是英文字符都算1个字符。)
charAt(index)方法:获取指定索引位置的字符。(索引从0开始)
indexOf(‘字符串’,startIndex)方法:获取指定字符串第一次出现的位置。startIndex表示从第几个开始搜索。
split(‘分隔符’,limit);//根据分隔符将一个字符串返回为一个数组。limit表示要返回的数组的最大长度(可自定义)。多个分隔符使用正则表达式:var msg = 'a★b★c☆d☆e#f';var vals = msg.split(/☆|★|#/);alert(vals);
substr(startIndex,len)//从startIndex开始,截取len个字符。
substring(startIndex,stopIndex)//从startIndex开始,截取到stopIndex位置(不包括stopIndex所在的字符)。
toUpperCase()//转换大写、toLowerCase();//转换小写
Array对象
JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的超强综合体。
数组的使用方式:
var names = new Array();//无需初始化长度,动态
names[0] = "tom";
names[1] = "jerry";
names[2] = "lily";
循环遍历数组(for循环):
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
循环遍历数组(forin循环):类似于c#中的foreach.
for (var i in names) {
alert(names[i]);//如果直接输出i是什么?
}
使用forin循环可以遍历对象的所有属性。
forin循环其实遍历的还是key.
数组的其他几种声明方式:
new Array();
new Array(size);
new Array(element0, element0, ..., elementn);
var arr = [‘China’, 2008, true, ‘Hello’];(推荐。)
•arr[0]à'China'
•arr[1]à2008
JS中的Dictionary
JS中的Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack
var pinyins = new Array();
pinyins["人"] = "ren";
pinyins["口"] = "kou";
pinyins["手"] = "shou";
alert(pinyins["人"]);
alert(pinyins.人);
字典风格的简化创建方式:
var arr = {“人”:”ren”,“口”:”kou”};//json格式。
像Hashtable、Dictionary那样用,而且像它们一样效率高。
不能直接用for循环遍历,需要用forin循环。
Dictionary风格数组的length为0。所以不能用for遍历。
键值对集合也是对象json格式,同样的键值对的key也不能重复,也不能以数字开头
Array的简化声明
JSON格式:
var arr={“name”:”tom”,”age”:18,”email”:’tom@itcast.cn’};
Json格式可以当做一个对象。
arr.name、arr.age、arr.email
var arr=[ {"name":"steve","age":18}, {"name":"steve","age":18} ];//json对象数组。
在Ajax中使用JSON格式传输数据非常方便。
=================JSON的一些其他写法======================
一般写json对象的时候 键和值都是用引号引起来,字符串用引号,值如果是数字就不用了
值也可以存储函数
键值可以嵌套
====================JSON================================
1.
var personalInfo = { "name": "周杰伦", "age": 20, "address": { "city": "beijing", "country": "China"} };
alert(personalInfo.name);
alert(personalInfo.age);
alert(personalInfo.address.city);
alert(personalInfo.address.country);
2.
var students = [{ "id": "1001", "name": "james" }, { "id": "1002", "name": "bob"}];
for (var i = 0; i < students.length; i++) {
alert(students[i].id + "===>" + students[i].name);
}
================Array的其他方法========================
Array.join(“连接字符串”)//将数组中的元素通过指定的“连接字符串”连接起来,返回一个字符串。
Array.reverse();//将数组中的元素反转。
Array.sort();//排序
SortByAsc(a,b){
return a-b;
}
Array.sort(SortByAsc);
扩展方法(*)”原型”→”prototype”
通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法
String.prototype.quote = function(quotestr) {
if (!quotestr) {
quotestr = "\"";
}
return quotestr + this + quotestr;
};
alert("abc".quote()); alert("abc".quote("|"));
扩展方法的声明要在使用扩展方法之前执行。JS的函数没有专门的函数默认值的语法,但是可以不给参数传值,不传值的参数值就是undefined,自己做判断来给默认值。
JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)的更多相关文章
- C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)
常用类库StringBuilder StringBuilder高效的字符串操作 当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作. String 对象是不可变的. 每次使用 System. ...
- JavaScript基础第03天笔记
JavaScript基础第03天笔记 1 - 循环 1.1 for循环 语法结构 for(初始化变量; 条件表达式; 操作表达式 ){ //循环体 } 名称 作用 初始化变量 通常被用于初始化一个计数 ...
- javascript循环遍历数组输出key value
javascript循环遍历数组输出key value用$.each方法肯定不行的 所以采用如下方法<pre> markers = []; markers[2]=3; markers[3] ...
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) { return i1 + i2;//如果不写return返回 ...
- JavaScript 基础知识(一):对象以及原型
前言 JavaScript 常被描述为一种基于原型的语言--每个对象拥有一个原型对象,对象以其原型为模板.从原型继承方法和属性.原型对象也可能拥有原型,并从中继承方法和属性,一层一层.以此类推.这种关 ...
- JavaScript DOM编程基础精华03(动态设置,层的操作,性能问题)
代码是否需要放置到onload中 //如果js代码需要操作页面上的元素,则将该代码放到onload里面. //因为当页面加载完毕之后页面上才会有相关的元素 //如果js代码中没有操作 ...
- javascript函数,构造函数。js对象和json的区别。js中this指向问题
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.好处:在出现大量程序相同的时候,可以封装为一个function,这样只用调用一次,就能执行很多语句.(1)语法:函数就是包裹在花括号中的代码 ...
- JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype
一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); // ...
- JavaScript基础精华01(变量,语法,数据类型)
JavaScript是一种脚本语言. 脚本,一条条的文字命令.执行时由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行 JavaScript基本组成 1.基本语法(浏览器基本都支持,有统 ...
随机推荐
- PHP:parse_str()字符串函数
parse_str()-把字符串解析成多个变量. 描述:void parse_str(sring $str [, array $arr]) 如果str是URL传递入的查询字符串(query stri ...
- Crusher Django 学习笔记4 使用Model
http://crusher-milling.blogspot.com/2013/09/crusher-django-tutorial4-using-basic.html 顺便学习一下FQ Crush ...
- Lucene 3.0
http://www.cnblogs.com/forfuture1978/archive/2010/02/22/1671487.html http://www.cnblogs.com/jiekzou/ ...
- 【面试虐菜】—— LVS负载均衡
Load Balancer(负载均衡器): Load Balancer是整个集群系统的前端,负责把客户请求转发到Real Server上.Load Balancer通过Ldirectord监测各Rea ...
- opencv的初体验
http://guoming.me/opencv-config 这篇文章有讲解opencv的安装与配置 一些常用库 opencv_core249d.lib opencv_imgproc249d.li ...
- LAMP开发之环境搭建(2014.12.7在ubuntu下)
Ubuntu下搭建LAMP环境 前言:学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我搭建的是LAMP环境,即Linux.Apache ...
- hornetq 入门(1)
Hornetq 版本2.4.0final 需要JDK7及以上 Hornetq官网 Hornetq2.1中文手册 step1.启动服务端 1.1准备配置文件(配置说明参考官网手册) hornetq-c ...
- FMS (端口问题)如何穿透防火墙
转自http://www.cnblogs.com/zhchongyao/archive/2010/01/22/1653803.html 先是管理端口,就是fms2_console文件连接到server ...
- 2876: [Noi2012]骑行川藏 - BZOJ
Description 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因 ...
- Win7(包括32和64位)使用GitHub
关于安装路径:32位可选择安装目录,但64位建议使用默认安装目录,否则Git Extensions配置会出问题 安装参考网址 http://code.google.com/p/tortoisegit/ ...