JS总结

js

201343

15:57

1.特点:它是一种解释语言,由浏览器执行,所以它是跨平台,因为它只和浏览器的关系

2.语法是一种动态语言

3.可以代替服务器来完成一些客户端的操作,它可以写在网页的任何位置。只不过一般写在head里面。

4.语法和JAVA有相似,但不完全一样。

5.它是以事件做为驱动。用户可以创建函数(方法)

6.JS代码是从上到下依次执行。但是用function(){}来定义的对象会优先执行。

7.当你在调用或者绑定方法的时候加了(),那么一定会执行这个方法。

8.如果你只是将方法名赋值给事件,那么仅仅是将方法的引用赋值给事件,相当于事件的动态绑定, 如果需要执行方法,还需要触发事件.

9.方法可以返回值,但是如果返回给js对象默认的事件,则返回值必须是Function()类型的对象,否则结果是null

10.一个事件的绑定响应只有一个。

11:弱类型是指声明的时候不去做类型的判断,在运行的时候才真正去判断类型.Var

--------------------------------------------------------------------------------------------------------------------------------

 

//1.你把方法写好,那么方法编译会会常驻内存

        //2.还可能将系统已经存在 的方法覆盖掉了。

        //3.在JS里面没有重载如果方法名称一样,后面会将前面覆盖。

        //4.参数不是必须的,你在定义方法的时候可以设置参数,也可以不设置,如果你设置了参数,在调用的时候也可以不传递相应的值。如果没有设置参数,在调用时候也可以传递进去值。和C#的方法调用的语法不一样(参数类型,个数,顺序需要对应)

        //5.如果是在调用的时候加了(),那么就相当于执行了这个方法,如果只是方法名,那么就相当于绑定了方法的引用,如果需要方法起作用,还必须做触发。

匿名方法

onclick

 

一:js可以做什么:

可以完成可以在客户端实现的功能,它是一种运行在浏览器上的动态语言

 

二:组成:

 

屏幕剪辑的捕获时间: 2013/4/3 17:22

 

三:JavaScript的页面引入

·        标签直接引入脚本

    如:<script type="text/javascript"> 脚本语言</script>

·        标签引入脚本文件

如: <script type="text/javascript“ src=“path/xx.js”></script>

注意:1. 脚本文件后缀为.js 。 2.</script>结束标签不能简写

·        协议引入脚本

如:<a href=“javascript:alert(“”)”>单击我</a>

·        推荐使用1,2种。

四:js语法

·        注释  //     /*  */

·        变量 (变量名必须由字母、数字、_和$组成,不能以数字开头)

·        运算符  + - * / %

·        判断语句 if else switch case

·        选择语句

·        循环语句 for(var i in arr)得到下标而不是值

·        函数

·        事件机制

五:调试:

 

六:常用函数:

·        decodeURI() 解码某个编码的 URI

·        encodeURI() 把字符串编码为 URI

·        decodeURIComponent() 解码一个编码的 URI 组件

·        encodeURIComponent() 把字符串编码为 URI 组件

·        escape() 对字符串进行编码   (ECMAScript 3不推荐使用,用上面的函数代替)

·        unescape() 对由 escape() 编码的字符串进行解码

     当一个数值 除以 0的时候,返回一个 无穷大值(infinite)

·        isFinite() 检查某个值是否为[有穷大]的数。

·        isNaN() 检查某个值是否是数字。 Is not a number

·        parseFloat() 解析一个字符串并返回一个浮点数

·        parseInt() 解析一个字符串并返回一个整数

七:数组:js的数组相当于c#的数组,集合,hashTable的集合 同时它是动态的--它的属性可以动态的增加。

Var arr=new Array();

Var arr=new Array(1,2,3);

1.可以动态的为数组添加属性:

Var arr=new Array();

Arr.name="张三";

Arr.age=20;

Alert(arr.name+":"+arr.age);

2.数组的值的类型是OBJECT,所以里面可以存放任意类型的值

 如:var arr=new Array();

Arr[0]="aa";

Arr[1]=100;

3.数组里面的值也可以是一个对象类型,如:

Var arr=new Array();

Arr[0]=new Array();

Arr[0][0]="name";

Arr[0][1]=20;

4.也可以使用字面量表示法来为数组赋值:

var array = new Array();

array[0] = { "name": name ,"age": 20,"address": "广州" };

5.可以使用字面量表示法同时赋多个值:,注意这里是【】

var arr = [

            {"name": "aa", "age": 20, "address":"广州" },

            {"name": "bb", "age": 20, "address":"深圳" }

        ];

------------------------------------------------------------------------------------------------------

 

js操作方式主要有两种:BOM  DOM

1.BOM:browser objectmodel:浏览器对象模型,我们所看到的浏览器窗口就是Browser

2.DOM:document objectmodel:文档对象模型(文档就是主要指body里面的东东,也可以认使用标签创建的元素都是dom编程。)

