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

javascript整理(3)--对象、window

2015-08-02 22:07 821 查看



Array 对象

Array 对象用于在单个的变量中存储多个值。


创建 Array 对象的语法:

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);


当把构造函数作为函数调用,不使用 new 运算符,使用 new 运算符调用它时的行为完全一样。


Array 对象属性

属性描述
constructor返回对创建此对象的数组函数的引用。
length设置或返回数组中元素的数目。
prototype使您有能力向对象添加属性和方法。
<script type="text/javascript">
var test=new Array();
if ([code]test.constructor==Array
)
{
document.write("This is an Array");
}
if (
test.constructor==Boolean
)
{
document.write("This is a Boolean");
}
if (
test.constructor==Date
)
{
document.write("This is a Date");
}
if (
test.constructor==String
)
{
document.write("This is a String");
}
</script>[/code]

var bill=new employee("Bill Gates","Engineer",1985);

document.write(bill.constructor);

输出:function employee(name, jobtitle, born)
{this.name = name; this.jobtitle = job; this.born = born;}


function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}

var bill=new employee("Bill Gates","Engineer",1985);

employee.prototype.salary=null;
bill.salary=20000;

document.write(bill.salary);

employee.prototype.getSalary = function(){
alert("I can earn 1000000 USD");
};
bill.getSalary();


Array 对象方法

方法描述
concat()连接两个或更多的数组,并返回结果。
join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()删除并返回数组的最后一个元素
push()向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()颠倒数组中元素的顺序。
shift()删除并返回数组的第一个元素
slice()从某个已有的数组返回选定的元素
sort()对数组的元素进行排序
splice()删除元素,并向数组添加新元素。
toSource()返回该对象的源代码。
toString()把数组转换为字符串,并返回结果。
toLocaleString()把数组转换为本地数组,并返回结果。
unshift()向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()返回数组对象的原始值
concat() 方法用于连接两个或多个数组。返回一个新的数组

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

arr.concat(4,5);
arr.concat(arr2);
arr.concat(arr2,arr3)
arr.join();   //逗号作分割符
arr.join(".");
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。
如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

document.write(arr.pop())
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。
push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

arr.push("James", "tom");
reverse() 该方法会改变原来的数组,而不会创建新的数组。

arr.reverse()

shift() 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值
arr.shift();

slice()返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject
中的元素。

如果想删除数组中的一段元素,应该使用方法 Array.splice()。

arr.slice(2,4);
arr.slice(2);
sort() 没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序

function sortNumber(a, b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr.sort() + "<br />")  // <span style="font-family: Simsun;font-size:14px;">1,10,1000,25,40,5</span>
document.write(arr.sort(sortNumber))  //<span style="font-family: Simsun;font-size:14px;">1,5,10,25,40,1000</span>


arrayObject.splice(index,howmany,item1,.....,itemX)

参数描述
index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX可选。向数组添加的新项目。
arr.splice(2,0,"William");  //插入
arr.splice(2,1,"William");  //替换
arr.splice(2,3,"William");  //替换
toStirng() 数组中的元素之间用逗号分隔。 返回值与没有参数的 join()
方法返回的字符串相同。

arr.toString();
unshift() 方法无法在 Internet Explorer 中正确地工作!
arr.unshift("William");


创建 Boolean 对象的语法:

new Boolean(value);	//构造函数
Boolean(value);		//转换函数

如果省略 value 参数,或者设置为 0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。
否则设置为 true(即使 value 参数是字符串 "false")
在 JavaScript 中,布尔值是一种基本的数据类型。Boolean 对象是一个将布尔值打包的布尔对象。

var boo = new Boolean(true)
document.write(boo.toString())  // <span style="background-color: rgb(239, 239, 239); font-family: Verdana, Arial, 宋体;">把逻辑值转换为字符串</span>
document.write(boo.valueOf()); //<span style="background-color: rgb(249, 249, 249); font-family: Verdana, Arial, 宋体; line-height: 18px;">valueOf() 来取得此对象的原始值</span>


Date 对象方法

方法描述
Date()返回当日的日期和时间。
getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth()从 Date 对象返回月份 (0 ~ 11)。
getFullYear()从 Date 对象以四位数字返回年份。
getYear()请使用 getFullYear() 方法代替。
getHours()返回 Date 对象的小时 (0 ~ 23)。
getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
getTime()返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()返回本地时间与格林威治标准时间 (GMT) 的分钟差。
parse()返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()设置 Date 对象中月份 (0 ~ 11)。
setFullYear()设置 Date 对象中的年份(四位数字)。
setYear()请使用 setFullYear() 方法代替。
setHours()设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()设置 Date 对象中的毫秒 (0 ~ 999)。
setTime()以毫秒设置 Date 对象。
UTC()根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()返回 Date 对象的原始值。
document.write(Date());
var d = new Date()
document.write(d.getTime() + " milliseconds since 1970/01/01")    //获取毫秒数

