日期:2014-05-16 浏览次数:20387 次
eval()
参数是一个字符串,eval会将传入的字符串当作代码来执行。使用Function函数依然可以做到这点,setTimeout,setInterval也可以。尽量不要使用这些,两个set...函数要用也要使用函数实行,不要使用字符串。严格模式下不能使用eval来创建变量和函数,非严格模式下可以
eval(“alert(‘Hi!’)”); var myfunc = new Function(“alert(‘Hi!’)”);
原始包装类型
Number,Boolean,String.使原始值具有对象般的行为。
var name = "dfdsfdsfds"; console.log(name.toUpperCase()); //在这句语句表象的背后js引擎创建了String类型的实例,紧跟着就销毁。 var name = "dfdsfdsfds"; name.author = true; console.log(name.author);//在console语句时,对象实例已经销毁。
原始值本身不具备对象特性,例如:
1.toString() // undefined;
Var a = 1; a.toString();
for……in
用来遍历对象属性,同样还会遍历从原型继承来的属性,所以遍历自定义对象时,使用hasOwnPrpperty()方法来为for……in循环过滤出实例属性。
var prop; for(prop in object){ If( object.hasOwnProperty(prop)){ Console.log(“Property name is ” + prop); Console.log(“Property value is ” + object[prop]); } }
typeof
Js中5种原始类型分别是 字符串、数字、布尔值、null、undefined.
typeof运算符之后返回 “string”,”number”,”boolean”,”undefined”,”objet”.
判断null是使用!== 或者 ===,避免用typeof来检测null,因为会返回object.
instanceof
js中除了原始值都是引用值,js中内置的引用类型:Object、Array、Date、Error. typeof都会返回object,所以分清楚这几种类型,需要使用instanceof.
If(value instanceof Date/RegExp..),因为每个对象都是继承自Object,所以任何类型都会返回true。
检测自定义类型时也使