3BOM对象:

·        window:顶级对象,所有的都可以认为是window的对象   

·            moveTo(X, Y) 移屏幕

·            resizeTo(X,Y)修改屏幕大小

·            Open():在新窗口里面打开一个页面

·        navigator:获取浏览器相关信息

·        appCodeName:返回浏览器的代码名

·        appMinorVersion:返回浏览器的次级版本

·        appName:返回浏览器的名称

·        appVersion:返回浏览器的平台和版本信息

·        browserLanguage:返回当前浏览器的语言

·        screen:屏幕

//如果用户的分辨率太低,则给出相应的提示

           // if (window.screen.width >1024) {

                //alert("电脑还不错");

            }

    //整个屏幕的原始宽度

            //alert(window.screen.width +":" + screen.height);

            alert(window.screen.availWidth +":" + screen.availHeight); //可用宽度,相当于浏览器body容器的宽度和高度,不带状态栏

            //可用宽度,会根据用户的屏幕大小来变化。

           alert(window.innerWidth+":"+window.innerHeight);

·        history:前进 后退  history.go(1)  history.forward()  、  history.go(-1)  history.back()

·        location:链接,url,这里需要注意,当你会使用location来做网络页面的跳转的时候 必须添加全路径 (协议 ),如http://www.baidu.com

·        Document:整个文档

·        frames:框架:注意body和frameset不能共存。如果使用alert(typeof document.framaset),得到的类型就是frameset类型。

 

浏览器做了什么事情:根据从报务器返回的字符串(请求响应报文)生成相应的图形界面,同时还会按照浏览器的语法规则生成相应的dom树(存储在内存中,以对象的形式存在),方便程序员来操作dom元素。动态的修改网页的节点,生成相应的效果。

Document对象:

1.document.getElementById("id名称"):通过Id获取元素

2.document.getElementsByName("name属性"):通过name获取元素,返回一个数组

3.document.getElementsByTagName("标签名称"):通过标签名称获取元素,返回一个数组

4.document.getElementsByClassName("类样式名称"):通过标签所调用的类样式名称获取元素,返回一个数组

5.document.all;获取所有页面元素(与dom相关)

 

 

 

window

location

bom编程

history

document

navigator

screen

 

c++/c-object

HTML

DOM操作:

HEAD

BODY

一:节点的添加和删除:

1.创建:document.createElement("名称")

//创建一个li标签

 var liNew =document.createElement("li");

2.赋值:

//为li标签赋文本值---如果是双标签,那么标签的文本值就是innerHTML或者innerText ,否则就是value

liNew.innerHTML = "我的家乡"; 

3.追加:

//将创建好的li标签添加到ul里面  appendChild是将创建好的新标签添加到父级元素的最后

//ullist.appendChild(liNew);

ullist.insertBefore(liNew, ullist.childNodes[3]); //插入到ullist.childNodes[3]的前面

4.删除:这时有一个陷井,注意在做事件绑定的时候系统会运行匿名方法,造成i的值已经是9,所以使用this。同时建议使用父元素删除子元素的方式删除元素,这样更保险。发现问题一定要多调试,找到问题

 

 

DOM属性:

  说明:在网页里面,node表示所有可能的节点类型(包含元素1,属性2,文本3,注释8,文档9),但是element只包含元素节点。

·        parentNode(返回当前节点的父节点)

·        childNodes (返回指定节点的所有子节点)---数组

·        nodeType  (返回节点的类型,一般是整数)

·        元素element     1  ---指标签 <>

·        属性attr            2   <p color=""         getAttribute()   setAttribute()   使用attributes[]

·        如:alert( document.body.attributes["bgcolor"].nodeType);

·        文本text             3    #text

·        注释comments 8   <!--   -->

·        文档document  9   document   如:alert(window.document.nodeType);

 

nodeName:标签的名称,返回的结果都是大写, 文本的nodeName是#text,注释的nodeName是#comment

nodeValue:返回value,但是只对文本节点和注释有用,对于标签没有作用。

·        firstChild 和 lastChild

·        获取当前节点的第一个(childNodes[0])或最后一个节点 (childNodes[length-1])

·        parentNode

·        获取当前元素的父节点---在删除的时候通过父元素删除最可靠

·        nextSibling

·        获取当前节点的下一个节点:得到下一个元素,这个元素的类型可以包含空文本节点

·        previousSibling

·        获取当前节点的上一个节点,在网页里面,node表示所有可能的节点类型(包含元素1,属性2,文本3,注释8,文档9),但是element只包含元素节点。nextElementSibling只 能得到元素结点

·        dom树的层次关系:

·        level是相对于根节点(html)而言,如果深度一样,同时父结点一样,就可以认为兄弟结点

·        Index:是相对于父结点而言,索引值如果一样并不能说明他们是兄弟结点。

 

 

 

 

 

 

LINK

TITLE

P

DIV

SPAN

#text

 

a

b

 

li

input

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值