var d = Date.parse("Jul 8, 2005")   //获取毫秒数
document.write(d);

var d = new Date()
d.setTime(77771564221) //以毫秒设置date对象
document.write(d)

var d = Date.UTC(2005,7,8)
document.write(d)
<pre style="margin-top: 10px; margin-bottom: 0px; padding: 10px; border: 1px dotted rgb(119, 136, 85); font-family: Consolas, 'Courier New', Courier, monospace; width: 685px; background-color: rgb(245, 245, 245);">var d=new Date()

var weekday=new Array(7)
weekday[0]="Sunday"
weekday[1]="Monday"
weekday[2]="Tuesday"
weekday[3]="Wednesday"
weekday[4]="Thursday"
weekday[5]="Friday"
weekday[6]="Saturday"

weekday[<code style="margin: 0px; padding: 0px; border: 0px; font-family: Consolas, 'Courier New', Courier, monospace; color: rgb(0, 0, 221);">d.getDay()</code>]



Math.abs(-7.25)   //绝对值


Math.ceil(5.1);  //6       //ceil() 方法执行的是向上取整计算
Math.ceil(-5.1); //-5


Math.floor(5.1);  //5       //floor() 向下取整计算
Math.floor(-5.1)  //-6


max() 方法可返回两个指定的数中带有较大的值的那个数。
如果没有参数,则返回 -Infinity。如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN。

Math.max(-3,5)
Math.max(7.25,7.30)

Math.min(-3,5)
Math.min(7.25,7.30)

pow() 方法可返回 x 的 y 次幂的值。

document.write(Math.pow(0,0) + "<br />")  //1
document.write(Math.pow(0,1) + "<br />")  //0
document.write(Math.pow(1,1) + "<br />")
document.write(Math.pow(1,10) + "<br />")
document.write(Math.pow(2,3) + "<br />")
document.write(Math.pow(-2,3) + "<br />")

random() 方法可返回介于 0 ~ 1 之间的一个随机数。

document.write(Math.random())

document.write([code]Math.round(0.60)
+ "<br />") //1
document.write(
Math.round(0.50)
+ "<br />") //1
document.write(
Math.round(0.49)
+ "<br />") //0
document.write(
Math.round(-4.40)
+ "<br />") //-4
document.write(
Math.round(-4.60)
) //-5[/code]
var a=Math.sqrt(0); //0
var b=Math.sqrt(1);
var c=Math.sqrt(9);
var d=Math.sqrt(0.64);
var e=Math.sqrt(-9); //NaN



直接量语法

/pattern/attributes


创建 RegExp 对象的语法:

new RegExp(pattern, attributes);

属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配


方括号 方括号用于查找某个范围内的字符:

表达式描述
[abc]查找方括号之间的任何字符。
[^abc]查找任何不在方括号之间的字符。
[0-9]查找任何从 0 至 9 的数字。
[a-z]查找任何从小写 a 到小写 z 的字符。


元字符

元字符(Metacharacter)是拥有特殊含义的字符:
元字符描述
.查找单个字符,除了换行和行结束符。
\w查找单词字符。
\W查找非单词字符。
\d查找数字。
\D查找非数字字符。
\s查找空白字符。
\S查找非空白字符。
\b匹配单词边界。
\B匹配非单词边界。
\0查找 NUL 字符。
\n查找换行符。


RegExp 对象方法

方法描述FFIE
compile编译正则表达式。14
exec检索字符串中指定的值。返回找到的值,并确定其位置。14
test检索字符串中指定的值。返回 true 或 false。14
compile() 方法用于在脚本执行过程中编译正则表达式。也可用于改变和重新编译正则表达式。

var str="Every man in the world! Every woman on earth!";
patt=/man/g;
str2=str.replace(patt,"person");
document.write(str2+"<br />");

patt=/(wo)?man/g;
patt.compile(patt);
str2=str.replace(patt,"person");
document.write(str2);
var str = "Visit W3School, W3School is a place to study web technology.";
var patt = new RegExp("W3School","g");
var result;

while ((result = patt.exec(str)) != null)  {
document.write(result);
document.write("<br />");
document.write(patt.lastIndex);
document.write("<br />");
}
var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);    //true


支持正则表达式的 String 对象的方法

方法描述FFIE
search检索与正则表达式相匹配的值。 返回字串的起始位置或者-114
match找到一个或多个正则表达式的匹配。 数组或null14
replace替换与正则表达式匹配的子串。返回一个新串14
split把字符串分割为字符串数组。14
var str="Hello world!"

document.write(str.search("world") + "<br />")  // 6
document.write(str.search("World") + "<br />")  // -1
document.write(str.search("woorld") + "<br />") // -1

