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

JS对象

2016-02-19 10:33 706 查看
数组:JavaScript的数组不是提前定义内存大小的,它很像多重指针变量定义的二维数组。可以随意增长数组的长度,使用单独的变量名来储存一系列的值。但是也是可以控制数组的:

var mycars=[code]new Array(3)


var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
//相当于
var mycars=[code]new Array("Saab","Volvo","BMW")


....等等。数组与对象一样,同样可以用for in循环数组内的每一个值:

var x

for (x in mycars)
{
document.write(mycars[x] + ",")
}
数组是可以直接输出的。输出格式是组成一个字符串,每个元素之间有个逗号分开。下面的效果与上面的一致的。

document.write(mycars)


arr.concat(arr2)函数是把arr2数组的值与arr合并。可以用DOM之间输出arr查看合并后的结果。

join()函数是把一个数组的每个值合并成一个字符串,默认逗号。如果有join(".");那么每个元素之间是有”.”号分开的。

如果不是字符串,数组里的是数组的话,也是一样的。

sort函数可以对数组里的值进行排序,字符串的话是按字母顺序。

数组的话不知道怎么弄的,下面的代码没有搞懂。
<script type="text/javascript">

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 + "<br />")
document.write(arr.sort(sortNumber))

</script>

</body>
</html>
如果直接用arr.sort(),那么结果是1,10,1000,25,40,5这是什么排序?我看着也不是快速排序的第一步结束。

另外还有好多属性参数可以在w3school中找到。

逻辑[u]Boolean对象[/u]是把一个非逻辑值转变成为一个逻辑值。

这里跟别的语言是一样的,0的逻辑值是false,1是true,空字符串是false,null 是逻辑的 false,NaN 是逻辑的 false。”false“字符串不是空的,当然是true咯。

如果定义:var b1=new Boolean("");那么b1的值就是逻辑值false了。不加双引号的false那就是false了,这直接就是逻辑值,区别开字符串。

算数对象是非常熟悉的啦,哪个语言都有个math类?对象~什么的。

例如Math.round()函数是四舍五入函数,记住复数是绝对值的四舍五入再添上负号。

Math.random()函数是创建一个随机数。默认是正小数。

Math.max()函数是求最大值了,这个应当说算是在重载了很多很多次吧,可以试试很多不同形参。

document.write([code]Math.floor(Math.random()*11)
)[/code]
这句话就是随机输出一个0-10的随机数了,floor函数是对值进行一次下舍入,这样就把小数点以后的数舍去了。只是乘以10的话是得不到10的。只能0-9

正则表达式RegExp是一种检索吧,用来检索所需要的内容。

首先是用new 关键词来定义 RegExp 对象,并规定要检索的值:

var patt1=new RegExp("e");

那么patt1就是一个正则对象,规定要检索的是字符e。

RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

test() 方法检索字符串中的指定值。返回逻辑值true 或 false

document.write(patt1.test("The best things in life are free"));

结果为true。

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null

document.write(patt1.exec("The best things in life are free"));

结果为e;说明找到了呀。

那么RegExp对象还是可以在创建时直接添加两个参数的,第二个参数是代表global,表示要搜索所有的字符。

var patt1=new RegExp("e","g");

再次运行这个exec函数的话,就会从找到之后的字符开始再次搜索。

do
{
result=patt1.exec("The best things in life are free");
document.write(result);
}
while (result!=null)

结果是eeeeeenull;也就是说如果没有添加这个参数g,是没有记忆功能的。

这个记忆是存在与这个正则对象里还是这个函数里?不知道。

compile() 方法用于改变 RegExp。

compile() 既可以改变检索模式,也可以添加或删除第二个参数。

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free"));

patt1.compile("d");

document.write(patt1.test("The best things in life are free"));

这个就是把E改成了D再次检索,第一次是true第二次是false。这是改变了第一个参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: