您的位置:首页 > Web前端 > JavaScript

JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)

2016-02-06 16:02 1091 查看
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,自己做判断来给默认值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: