-
特殊运算符: 1、逗号运算符 a,b 例如 var s = (1,2,3),则s依次赋值,最后输出为3 2、delete运算符 delete obj.x 删除对象obj中的x属性 在IE9下,obj中必须configurable:true 才可以删除,否则无效 3、in运算符 判断obj是否有值或window里是否有变量,返回布尔值 例如 attr in json 或 'document' in window 4、instanceof 判断对象类型 {} instanceof Object // true 5、typeof 判断对象,返回对象类型 例如 typeof 100 === 'number' // true 6、void 一元的,判断所有值,返回均为undefined查看全部
-
函数方式查看全部
-
object.prototype.toString 说实话- -,这个没用过,所以涨知识了 Object.prototype.toString.apply([]) //"[Object Array]" Object .prototype.toString.apply(function(){}); //"[Object function]" Object .prototype.toString.apply(null); //"[Object null]' ... PS:ie6/7/8下存在兼容性问题,在检测null时会返回object查看全部
-
4)constructor构造器 每个对象都有个constructor属性,它指向该对象的构造函数类型,不过该属性的值可以被改写的,所以用它的判断并不可靠 5)duck type 百度了为啥叫“鸭子类型”,有这样的话:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。” 大概意思就是说当某个对象具备某种类型的特征或者行为时就可以被判断为某种类型,不知道是不是“能力检测”那种意思-查看全部
-
由于typeof只适用于判断基本类型,对object,Date,Array进行检测时只会统一返回“object”(很显然这不是我们想要的,我们想知道它的具体类型),这时就要用到instanceof了,instanceof在检测对象时会返回具体类型,如: new array() instanceof Array //true new Date() instanceof Date //true ... 如果想用instanceof去检测基本类型只会统一返回false,另外由于instanceof是基于原型链的,所以有下列结果: //定义父类 function Parent(){} //定义子类 function Child(){} //让子类继承父类 Child.prototype = new Parent(); //此时再new一个子类实例,使用instanceof new Child() instanceof Child; //true new Child() instanceof Parent //true 通过原型链索引,new的是子类实例,子类继承父类,所以子类实例既是子类类型又属于父类类型 PS:instanceof在跨iframe或者window时由于存在多个window对象,所以在使用instanceof检测时会返回false查看全部
-
在JavaScript中只要引用了字符串(数字、布尔值也是一样的)的属性,JS就会将字符串通过调用new String(s)的方式转换成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁(真实实现并不一定是这样,但整个过程看起来是这样)。这个过程就叫包装对象查看全部
-
严格等于"= = ="类型不同返回false;类型相同:null= = = null,undefined= = =undefine, NaN不等于NaN,new Object不等于new Object,NaN这种数字比较是不会相等的,和自己比较也不会相等。1. NaN = 'Not a Number' 非数字值 2. NaN表示非法的数字。parseFloat(arg) 和 parseInt(arg) 函数在计算并不是数值的值时,返回NaN,(number类型) 通过isNaN(arg)来判断arg是否为NaN,如果arg为非数字值或NaN值,返回TRUE,否则返回FALSE查看全部
-
+obj 优先调用valueOf,如果值是基本类型就使用他,如果不是继续调用toString,如果值是基本类型就使用他,如果都不是基本类型就会报错.查看全部
-
function foo(){ this.a=100; return this.b; } function foo2(){ this.a=100; return {a=1}; } new foo();//如果new一个函数对象,返回的值不是对象,那么会忽略这里的return语句,而且函数体内的this初始化一个原型对象为foo的prototype空对象,this.b=100; 那么最终new foo() 返回的对象为{a:100} new foo2();//如果返回值为一个函数,那么new foo2() 返回的是return的那个对象查看全部
-
闭包 for(var i=1;i<4;i++){ (function(i){}(i)); }查看全部
-
get/set方法与this查看全部
-
属性标签的设置对应的功能查看全部
-
数组最大长度2^23-1查看全部
-
+obj 优先调用valueOf,如果值是基本类型就使用他,如果不是继续调用toString,如果值是基本类型就使用他,如果都不是基本类型就会报错.查看全部
-
Student.prototype=new Person(); 和 Student.prototype=Object.create(Person.prototype); 是等价的?查看全部
举报
0/150
提交
取消