JavaScript 中的所有事物都是对象:字符串、数值、数组、函数,
对象只是一种特殊的数据,对象拥有属性和方法.JS也允许自定义对象
访问属性: objName.propertyName 访问方法: objName.methodName
javaScript是面向对象的语言,但不会使用类,是基于protoType而不是基于类的
js创建对象可以直接new Object(),而后一次给属性赋值
dog = new Object();
dog.age = 11;
dog.fname = "mill";
dog.lname = "dock";
或者直接使用对象字面量
dog = {age:11,fname:"mill",lname:"dock"};
使用对象构造器,this一般用于指向执行的函数本身,构造器内可以有对象的函数
function dog(age,fname,lname){
this.age = age;
this.fname = fname;
this.lname = lname;
function fullname(){
return this.fname+" "+lname;
}
}
对象的for..in循环遍历 是访问对象的属性
for(attr in dog){
info += dog[attr];
}
JS Number对象
固定是64位 没有整型、浮点型、short、long区分
整数精度最多为15位 小数最大为17位 (注:浮点数运算并不总是正确 0.1+0.1 不一定为0.2)
toString(进制) 将number对象转为对应的进制
内置对象Infinity 无限大 NaN (Not a Number)不是一个数字
Number对象的属性: MAX_VALUE MIN_VALUE NEGATIVE_INFINITY POSITIVE_INFINITY
NaN prototype constructor
Number对象的方法:toExponential() toFixed() toPrecision() toString() valueOf()
JS String对象
拥有java String类的大部分方法
属性: length prototype constructor
方法:charCodeAt() concat() match() replace() spit() substr(begin[,length])...and so on
JS Date对象
(get|set)FullYear()获取/设置年份 getTime() 获取1970.1.1至今毫秒数 getDay()
JS Array数组对象
var arr = new Array(); arr[0]="mill";arr[1]="dock";
var arr = new Array("mill","dock");
var arr = ["mill","dock"];
在数组中可以有不同的对象
数组还可以创建新的方法 如下 给所有数组对象创建了一个funName方法
Array.prototype.funName = function(){
//function code
}
concat(arrs...)连接多个数组对象 join()方法将数组内的对象组成字符串 pop()删除最后一个元素 push()末尾添加元素(类似栈)
reverse()反转 shift()删除第一个元素 slice(beginIndex,endIndex)选取begin~~end-1的数组元素
sort()方法 按字母升序 sort(function(a,b){return a-b;})按照数字升序(b-a即可降序)
splice(beginIndex,deleteNum,attr...)添加元素 toString() unshift()开头添加新的元素
JS Boolean布尔对象
创建对象 var a = (false|true);
var a = new Boolean()
布尔对象为false 当且仅当对象值为 0 -0 null false undefined NaN
JS Math对象
round() random() max() min() floor() and so on
Math.(PI|E|SQRT2|SQRT1_2|LN2|LN10|LOG2E|LONG10E) 常用算术值
JS RegExp对象
正则表达式 主要内容前两节已讲
var pat = new RegExp(pattern,midifier);
//或者 more simple
var pat = /pattern/modifier
//注意使用RegExp时 要注意字符转义\要写成\\
var reg = new RegExp("\\w*");
var reg = /\w*/;
修饰符前面已讲 i(忽略大小写) g(全局匹配) m(多行匹配)
test()// 返回boolean 是否匹配
exec() //返回正确匹配到的字符串
JS BOM(浏览器对象模型)
可以获取浏览器窗口的尺寸大小(高度、宽度)
document.documentElement.client(Height|Width)
document.body.client(Height|Width)
window.(open()| close() | moveTo() | resizeTo()) window的方法
Window Location对象 获取当前页面的URL
location.hostname|pathname(路径名)|port|protocol 页面的信息
location.href 页面的url location.assing()加载新的文档
Window History
history.back()//功能同浏览器的回退按钮
history.forward()//功能同前进按钮
function back(){
window.history.back();
//window.history.forward();
}
<button type="button" οnclick="back" value="Back"/>
alert("message")//弹窗
window.confirm("message")//确认框 返回boolean值
var res = window("press ok or cancel");
if(r==true){
x = "you've pressed OK";
}else{
x = "you've pressed Cancel";
}//通常根据boolean返回值进行对应的操作
window.prompt()//提示框 需要输入值
var animal = window.prompt("enter the name of dog","defaultValue");
if(animal!=null && animal!=""){
//code to be executed
}
window Timer: setInterval() 设置间隔时间 周期性的执行代码 setTimeout():指定时间后执行代码
[window.]setInterval("function",millionseconds) 第一个参数 函数名 第二个参数间隔毫秒
clearInterval()停止setInterval()方法执行
setTimeout("function",millionseconds);//等待一段时间 只执行一次函数
clearTimeout() 停止setTimeout()方法执行
Cookie:记录web用户的信息 cookie以键值对的形式存在 key=value (.properties文件)
创建cookie: document.cookie="key=value";
设置超时时间: document.cookie="key=value;expires="+Date();//默认情况下 浏览器关闭则cookie销毁
设置cookie的路径: document.cookie="key=value;expires="+Date()+";path=/";//默认情况下 path是当前页面路径
读取cookie: var coo = document.cookie;//coo返回的是cookie的字符串形式 cookien=valuen
删除cookie: 将超时时间设置为以前的时间 expires= DateBefore like Thu, 01 Jan 1970 00:00:00 GMT
注:设置新的cookie的时候 旧的cookie不会被覆盖 会添加到document.cookie中 得到两个cookie序号 但是value值是一致的
一般使用cookie都有三个函数 设置cookie值的函数 获取cookie值的函数 检测是否有cookie值的函数