document.write(str.search(/world/) + "<br />")  //6
document.write(str.search(/World/i) + "<br />") //6
var str="Hello world! Hello World! Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("wooorld") + "<br />")  //null

document.write(str.match(/world/) + "<br />")
document.write(str.match(/world/g) + "<br />")   //world,world
document.write(str.match(/World/ig) + "<br />")  //world,World,world
var str="Visit Microsoft! Visit microsoft! Visit Microsoft!"
document.write(str.replace(/Microsoft/g, "W3School") + "<br/>")
document.write(str.replace(/Microsoft/ig, "W3School") + "<br/>")

document.write(str.replace("Microsoft", "W3School") + "<br/>")
name = "Doe, John";

name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1") //"John Doe"
name = '"a", "b"';
name.replace(/"([^"]*)"/g, "'$1'");
name = 'aaa bbb ccc';

uw=name.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);  //'Aaa Bbb Ccc'
var str="How are you doing today?"

document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))  [how,are,you]
如果把空字符串 ("") 用作 separator,那么
stringObject 中的每个字符之间都会被分割。

第二参,该参数可指定返回的数组的最大长度
"|a|b|c".split("|")	//将返回["", "a", "b", "c"]



顶层函数(全局函数)

函数描述
decodeURI()解码某个编码的 URI。
decodeURIComponent()解码一个编码的 URI 组件。
encodeURI()把字符串编码为 URI。
encodeURIComponent()把字符串编码为 URI 组件。
escape()对字符串进行编码。
eval()计算 JavaScript 字符串,并把它作为脚本代码来执行。
getClass()返回一个 JavaObject 的 JavaClass。
isFinite()检查某个值是否为有穷大的数。
isNaN()检查某个值是否是数字。
Number()把对象的值转换为数字。
parseFloat()解析一个字符串并返回一个浮点数。
parseInt()解析一个字符串并返回一个整数。
String()把对象的值转换为字符串。
unescape()对由 escape() 编码的字符串进行解码。
var test1="http://www.w3school.com.cn/My first/"

document.write(encodeURI(test1)+ "<br />")
document.write(decodeURI(test1))

输出: http://www.w3school.com.cn/My%20first/ http://www.w3school.com.cn/My first/
var test1="http://www.w3school.com.cn/My first/"

document.write(encodeURIComponent(test1)+ "<br />")
document.write(decodeURIComponent(test1))
输出:
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F http://www.w3school.com.cn/My first/

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
eval("x=10;y=20;document.write(x*y)")    //200
document.write(eval("2+2"))   //4
var x=10
document.write(eval(x+17))  27

document.write(isNaN(5-2)+ "<br />")   // false
document.write(isNaN("Hello")+ "<br />")   //true
document.write(isNaN("2005/12/12")+ "<br />")  //true
document.write(parseFloat("34 45 66"))    //34
document.write(parseFloat("  60 "))    //60
document.write(parseFloat("40 years"))  //40
document.write(parseFloat("He was 40"))  //NaN
document.write(parseFloat("314e-2"))    //3.14
document.write(parseFloat("0.0314E+2"))  //3.14
parseInt("10");			//返回 10
parseInt("19",10);		//返回 19 (10+9)
parseInt("11",2);		//返回 3 (2+1)
parseInt("17",8);		//返回 15 (8+7)
parseInt("1f",16);		//返回 31 (16+15)
parseInt("010");		//未定:返回 10 或 8

var test2= new Boolean(0);
var test3= new Boolean(true);
var test5= new Date();
var test7=12345;
document.write(String(test2)+ "<br />");  //false
document.write(String(test3)+ "<br />");  //true
document.write(String(test5)+ "<br />");  //<span style="font-family: Arial, Helvetica, sans-serif;">Sun Aug 02 2015 22:05:23 GMT+0800 (中国标准时间)</span>
document.write(String(test7)+ "<br />");  //12345


属性当以下情况发生时,出现此事件FFNIE
onabort图像加载被中断134
onblur元素失去焦点123
onchange用户改变域的内容123
onclick鼠标点击某个对象123
ondblclick鼠标双击某个对象144
onerror当加载文档或图像时发生某个错误134
onfocus元素获得焦点123
onkeydown某个键盘的键被按下143
onkeypress某个键盘的键被按下或按住143
onkeyup某个键盘的键被松开143
onload某个页面或图像被完成加载123
onmousedown某个鼠标按键被按下144
onmousemove鼠标被移动163
onmouseout鼠标从某元素移开144
onmouseover鼠标被移到某元素之上123
onmouseup某个鼠标按键被松开144
onreset重置按钮被点击134
onresize窗口或框架被调整尺寸144
onselect文本被选定123
onsubmit提交按钮被点击123
onunload用户退出页面123
(以上内容摘自http://www.w3school.com.cn)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: