-
一个开启严格模式的函数(非对象方法),其中的 this 不再被封装为对象,如果没有指定 this 的话它的默认值则是 undefined(!视频中说的是 null),而不是全局对象。但如果指定 this 的话,其值仍可能是全局对象,具体取决于所在上下文。(相关:http://dwz.cn/23JWzI)查看全部
-
严格等于查看全部
-
js重载查看全部
-
类型检测小结查看全部
-
判断对象类型更常用的是用instanceOf,基于原型链来判断类型。instanceOf期待操作的是对象;左边的对象是否在原型链上有右边操作对象的构造函数的 typeof 适合函数类型和基本类型 。 数组和null都会返回object。 instanceof 判断对象类型,基于原型链。 判断左操作数的对象的原型链上是否含有右边构造函数的property属性 注意:不同Window或iframe间的对象类型检测不能使用instanceof查看全部
-
类型检测: typeof xxx; //对null检测有问题 xxx instanceof xxx; //在不同的window和iframe下,检测有问题 Object.prototype.toString.apply(xxx); //在IE6,7,8下,对null和undefined检测失效查看全部
-
包装对象,就是当基本类型以对象的方式去使用时,JavaScript会转换成对应的包装类型,相当于new一个对象,内容和基本类型的内容一样,然后当操作完成再去访问的时候,这个临时对象会被销毁,然后再访问时候就是undefined。number,string,boolean都有对应的包装类型。 (1)number,string,boolean都有对应的包装类型 eg:var str="string";//字符串类型 var strObj=new String("string")//对象类型,String类型对应的包装类 str不是对象,是基本类型不应该有属性和方法 字符串,当把一个基本类型尝试以对象的方式去使用时,比如访问length属性或者增加一些属性,js会把基本类型转换为对应的包装类型对象,相当于new了一个string,当访问结束后这个临时对象会被销毁掉.查看全部
-
正则吧表达式中基本的特殊字符;查看全部
-
正则表达式匹配的两种方式: 1、字面量:/\d\d\d/.test(string); 2、构造器:new RegExp('\d\d\d').test(string);查看全部
-
系列化的自定义查看全部
-
与后端的数据传输系列化查看全部
-
属性的标签汇总查看全部
-
对象标签: [[proto]] [[class]]没有直接的方式获得class,通过间接的方式Object.prototype.toString [[extensible]]对象是否可扩展--对象上的属性是否可以继续添加 var obj = {x:1,y:2}; Object.isExtensible(obj);//true Object.preventExtendsions(obj);//设置不可扩展 Object.isExtendsible(obj);//false obj.z = 1; obj.z; Object.getOwnPropertyDescriptor(obj,'x');//Object{value:1,writable:true,enumerable:true,configurable:true} -------------------------------------- Object.seal(obj);隐藏该对象 Object.getOwnPropertyDescriptor(obj,'x');//Object{value:1,writable:true,enumerable:true,configuration:false} Object.isSealed(obj);//true ------------------------------------- Object.freeze(obj);//冻结该对象 Object.getOwnPropertyDescriptor(obj,'x');//Object{value:1,writable:false,enumerable:true,configuration:false} Object.isFrozen(obj);//true -------------------------------- 序列化 JSON.stringify(obj);//前端到后台 obj=JSON.parse('{"x":1}'); obj.x;//1查看全部
-
属性标签: Object.getOwnPropertyDescriptor({声明一个字面量对象},'字符串属性名'); Object.getOwnPropertyDescriptor({pro:true},'pro'); var person = {};//声明一个空对象 Object.defineProperty(属性的对象,'字符串属性名',{对象具体标签值});//创建属性 Object.defineProperty(person,'name',{configurable:false,writable:false,enumerable:true,value:"han"});//创建属性查看全部
-
function foo(){} Object.definProperty(foo.prototype ,'z',{get:function(){return 1;}}); var obj = new foo(); obj.z;//1 obj.z=10; obj.z;//stil 1 Object.definProperty(obj,'z',{value:100,configurable:true}); obj.z;//100; delete obj.z;//true obj.z//back to 1 var o = {}; Object.definProperty(o,'x',{value:1});//writable=false,configurable=false var obj = Object.creat(o); obj.x;//1 obj.x=200; obj.x;//still 1 ,can't change it Object.definProperty(obj,'x',{writable:true,configurable:true,value:100}); obj.x;//100 obj.x = 500; obj.x;//500查看全部
举报
0/150
提交
取消