这里依然仅对个人认为有些意思的记录出来
1.关于变量,js中变量可以是不声明的如i=0;但是还是建议使用以下var,尤其是局部变量和全局变量重名时,这个会更好的满足自己的需求。
2.关于基本类型的转换,由于js不是强类型的,所以一个变量中既可以存整数也可以是字符串等。所以经常会出现意外的结果,如没来想给一个数字加1的,结果变成了字符串拼接。
首先int+string=string,其次可以借助parseInt(),和parseFloat()进行转换
3.关于string。
1)索引从0开始
2)substring(a,b),这个有些奇怪,它是去a,b之间的字符串,而不会考虑ab的大小。如ss=“abcdefg”,则ss.substring(0,4),ss.substring(4,0)其结果是一直的都是(abcd) 注意是从第一个到地五个(不包含滴5个)
从而ss.substring(3,3)为空,
3)charAt(index),可以获取某一个字符
3.数组
1)声明可有3中形式,ss=new Array(4),(参数表示长度可以省略);ss=new Array(3,4,10,4); ss=[3,4,5],注意为方括号和逗号
2).声明时没有长度时,可以根据赋值自动调整,ss=new Array();ss[0]=1;ss[5]=3 可见ss长度为6了,(是不是不用担心数组越界了)
3)数组的排序,数组提供了一个sort()函数,该函数默认无参数时 把元素作为字符串进行排序,
于是对数值数组需要自己设计比较函数如:
function numcomp(a,b){return a-b;},ss=[10,3,4,23];ss.sort(numcomp);即可。
4.数组与字符串转换
split()与join
函数很多解释了也没意思,有个文档很不错的,希望大家喜欢
javascript中文手册(chm)
1.DOM不是javascript语言的一部分,而是内置在浏览器中的一个应用程序接口。dom的子元素包括下面几个
window(document,history,location)
1)document子对象 links[]可以获取整个页面的连接(<a href=""></a>)的集合
anchors[]可以获取整个页面所有的锚点(<a name=""></a>) 类似的还有images
2)history对象,history对象有current,previous,next三个属性,用来存储历史列表中的url,但是在浏览器中不能正常访问,history提供了3个方法
go(参数) 产生为整数正数表示前进次数 负数表示后退次数,back(),forward().
补充:为了搞清楚,浏览器为什么能够进行后退和前进,以及一些因前进和后退导致问题的根源,做了一些测试得出如下结论:
a)浏览器自身能够记录访问的历史,此处的访问历史仅仅是一个地址
b)前进后退操作时,浏览器会访问自身记录的url地址
c)在访问历史的url时,如果服务器侧没有强制禁用缓存,那么浏览器将不会想服务器发送请求,否则浏览器将向服务器发送新的http请求。
由此可以解决一些登录后退出 然后后退仍能看到用户信息,以及 由使用ajax的页面在调到新页面后再回退回来导致的一些脚本错误。
方法很简单 就是在服务器测禁用缓存(no cache,no store),从而回退时 服务器会受到请求便可以做出相应的处理。 (如有不妥之处 请大家多多指教 给我留言)
3)location对象,这个对象中包含了很多窗口的当前url网址的信息,最重要的是修改href属性可以重新定位到新的页面。,其他的一些protocol,port,等,
其中:search表示查询部分 指?之后的参数 如aid=3; hash:表示anchor名称 如#anchor 这两个应该比较实用
location的方法reload(bool),就是刷新,如果参数为true 则无论缓存与否都会强制刷新
replace(url),其实这个还是比较实用,不仅能够实现设置location的功能,而且还不影响历史记录。(这个就比较不错了 如a页面到b,b页面用这个replace(c)打开了c,这是点击后退会发现到了a)-