首页 > 代码库 > base
base
1.firebug:
console.log(someVar);//控制台打印变量信息
clear();//清除控制台信息
toFixed();//去掉额外的小数部分并且将数字转换为字符串;如:var n=1.33333; var m=n.toFixed(2);//m=1.33;
indexof()或lastIndexof();寻找数组元素值的新方法,返回找到的数组值的索引位置,如果该值在数组中不存在,则两个方法都返回-1.
2.在Javascript中,条件中的下列值都被视为假,其他值都为真:
false ,0 ,空串 ,NaN(非数字) ,null ,undefined
3.typeof 运算符返回一个代表对象类型的字符串。
typeof 返回值
类型 返回值
Undefined undefined
Null object(对象)
Boolean boolean
Number number(数字)
String string
Array object(对象)
Object object
4.创建并使用数组
方式一:
var myVar=new Array();//创建一个空数组
var myVar=new Array(1,2,3);//创建数组并初始化数组
方式二(文本语法):
var myVar=[];//创建一个空数组
var myVar=[1,2,3];//创建数组并初始化数组
var myVar=[1,‘Fred‘,‘Daphne‘,2,false];//创建混合存储类型的数组,不常见。
(1)length属性可以访问数组使用长度
(2)可以使用数组的索引来读取单独的数组元素或者为数组元素赋值.
(3)删除数组和数组元素。delete myVar; //删除数组; delete myVar[n];//删除数组myVar的第n个元素。length值未变,该元素值被改为undefined.
(4)添加数组元素的替代方法
①把数组当作栈或队列
"栈"
push(arg0,arg1,...,argn);//一次可以添加一个或多个参数,这些参数代表所添加的值,添加在数组的最后。
//注意,如果添加的参数本身是数组,则数组原封不东的添加到数组中(也就是创建一个多维数组)
pop();//弹栈。length减1;
“队列”
unshift(arg0,arg1,...,argn);//它强制新元素出现在数组的开头,必要时将现有元素向后移动。(比push()方法慢)
shift();//从数组中删除第一个元素并返回它,所以改制可以被赋予另一个变量或者以其他方式使用.length减1;
②concat(arg0,arg1,...,argn);//该方法进行数组的连接,可以指定一个或多个参数,
//注意:和push()方法不同,在参数中出现的数组会被展开为单独的元素。
(5)splice(arg0,arg1.arg2,...,argn);//从数组中间剪切或添加新元素.
//参数1:表示起始位置,参数2:要删除的元素数量 ,参数三及后续的参数:可选,表示新添加的元素
5.创建并使用对象
方式一:
var obj=new Object();//创建了一个空对象;
方式二:
var obj={};//创建了一个空对象;
(1)为对象添加属性,使用格式:“属性:值”,属性之间使用逗号分隔。
var obj={num:6,title:‘complex variable types‘};
或
var obj=new Object(num:6,title:‘complex variable types‘);
(2)访问对象属性或为属性重新设置
① obj.title//访问title属性
② obj[‘title‘]//访问title属性
③ obj.title=‘new value‘;或obj[‘title‘]=‘value‘//设新值
(3)确认对象是否有某个属性
①使用 objName.propertyName:
if(obj.title){//已经存在
...
}
注意:这种方法可能因为属性值被当做false处理而出现问题,例如属性值为空字符串或0等情况。
②使用in运算符。语法: ‘属性‘ in objctName
if(‘title‘ in obj ){//已经存在
...
}
③使用typeof运算符,条件是已知属性的类型
if(typeof obj.title == ‘string‘){//已经存在
...
}
(4)访问所有对象
for...in ,语法格式:
for(var p in obj)
{ //use obj[p];//
}
注意:首先,属性不会以任何特定顺序返回,甚至不会以对象创建时列出的顺序返回、
其次, 根据对象不同,可能最终看到并未创建的属性(这种情况与javascript的原型继承性有关)
第三, 必须使用数组标记法来寻找每一个对象的属性值
最后, for...in是比较慢的一种结构,应该只用在没有其他循环可用的时候
(5)删除对象及属性
delete obj;//删除对象
deleted obj.title;//删除对象属性title
6.字符串
(1)创建字符串
var str=‘hello‘或"hello";//创建了字符串 “hello”
常用属性length;获取字符串的长度
(2)字符串拆分
charAt(index);//引用单个字符。index为该字符在字符串中的位置。默认第一个字符位置为0;
indexOf(chars,from_start);//返回第一个找到的字符(或字符串)的索引值(位置),没找到返回-1.
//第一个参数:1个或多个指定字符;第二个参数:可选,表示在字符串搜索的起始位置。
lastIndexOf(chars,from_end);//反向遍历字符串,其他和indexOf()一样。
slice(start,end);//从字符串中取出子串 ,返回一个新字符串;
//第一个参数:剪切开始的位置;第二个参数:可选,剪切结束的位置。省略,则表示子串持续到字符串结束位置。
subString(start,end);//功能同slice()方法,不过有一些不可预期的表现
subStr(start,Num);//功能同slice()方法;
//第一个参数:子串起始位置;第二参数:包含在子串里的字符数。
7.正则表达式
在javascript中,正则表达式是一种特殊类型,和Number,String,Date一样,和javascript中的大部分值类型相同。
(1)创建正则表达式
方法一:var regexp=‘pattern‘;//模式上不要加引号,结束斜杠之后,可以设置影响正则表达式表现的标志(如i,它使模式大小写不敏感)
如:var zip=/^d{5}(-\d{4})?$/ ;//匹配美国邮政编码的模式
var letter=/[A-Za-z]/i;//验证一个大小写不敏感的字面
方法二:创建一个类型为RegExp的新对象.容易造成其他语法问题,很少使用此方法
(2)正则表达式函数
有了正则表达式对象之后,可以使用它进行模式和字符串的比较
RegExp对象的test()
RegExp对象的exec()
String对象的search()
String对象的match()
假定已创建了正则表达式对象r,打算测试字符串s,可以如下使用:
r.test(s);//测试正则表达式最常用的方法,最常用,速度最快
r.exec(s);//返回找到的匹配字符串
s.search(r);使用方式与test类似,表现类似indexof(),如果部分或者整个字符串匹配正则表达式,返回匹配开始的位置,不匹配返回-1
s.match(r);//基本用法类似exec(),但在使用分组时不同。
使用举例:
var zip=/^\d{5}(-\d{4})?$/;
zip.test(‘12345‘);//返回true
zip.test(‘12345-6789‘);//返回true
zip.test(‘12345b‘);//返回false
base