您的位置首页生活百科

JavaScript学习指南

JavaScript学习指南

的有关信息介绍如下:

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代码