-
4、类型检测 方法: (1).typeof 返回字符串,适合函数(function)对象和基本类型的判断监测,遇到null失效 typeof 100 "number"//返回字符串number .. true "boolean" ..function "function" .. (undefined) "undefined" .. new Object() "object" .. [1,2] "object"//没有经过特殊处理 .. NaN "number" .. null "object"//兼容问题 (2).instanceof,适用于自定义对象,也可以监测原生对象 obj .. Object//基于原型链 左操作数期望是对象,右操作数必须是函数对象,否则会抛出type error 会判断左操作数在原型链上是否有右边构造函数的prototype属性 任何一个构造函数都有一个prototype属性 不同window或iframe间的对象类型检测不能使用instanceof (3).Object.prototype.toString,遇到null,undefiend失效 Object.prototype.toString.apply([]);==="[object Array]"//判断数组 (4).constructor 任何一个对象都有一个constructor属性,指向构造这个对象的构造器或者构造函数,可以被改写 (5).duck type 比如不知道这个是不是数组,可以判断他的特征:length数字,是否有joying,push等等查看全部
-
很笨的方法……查看全部
-
3、包装对象 (1)number,string,boolean都有对应的包装类型 eg:var str="string";//字符串类型 var strObj=new String("string")//对象类型,String类型对应的包装类 str不是对象,是基本类型不应该有属性和方法 字符串,当把一个基本类型尝试以对象的方式去使用时,比如访问length属性或者增加一些属性,js会把基本类型转换为对应的包装类型对象,相当于new了一个string,当访问结束后这个临时对象会被销毁掉.查看全部
-
2、“37”-7//30 "37"+7//377 num-0//转化成数字 num+""//变为字符串——巧用+,-转换类型 等于a==b把字符串装换成数字再比较,null=undefined相等,number==string转number 严格等于a===b类型不同返回false,相同时:null===null,undefined===undefined,NaN不严格等于任何类型包括其本身,new Object≠new Object(用引用去比较,而不是用值去比较,定义一个对象x,用x去比较才是true)查看全部
-
自定义序列化,JSON转字符串,字符串转JSON查看全部
-
extensible查看全部
-
属性标签查看全部
-
原型链 函数对象带有prototype属性 通过new构造一个对象 原型会指向构造器的prototype查看全部
-
1顺序不确定2enumerable为false时不出现3for in对象属性是受原型链影响查看全部
-
typeof判断基本类型和函数比较方便 判断对象一般用instanceof查看全部
-
严格模式,好多要求的节奏查看全部
-
重复属性名的时候,会以后面的为准查看全部
-
1.一般模式下:argument与形参a相关,如果不传参不相干,2.严格模式中argument与形参a不会相互影响, 3.arguments的属性与如果参数是对象,对象的属性改变仍会改变查看全部
-
严格模式,查看全部
-
with语句修改作用域查看全部
举报
0/150
提交
取消