您的位置:首页 > Web前端 > JavaScript

JavaScript注意点

2016-05-08 15:07 169 查看
1、使用JavaScript实现页面跳转    window.location.href =“url地址”;   或者     window.location =“url地址”;

2、javascript执行顺序:按文档流的顺序执行 (由上到下,先执行<head>中的【不包括$(function)/window.onload中的,因为这里的最后等页面加载完成再执行】,再执行<body>中的,以         代码段为单位),最后执行window.onload/$(function)中的    【$(function(){}是)$(document).ready(function(){
})的简写】

      

    step 1.  读入第一个代码块。

  step 2.  做语法分析,有错则报语法错误(比如括号不匹配等),并跳转到step5。

  step 3.  对var变量和function定义做“预编译处理”(永远不会报错的,因为只解析正确的声明)。但是并没有进行初始化与赋值

  step 4.  执行代码段,有错则报错(比如变量未定义)。

  step 5.  如果还有下一个代码段,则读入下一个代码段,重复step2。

  step6. 结束。
          根据HTML文档流的执行顺序,需要在页面元素渲染前执行的js代码应该放在<body>前面的<script>代码块中,而需要在页面元素加载完后的js放在</body>元素后面,body标签的onload事件是在最后执行的。

     参考资料 :http://www.admin10000.com/document/3752.html

     如果在同一个代码段中 前一行调用后面行定义的方法 可以调用成功(因为会把该代码段所有方法预处理),但是如果调用之后代码段定义的方法  会出错(因为后面的代码段还没有读取进来)

3   引入js文件和css文件的顺序  

   在网页开头引入js文件和css文件: js和css文件之间是没有顺序的 :比如easyui中先引入相关的js文件还是css文件都可以 ,都能出来效果

 但是js文件之间  和css文件之间是有顺序的  :

    比如说jquery文件应该放在其他js文件之前(js文件后面的会调用前面的,所以要有顺序 不然调用不到)       css文件后面的会覆盖掉前面的 (所以注意样式的重复定义)

4、字符串转换成json 的三种方法:

   1:  

   1,eval方式解析,恐怕这是最早的解析方式了。如下:

       var result = eval('(' + data + ')');   data是字符串  result是转换结果。

    记得别忘了str两旁的小括号。 

分析:eval()的速度非常快,但是他可以编译以及执行任何javaScript程序,所以会存在安全问题。在使用eval()。来源必须是值得信赖的。需要使用更安全的json解析器。在服务器不严格的编码在json或者如果不严格验证的输入,就有可能提供无效的json或者载有危险的脚本,在eval()中执行脚本,释放恶意代码。

   2,new Function形式,比较怪异哦。如下 

  
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}


     3,使用全局的JSON对象。如下: (这个方法和$.post()方法中的json参数效果一样,如果json格式有问题会出错,验证格式可去www.bejson.com)

 function strToJson(str){   

<span style="font-size:12px;">    return JSON.parse(str);
}</span><span style="color:#ff0000;font-size: 18px;">   </span>
注意:

上 面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了
Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: