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() | 返回数组对象的原始值 |
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
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 对象方法
方法 | 描述 | FF | IE |
---|---|---|---|
compile | 编译正则表达式。 | 1 | 4 |
exec | 检索字符串中指定的值。返回找到的值,并确定其位置。 | 1 | 4 |
test | 检索字符串中指定的值。返回 true 或 false。 | 1 | 4 |
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 对象的方法
方法 | 描述 | FF | IE |
---|---|---|---|
search | 检索与正则表达式相匹配的值。 返回字串的起始位置或者-1 | 1 | 4 |
match | 找到一个或多个正则表达式的匹配。 数组或null | 1 | 4 |
replace | 替换与正则表达式匹配的子串。返回一个新串 | 1 | 4 |
split | 把字符串分割为字符串数组。 | 1 | 4 |
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
属性 | 当以下情况发生时,出现此事件 | FF | N | IE |
---|---|---|---|---|
onabort | 图像加载被中断 | 1 | 3 | 4 |
onblur | 元素失去焦点 | 1 | 2 | 3 |
onchange | 用户改变域的内容 | 1 | 2 | 3 |
onclick | 鼠标点击某个对象 | 1 | 2 | 3 |
ondblclick | 鼠标双击某个对象 | 1 | 4 | 4 |
onerror | 当加载文档或图像时发生某个错误 | 1 | 3 | 4 |
onfocus | 元素获得焦点 | 1 | 2 | 3 |
onkeydown | 某个键盘的键被按下 | 1 | 4 | 3 |
onkeypress | 某个键盘的键被按下或按住 | 1 | 4 | 3 |
onkeyup | 某个键盘的键被松开 | 1 | 4 | 3 |
onload | 某个页面或图像被完成加载 | 1 | 2 | 3 |
onmousedown | 某个鼠标按键被按下 | 1 | 4 | 4 |
onmousemove | 鼠标被移动 | 1 | 6 | 3 |
onmouseout | 鼠标从某元素移开 | 1 | 4 | 4 |
onmouseover | 鼠标被移到某元素之上 | 1 | 2 | 3 |
onmouseup | 某个鼠标按键被松开 | 1 | 4 | 4 |
onreset | 重置按钮被点击 | 1 | 3 | 4 |
onresize | 窗口或框架被调整尺寸 | 1 | 4 | 4 |
onselect | 文本被选定 | 1 | 2 | 3 |
onsubmit | 提交按钮被点击 | 1 | 2 | 3 |
onunload | 用户退出页面 | 1 | 2 | 3 |
相关文章推荐
- leancloud js SDK 学习
- 初级js
- 一步一步实现JS拖拽插件
- JS AJAX
- JSP+servlet生成验证码并验证
- 《JavaScript》——宏观把控
- JavaScript中判断一个对象是否为"空对象”
- EXTJS-1 表单和ajax数据交换
- 该怎么写Angular JS
- Angular JS
- SSH和EXTJS 之旅开始
- Chrome 控制台 如何调试 javascript
- 使用DWR实现JS调用服务端Java代码
- 使用DWR实现JS调用服务端Java代码
- 使用DWR实现JS调用服务端Java代码
- Javascript-基础知识(6)
- Angular JS的模块依赖
- Angular JS的依赖注入
- Javascript-基础知识(5)
- javascript设计模式之Mediator(中介者)模式