# http://exploringjs.com/
## 3、js和php中尽量使用单引号。js中单双引号,都是一样的,但是php中还是有区别的!
## 4、DOM与JavaScript的区别
* DOM(文档对象模型)是与平台和语言无关的一种接口,它允许程序和脚本动态的访问和更新文档内容,结构甚至是样式,并允许把处理的结果返回到所指定的页面中。
* DOM是面向HTML,XML文档的`API`(应用编程接口),为文档提供了结构化的表示,并定义了如何通过脚本(如JavaScript)来访问文档结构。
* 而JavaScript则是用于处理和访问DOM的脚本语言。如果没有DOM,JavaScript就不会有Web页面构成元素的概念.Web页面中的元素如表单,超链接,图像和层都是DOM的一部分,这就为JavaScript访问这些元素的属性和方法提供了可能性。
## 5、XMLHttpRequest对象创建(原生JavaScript)
~~~
var xmlHttp=createXMLHttpRequest();
function createXMLHttpRequest(){
var xmlHttp=false; //定义一个用与存储XMLHttpRequest对象的引用
try{ //try程序段将适应除了IE6及其更早版本外的所有浏览器(包括IE7,IE8)
xmlHttp=new XMLHttpRequest();
if(xmlHttp.overrideMimeType){
xmlHttp.overrideMimeType("text/xml");
}
}
catch(e){ //假设是IE6或其更早版本
var XmlHttpVersions=new Array('Msxml2.XMLHTTP.7.0',
'Msxml2.XMLHTTP.6.0',
'Msxml2.XMLHTTP.5.0',
'Msxml2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'Microsoft.XMLHTTP',
'MSXML2.XMLHTTP',
'MSXML.XMLHTTP');
//顺序尝试创建每个版本,直到有一个创建成功
for(var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
try{
//尝试创建XMLHttpRequest对象
xmlHttp=new ActiveXObject(XmlHttpVersions[i]);
}
catch(e){} //忽略产生的错误
}
}
//返回创建的对象或显示错误信息
if (!xmlHttp){
alert("Error creating the XMLHttpRequest object.");
}else{
return xmlHttp;
}
}
~~~
实例:两个文件:
**index.php:**
~~~
<input type='button' value='click' id='btnclick' onclick='getValue()'>
<script>
var xmlHttp;
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
var xmlHttp=new XMLHttpRequest();
if(xmlHttp.overrideMimeType){
xmlHttp.overrideMimeType("text/xml");
}
}else{
try{
xmlHttp = new XMLHttpRequest();
}catch(e){
var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP');
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
try{
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {
}
}
}
}
if (!xmlHttp){
alert("Error creating the XMLHttpRequest object.");
}else{
return xmlHttp;
}
}
function getValue(){
var url="./test.php"
xmlHttp=createXMLHttpRequest();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange =function(){
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
document.getElementById('btnclick').value=xmlHttp.responseText;
}
}}
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send("value=Test");
}
</script>
~~~
**test.php**
~~~
<?php
if($_POST['value']=='Test'){
echo $_POST['value'];
}
?>
~~~
获得test.php文件的内容,内容是什么,你自己写,
要怎么改,
改这里就行`document.getElementById('btnclick').value=xmlHttp.responseText;`
##6、对象字面量语法、JSON:
A:
`{name:"dd",age:"16"}`
B:
`{"name":"dd","age":"16"}`
前者是Javascript的对象字面量语法,后者是JSON,后者是前者的一个子集
如果就是写JS代码,那么只要风格统一,加不加都OK。我个人是倾向于不加的,因为表达数据的场景比较少,构建对象,声明方法的场景比较多,作为方法名来说不加引号比较有sense。
##7、 javascript:void (expression)
由来已久:Internet Explorer 4.0、Netscape Navigator 3.0 以后版本可以把JavaScript代码写在本来应该是url的地方。
`<a href="javascript:alert('Hello')">Click Me</a>`
-----
`<a href="javascript:doTest2();void(0);">here</a>`
但这儿的void(0)究竟是何含义呢?
Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
~~~
1. javascript:void (expression)
2. javascript:void expression
~~~
expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。 (实现版本 Navigator 3.0 )
你以使用 void 操作符指定超级链接。表达式会被计算但是不会当前文档处装入任何内容。
下面的代码创建了一个超级链接,当用户以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。
> [疑问:为什么要使用href=”javascript:void(0);”?](http://www.zhangxinxu.com/wordpress/2013/01/why-use-href-javascript-void0/)
###8、JavaScript与DHTML的关系
**DHTML**(Dynamic HTML,动态HTML)是从 Internet Explorer 4.0 和 Netscape Communicator 4.0 开始支持的。它其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括html+css+javascript(或其它客户端脚本),其中css和客户端脚本是直接在页面上写而不是链接上相关文件。DHTML不是一种技术、标准或规范,只是一种将目前已有的网页技术、语言标准整合运用,制作出能在下载后仍然能实时变换页面元素效果的网页设计概念。JavaScript是DHTML中的核心技术,请牢牢掌握。
###9、<=IE8浏览器判断
if(!window.screenX){alert("IE8及以下浏览器不支持该属性!")}
- 序
- 开发自己的博客
- 面试集合
- 基础
- 1、JavaScript
- js技巧
- 2、CSS
- position之absolute
- em与rem
- inline-block
- background
- 圆角、透明度、渐变
- 关于css中的0和none
- css display:none小结
- z-index小结
- 理解滚动条
- 有关@font-face的问题
- 3、HTML
- URI中依赖协议的URL
- 4、MySQL
- limit使用
- 5、jQuery
- 6、移动Web开发
- 设计稿与分辨率
- 字体
- 图片的自适应
- 7、前端布局bug问题(!<=IE8)
- SEO与页面结构
- seo
- vsphere 虚拟服务器
- 代码里的彩蛋(神注释)
- 玩转HTML5移动页面
- 知识梳理
- JS 键盘码
- 其他资源记录
- temp
- TODO
- 简单有趣的库😎
- xx