JavaScript学习指南
的有关信息介绍如下:
针对JavaScript学习,总结一些基本的知识点,让你在学习过程中能全局把握!!!
特殊变量:
infinity 无穷大
NaN 非数字值
Number.MAX_VALUE 最大值
Numbe.MIN_VALUE 最小值
函数直接量
var f=function(x){}
对象直接量
var p={x:1,y:22};
数组直接量
var a=[1,2,3];
null:表示无值
undefined 表示不存在
注:运算符将null,undefined看做相等
正则表达式直接码;一对斜线之间的文本构成一个正则表达式的直接量;
字符串和String对象不一样,字符串typeof 返回string,而String对象返回object
字符串转换为对象 new String('wang');
eval()方法处理字符串值和String对象的方式不同。若eval()方法将String对象传
规范声明:
声明全局变量可以不用var ,但是局部变量要var,
funciton x(){
b='11222';
}
b为全局变量,在函数外面可以引用
in运算符要求其左边的是一个字符串,或可以转化为字符串,右边是一个对象或数组,若右边是一个对象,则左边的为该对象的属性,则为true
instanceof,左边是一个对象,右边是对象的类的名字
typeof的是数字、字符串或布尔值、返回number、string、boolean
对对象、数组和null返回object
对函数返回function,如运算数未定义,则返回undefined
当Number/String/Boolean等包装对象是返回object,Date/RegExp返回object
new一个对象,当构造函数没有参数时,可以省略()
delete 运算符删除对象的属性,应var定义的变量不能被删除,删除不存在的属性,返回true,返回成功返回true,删除失败返回false
var my=new Object();
my.hire=new Date();//定义变量
my.fire=my.hire;
delete my.hire;//返回true
但是my.fire仍然引用那个date对象
with作用域
with(obj){
x=1;
y=2;
}
函数
可以用Function动态定义一个函数
var f=new Function('x','y','return x*y');前面的是参数,最后一个是函数的主体
相当于
function f(x,y){
return x*y;
}
函数直接量
var f=function(x,y){
return x*y;
}
将函数赋值给对象的属性,则该属性为对象的方法
函数是对象,可以有属性和方案
函数都有一个prototype属性
function rect(w,h){
this.width=w;//定义属性
this.heiht=h;
}
new一个函数对象
var f=new rect(1,2);
所有对象都是继承Object,
所有队形都有constructor属性,他引用的是用来初始化该对象的构造函数
var o=new Circle(r);
o.constructor==Circle;//true 类名称
class是对象的内部类型,为构造函数名称,如:Array对象的class为Array
每一个对象都有一个原型对象,该原型对象是在构造函数中产生的,产生时是一个空对象,读属性时,首先检查该对象是否有这个属性,若没有则检查原型对象是否有这个属性,若有则返回
设置属性,则是给该对象增加一个属性,而不管原型是否有这个属性
function Circle(){
}
Circle.prototype.pi=3.14;//给原型对象增加属性,对属性对所有的Circle对象都有效
String,Date 类型也有原型对对象,我们也可以给String、Date的原型对象增加属性
String.prototype.wyc='wyc';
String.prototype.endsWith=function(str){
}
定义类属性和方法(静态的)
用类名称
Date.parse=function(str){}
调用时也要用类名称
非静态的:
function Circle(){
this.r=1;
this.mj=function(){}
}
或
Circle.prototype.wyc='wyc';
类型继承:
即将该类的原型对象指向父类
function Person(){}
function Student(){}
Student.prototype=new Person();
但是该方式有一个缺陷,就是抛弃了Student的constructor属性,继承了超类的constructor属性
应该
Student.prototype.constructor=Person;
数组
数组是稀疏的,只有存有对象的才分配空间
var a=new Array();
a=1;
属性:length比最大元素的下标多1
join()方法:将数组的元素连成字符串,若没有指定分隔,则用逗号分隔
reverse()将颠倒数组元素的顺兴,并返回颠倒后的数组
sort()返回排序后的数组
concat(arr)返回的数组包含原数组中的元素、并包含参数中的元素
slice(start,end)返回数组的一个片段,包括start不包括end
splice(start,www.gzlij.com delcount,insertobj1,insertobj2,...)删除从start开始的delcount各元素,并从start开始插入insetobj1,....
push(obj)在尾部加入obj
pop()删除数组的最后一个元素,并返回该元素
unshift(insertobj1,insetobj2,...)将元素插入数组的头部
shift()删除数组的第一个元素
字符串是值,不是引用
web浏览器中JavaScript
window对象是在一个窗口中显示html文档,window对象有document属性,还有window属性和self属性,location属性,frames[]数组,navigator对象
history对象,screen对象
frames[]原始窗口的框架的window对象,document代表当前窗口的document,frames.docuement代表第二个窗口的document
Document对象是html文档
document都有一个forms[]数组,每个form都有一个elements[]数组
document.write()将把自己的输出插入到脚本在文档中所在的位置,当脚本执行完时,html解析器将继续解析文档,并开始解析document.write()方法生成的文本
document.write();的文本将被插入文档,紧接在后,当脚本运行结束时,有hmtl解析器解析
从一个事件处理程序中调用document.write();那么就会覆盖当期文档,而不是添加到其中
文档对象模型DOM表示文档(html)和访问、操作构成文档的各种元素的应用程序接口
DOM树型结构是各种类型的Node对象的树,每个Node都有一个nodeType属性
Element:Node.ELEMENT_NODE,则node是一个element对象
Text:Node.TEXT_NODE
Document:Node.DOCUMENT_NODE
Comment:Node.COMMENT_NODE
DocumentFragment:Node.DOCUMENT_FRAGMENT
Attr:Node.ATTRIBUTE_NODE
HTMLDocument
HTMLElement接口定义了id,style,title,lang,dir和className等属性
var a=document.createTextNode('this is a new text node');
var box=document.createElement('div');
box.setAttribute('style','background-color:white;');
document.body.appendChild(box);
var d=document.createElement('div');
d.style.backgroundColor='white';
CSS
类选择器
1:标记名称
如:p,body
p {color:red;}
2 id
#myid {}
3 自定义
.btn {}
事件
addEventListener();
removeEventListener();
eval()执行字符串中的JavaScript代码



