js基础 及BOM

发布时间:2014-10-23 23:24:06
来源:分享查询网

        1.通常<script></script>放在head中,但是这样使页面加载迟缓,因此在web开发中经常将<script>标签放到<body>的最后,         2.延迟脚本:html4.0为  <script>标签定义了defer属性,将脚本延迟到整个页面解析完成后再执行                 <script type="text/javascript" defer="defer" ></script>              ps:很多浏览器不支持defer属性。         3.ECMAScript会将那些小数点后带有6个零以上的浮点数转换为用e表示法的数值。               永远不要某个特定的浮点数值。               如: if(a+b=0.4) 是不可以的。         4.NaN:1)任何涉及NaN的操作都会返回NaN;                 2)NaN和任何值不相等,包括NaN本身。                 3)函数isNaN(tom);注意boolean值可以被转换为数字 true ==  1 false == 0                         因此isNaN(true);返回false         5.javascript错误处理与调试               I. javascript支持try-catch-finally用法,和在java中的用法相似。当捕捉多个异常时,使用如下格式                 try{ some statment}catch(error){                         if(error instanceof ReferenceError){...}                         else if(error instanceof TypeError){...}                         else{...}                 }                 II.抛出错误:抛出错误时务必给throw 操作符一个值,这个值是什么类型,没有要求。下列代码都是有效的                      throw 123;                      throw 'hello world'                      throw {name:'javascript'}                    在遇到throw操作符时,代码会立即停止执行,仅当有try-catch语句捕捉到抛出的值时,代码才会继续执行。                 通过使用某种内置的错误类型,可以更真实的模拟浏览器的错误。每种错误类型的构造函数接受一个参数,即实际的错误消息。                 如:throw new Error("something wrong!!!");                    throw new TypeError("A TypeError happen!!");             1)错误类型                 1.Error                 2.EvalError                 3.RangeError                 4.ReferenceError                 5.SyntaxError                 6.TypeError                 7.URIError   6.BOM   1).使用下列代码可以跨浏览器取得窗口左边和上边的位置         var leftPos = (typeof window.screenLeft == "number")?window.screenLeft : window.screenX;         var topPos = (typeof windwo.screenTop == "number")?window.screenTop :window.screenY;   2)window.open 弹出窗口屏蔽程序         浏览器内置弹出窗口屏蔽程序,只要检查window是否等于null即可;如果是浏览器扩展或其他程序阻止的弹出窗口,那么window.open()通常会抛出一个错误,因此,要想准确地检测弹出窗口是否被屏蔽,必须在检测返回值的同时,将window.open()放到try-catch块中         示例:                 var blocked = false;                 try{                         var newWindow = window.open("zhidao.baidu.com","_blank","heigh=400;toobar=no");                         if(newWindow == null)                         {                                blocked = true;                         }                 }catch(ex)                 {                          blocked = true;                                         }                 alert("the newWindow has been blocked");     3)超时调用         var timeoutId = setTimeout(function(){                 alert("tomcat");         },1000);         setTimeout()会返回一个id,这个id是超时调用的唯一标示,可以用来取消超时调用。         clearTimeout(timeoutId);     4)间歇调用         var intervalId = setInterval(function(){alert("lalala");},1000);         取消间歇调用:clearInterval(intervalId);       ps:一般认为,使用超时调用来模拟间歇调用是一种最佳模式。在开发环境下,很少真正使用间歇调用,原因是后一个间歇调用可能在前一个间歇调用完成前启动,而超时调用则可以避免这一点。    5)系统对话框         使用alert(),confirm(),prompt()等调用系统对话框向用户展示信息。         这几个对话框都是同步和模拟的,也就是说,显示这些对话框时代码会停止执行,待关闭后代码又恢复执行。     6)location         一些属性:          通过location的上述属性改变URL,会在浏览器的历史记录中留一条新的记录,用户可以通过点击“后退”按钮返回的上一个页面,要禁止这种情况可以是用replace()方法。这个方法只接受一个参数,即要跳转到的URL。         示例:location.repalce("http://zhidao.baidu.com");  reload()方法,重新加载当前显示的页面。如果调用reload()方法时不传递任何参数,页面就会以最有效的方式重新加载。也就是说,如果页面自上次请求以来并没有改变过,页面就会从浏览器的缓存中重新加载。如果需要强制从服务器重新加载,则需要传递参数true;         示例:          location.reload();   //重新加载(有可能从缓存中加载)         location.reload(true); //重新加载(强制从服务器加载)   7)history          go()方法可以在用户的历史记录中任意跳转,这个方法接受一个参数,表示向后或向前跳转的页面数的一个整数值。负数表示向后跳转,正数表示向前跳转。          history.go(-1);           history.go(3);         也可以给go()方法一个字符串参数,此时浏览器会跳转到历史记录中包含该字符串的第一个位置,可能向前也可能向后,具体要看哪个位置离的近。如果历史记录中不包含该字符串,那么这个方法什么也不做。         ps 1.两个简写方法:                 history.back();                 history.forward();             2.history的length属性,保存历史记录的数量,这个数量包含所有的历史记录,即所有向前先后的记录。对于加载到窗口、标签页或框架中的第一个页面而言,history.lenth等于0.                 可以用来测试该属性的值,来确定用户是否一开始就打开了你的页面                 if(history.lenth != 0)                 {                         alert("请将页面设为首页");                 }                 http://zz563143188.iteye.com/         

返回顶部
查看电脑版