1.javascript中变量声明有var和没var的区别
Javascript中变量声明的作用域是以函数为单位的,在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var声明的是全局变量。在Javascript的函数作用域内,声明的变量或内部函数在函数体内都是可见的。这意味着,函数在定义之前可能已经可用。函数定义有两种方式,一种是函数定义表达式,一种是函数声明语句。函数声明语句“被提前”到外部脚本或外部函数作用域的顶部。所以以这种方式声明的函数,可以被它定义之前出现的代码所调用。而函数定义表达式中,变量的声明被提前了,但是给变量的赋值是不会提前的。所以,以表达式方式定义的函数在函数定义之前无法调用。
在全局作用域内声明变量时,有var和没var是有区别的。使用var语句重复声明语句是合法且无害的。如果重复声明且带有赋值,那么就和一般的赋值语句没差别。如果尝试读取没有声明过的变量,Javascript会报错。
2.JS中innerHTML、outerHTML、innerText、outerText用法与区别
<div id="test">
<span style="color:red">test1</span> test2
</div>
在JS中可以使用:
test.innerHTML:
也就是从对象的起始位置到终止位置的全部内容,包括Html标签。
上例中的test.innerHTML的值也就是“<span style="color:red">test1</span> test2 ”。
test.innerText:
从起始位置到终止位置的内容, 但它去除Html标签
上例中的text.innerText的值也就是“test1 test2”, 其中span标签去除了。
test.outerHTML:
除了包含innerHTML的全部内容外, 还包含对象标签本身。
上例中的text.outerHTML的值也就是<div id="test"><span style="color:red">test1</span> test2</div>
test.outerText:
设置(包括标签)或获取(不包括标签)对象的文本 。
3.window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
window.location 对象在编写时可不使用 window 这个前缀。
一些例子:
- location.hostname 返回 web 主机的域名
- location.pathname 返回当前页面的路径和文件名
- location.port 返回 web 主机的端口 (80 或 443)
- location.protocol 返回所使用的 web 协议(http:// 或 https://)