企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 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及以下浏览器不支持该属性!")}