JS中所有事物都是对象:字符串、数值、数组、函数…
此外,JS还允许自定义对象
创建JS对象
创建新对象有两种不同的方法:
1.定义并创建对象的实例
person =new object();
person.name=yl;
person={propertyName}
2.使用函数来定义对象,然后创建新的对象实例
在这里插入代码片
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
myfriend=new person("bill","gates","56","blue");
document.write(myfriends.propertyName);
把方法添加到 JavaScript 对象
<script>
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
myMother=new person("Steve","Jobs",56,"green");
myMother.changeName("Ballmer");
document.write(myMother.lastname);
</script>
js不使用类不创建类也不使用类来创建对象
JS基于prototype不是基于类
for…in 循环
JS中for … in 循环语句遍历对象的属性
注释:for…in 循环中的代码块将针对每个属性执行一次。
<body>
function myFunction()
{
var x;
var txt="";
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
{
txt=txt + person[x];
}
document.getElementById("demo").innerHTML=txt;e
}
</body>
JS Number对象
所有 JavaScript 数字均为 64 位
JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。
JavaScript 中的所有数字都存储为根为 10 的 64 位(8 比特),浮点数。
精度
整数(不使用小数点或指数计数法)最多为 15 位。
小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
JS日期和事件
返回当日的日期和时间
document.write(Date());
使用getday方法和数组来显示周几
<script>
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]="Sataurday";
document.write("今天是"+weekday[d.getDay()])
</script>
显示一个钟表
<head>
<script>
function starttime(){
var today = new Date()
var h = today.getHours()
var m = today.getMinutes()
var s = today.getSeconds()
m = checktime(m)
s = checktime(s)
document.getElementById('txt').innerHTML = h + ":" + m + ":" + s
t=setTimeout('startime()',500)//每隔500毫秒(0.5秒)刷新一次时间,为了实现时间动态显示效果
}
function checktime(i)//checkTime函数,设置小于10的时间数字格式,例如5秒显示成05秒
{
if (i < 10) {
i="0"+i
}
return i
}
</script>
</head>
<body onload="starttime()">
<div id="txt"></div>
</body>
定义日期
Date 对象用于处理日期和时间。可以通过 new 关键词来定义 Date 对象
var myDate=new Date()
注:Date对象自动使用当前的日期和时间作为初始值
操作日期
在下面的例子中,我们为日期对象设置了一个特定的日期 (2008 年 8 月 9 日):
var mydate=new Date()
mydate.setFullYear(2008,7,9)
注意:表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。
JS数组
数组合并(concat)
var arr1={"1","2","3"}
var arr2={"4","5","6"}
document.write(arr1.concat(arr2))
数组元素组成字符串(join())
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join());
document.write("<br />");
document.write(arr.join("."));
数组排序(sort)
字母排序
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
document.write(arr.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 + "<br />")
document.write(arr.sort(sortNumber))
JSMath对象
round四舍五入
document.write(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
JS正则表达式(RegExp)
当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。
简单的模式可以是一个单独的字符。
更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等
定义 RegExp
代码定义了名为 patt1 的 RegExp 对象,其模式是 “e”:
var patt1=new RegExp("e");
将检索带有"e"的字符
**RegExp的方法**
1.test()
test() 方法检索字符串中的指定值。返回值是 true 或 false。
var patt1=new RegExp("e");
document.write(patt1.test("mmp"));
返回值为False
2.exec()
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null
例1
var patt1=new RegExp("e");
document.write(patt1.exec("math"));
若有e返回e没有e返回NULL
例2.可以向 RegExp 对象添加第二个参数,以设定检索。例如,如果需要找到所有某个字符的所有存在,则可以使用 “g” 参数 (“global”)。
在使用 “g” 参数时,exec() 的工作原理如下:
找到第一个 “e”,并存储其位置
如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 “e”,并存储其位置
3.compile()
该方法用于改变RegExp
compile() 既可以改变检索模式,也可以添加或删除第二个参数。
<script type="text/javascript">
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"));
</script>
输出为Ture False