最近一直研究学习和编写自己脚本库的url的相关的api,今天又兴致地有翻看期一本老书-----javascript语法和对象速查手册。其实自己一路走来,我喜欢看前端的书,看了很多这样的书,有的书很基础有的书有点深度有的书得看好几遍才明白。。。。有的人说慢慢地随着时间的流逝,你看的书就"高深"了,其实,作为我来讲,我只能支持一半的说法,是慢慢地随着你的积累和自己的研习,水平和理解力是涨了,但是时常地去翻看一下这些底层api的语法和常用对象等,加深理论还是很有必要的。(温故而知新!!)
不相信,考考你,
var str ="abcdef"; console.log(str.length); //看看长度,顺从大脑步骤,呵呵 console.log(str.slice(-2,3)); //是什么? console.log(str.slice(-2,4)); //又是什么? console.log(str.slice(-2,5)); //又又是什么? /* 后话,或许你知道string的slice 或许你知道参数为负的反向查找 但是你看看上面的你会再次发现 反向查找后的如果start>=end返回是空的 */
给出答案:
var str = "abcdef"; console.log(str.length); //6 //对string.slice不熟悉的可以看看我的其他文章有介绍说明。 console.log(str.slice(-2,3)); //是不是等于 str.slice(6-2,3);--------str.slice(4,3); //返回空 console.log(str.slice(-2,4)); //是不是等于str.slice(6-2,4); ----------str.slice(4,4); //返回空 console.log(str.slice(-2,5)); //是不是等于str.slice(6-2,5); ---------str.slice(4,5); //返回"e"
拉回来,继续写我的要点。今天其实想仔细地给大家说说这个location对象。它到底有什么属性和方法,或者说我们能不能从它生成去吸收一些东西。
- what is location?
- Location对象包含了当前URL的所有信息
- 它是Window对象的一个属性
- 通过window.location属性可以访问该对象,但不能使用new 关键字去创建
- Location对象的属性
- hash--------------返回从(#)开始的URL
- host --------------返回主机和当前URL的端口
- hostname---------返回当前URL的主机名
- href---------------返回完整的URL
- pathname-------- 返回当前URL的路径部分
- port---------------返回当前URL的端口号
- protocol----------返回当前URL的协议
- search------------返回从(?)开始的URL查询部分
- Location对象的方法
- assign()----------加载新的文档
- reload()----------重新加载当前的文档
- replace()---------用新的文档替换当前的文档
上图说明例子我在http://www.baidu.com输入
窝窝团然后调整到
总结一下吧:
- 我建议你写location.href 而不是window.location.href,对象成员嵌套不要很深,访问速度会慢
- 应该没有人会用window.location.href.toString()吧??有的属性不是对象的实例属性,解析的时候需要搜索原型链,这样的时间效率比较低
- 关于location.reload于location.replace的区别??这个我在这边就不细说可以看看我贴出的链接