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

JS需要注意的细节和一些基础知识

2016-04-11 16:07 537 查看

1、<script>标签

1、在<script></script>中不要在任何地方出现</script>字符串,如alert(“</script>”) 这样会终止执行,所以可以改为alert(“<\/script>”) 转义一下

2、defer属性,等页面加载完成之后才开始加载js文件

<scripttype="text/javascript"defer="defer"src="js.js"></script>

3、async异步加载js

<scriptasync="async"src="js.js"></script>

2、类型判断

typeof

var message = "aa";

alert(typeof (message)) //“String”

typeof 一般只能返回如下几个结果: number,boolean,string,function,object,undefined

对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性

instanceof

instanceof 用于判断一个变量是否某个对象的实例

var person = new Array();

alert(person instanceof Array);

3、作用域

jS中没有块级作用域,也就是在方法中的内部用{ }两个花括号括起来的部分是没有单独的作用域的。放到方法中则不会出现这种问题。块级作用域和其他语言(如C#)有所不同。

if (true) {

var color = "red";

}

alert(color); //结果 red

所有变量都存在于一个执行环境(也称为作用域)当中,这个执行环境决定了变量的生命周期,以及哪一部分代码可以访问其中的变量,下面是总结:

1、 执行环境有全局执行环境和函数执行环境之分。

2、 每次进入一个新执行环境,都会创建一个用于搜索变量的函数的作用域链。

3、 函数的局部环境不仅有权访问函数作用域中的变量,而去有权访问父环境的任何数据。

4、 执行环境中的变量查找是向上查找,也就是说先从当前内部进行查找是否有这个变量,如果有则立即返回,如果没有则向上继续查找。

4、垃圾回收

将不在用的全局变量或对象或变量的值赋值为null可以有效的进行垃圾回收

垃圾回收机制分为标记清除和引用计数清除

标记清除:是目前主流的垃圾回收算法。这种算法的思想是给当前不使用的值加上标记,然后进行回收。

引用计数:这种算法的思想是跟踪记录所有值被引用的次数,目前不在使用这种方法,因为如果出现循环引用的现象时,这种算法会出现无法回收的现象。

解除变量的引用不仅有助于消除循环引用的现象,而且对垃圾收集也有好处,所以应该及时解除不再使用的全局对象、全局对象属性的引用。

4、Number类型

var num = 10.005;

alert(num.toFixed(2));  //保留两位小数 10.01

var num1 = 10;


依次对数值转换不同的进制数。

alert(num1.toString());

alert(num1.toString(2));

alert(num1.toString(8));

alert(num1.toString(16));


Math对象

用Math方法对数组取最大值

var values = [1, 2, 3, 4, 5, 6, 7];

var max = Math.max.apply(Math, values);  //7

var max1 = Math.max(values);  //NaN

alert(max1);


正常语句Math.max方法是不可以对数组进行取最大值的,可以用applay方法进行改写,这个技巧的关键是吧math对象作为apply的第一个参数,从而正确的设置this的值

Math.Ceil() 执行向上舍入,向上舍入最为接近的数。

Math.floor() 执行向下舍入,向下舍入最为接近的整数。

Math.round() 执行标准舍入,四舍五入

Math.random() 产生一个从0到1的随机数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: