-
arr.join('—'):以-为分隔符输出数组元素,没有参数是,默认用,分隔 arr.sort():对数组进行排序,直接改变原数组,想按照某种特定的顺序排列,可以传入比较函数 arr.concat():拼接数组,原数组不变 arr.slice(1,3):返回arr[1]到arr[2]的字数组,只传一个时,直接取到数组末尾,可传负数,不修改原数组; arr.splice(2,3):返回从arr[2]开始的三个元素的子数组,并将这部分数据从原数组中删除,如不传第二个参数,则一直到数组末尾,若还出现后续的参数,则在删除的位置加入,新的参数;查看全部
-
对于sort(function(a,b){return a-b};),API如是说 如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下: 如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。 如果a等于b,就返回0。 如果a大于b,就返回一个大于0的值。 注意,数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。查看全部
-
extensible 是否可以扩展,默认为true 通过Object.isExtensible(obj)判断 通过Object.preventExtensions(obj)阻止增加新的属性, 但是要加上Object.seal(obj)才算是真正的限制修改、删除(configurable = false) Object.isSealed(obj) //判断 通过Object.freeze是更进一步(writeable和configurable都为false) Object.isFrozen(obj) //判断 Object.freeze对与原型链上的没有影响 bject.preventExtensions() 方法让一个对象变的不可扩展,也就是永远不能再添加新的属性。 Object.seal() 方法可以让一个对象密封,并返回被密封后的对象。密封对象是指那些不能添加新的属性,不能删除已有属性,以及不能修改已有属性的可枚举性、可配置性、可写性,但可能可以修改已有属性的值的对象。 Object.freeze() 方法可以冻结一个对象。冻结对象是指那些不能添加新的属性,不能修改已有属性的值,不能删除已有属性,以及不能修改已有属性的可枚举性、可配置性、可写性的对象。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。 序列化 JSON.stringify(obj) 1、如果值是undefined, 那么是不出现在序列化中的 2、NaN和Infinity是会转成null 3、时间会转成UTC格式 通过JSON.parse('{}');方法反序列化 valueOf是返回对象原始值,toString是将转化成字符串。 valueOf - 尝试把对象转换为基本类型时自动调用的函数,可自己定义 使用一元运算符 + 可转换为数字 当toString 和 valueOf 同时存在,先寻找valueOf,如果不存在或不合法的值(为对象),则再寻找toString;否则使用valueOf的方法。查看全部
-
对象标签: proto:原型 class:表示对象是哪一个类型 Object.prototype.toString()会把参数先变为对象 isExtensible:对象是否可扩展,对象上的属性是否可以继续添加,默认是true,通过preventExtensions设置不可扩展但还是可以通过getOwnPropertyDescriptor或者这个属性的属性查看全部
-
Object.preventExtensions(obj) //阻止对象扩展,但是仍然可以修改,枚举,删除 Object.isExtensible(obj) //对象是否可扩展 Object.seal(obj) //阻止对象可配置,修改configurable:false Object.isSealed(obj) ;// 判断对象是否被隐藏 Object.freeze(obj) //冻结对象修改、遍历、配置 Object.isFrozen(obj); //判断对象是否被影响 以上方法只是针对于对象,并不会影响原型链查看全部
-
属性标签 writable:是否可以修改 enumerable:是否可以遍历、枚举 configurable:是否可以修改,属性是否可以删除 value:属性的值 可以使用Object.defineProperty函数来管理属性查看全部
-
prototype属性 每个对象创建实例都有一个prototype属性 object.prototype.toString查看全部
-
1.get name(){} 2.set name(){} 3.类型判定 4.Object.deineProperty 默认writable=false configurable=false 5.get set方法也会与属性一样关联原型链 6.优先this,之后super查看全部
-
一元操作符+,尝试将val变为number,若不能转为number,则返回NAN get/ set 方法,逗号分隔,get 读取,set 赋值。 如果属性有get/set方法,直接给属性赋值,是不成功的。 因为Object.defineProperty方法创建的属性 默认的writeable,configurable是false的 因此不能设置 设置configurable 为true,就可设置obj.z 的值 设置writeable 为true,就可以改变原型该属性的值查看全部
-
null == undefined ----> true true == 1 ----> true null === undefined ----> false true === 1 ----> false查看全部
-
null == undefined ----> true true == 1 ----> true null === undefined ----> false true === 1 ----> false查看全部
-
Object.creat(xxx); //xxx为原型创建,注意,此处并非将xxx直接赋值给新实例的原型,而是相当于创造一个副本,然后再将副本作为新实例的原型 obj.propertyIsEnumerable('xxx'); //是否枚举 obj.hasOwnProperty('xxx'); //是否为本对象属性 Object.defineProperty(对象,'属性',{配置参数}); //配置属性 for(var key in val){ //遍历包括原型可枚举属性,遍历顺序不确定,如要顺序遍历需用for //遍历内容查看全部
-
hasOwnProperty//自身属性 defineProperty(cat,"price",{enumerable:false,value:1000})查看全部
-
1.hasOwnProperty() 构造函数属性判断方法。 2.in操作符 3.delete 只能删除对象上属性,不会删除原型属性。 4.字面量对象有默认原型。 5. var obj=Object.create(null); obj.toString //undefined查看全部
-
'use strict'严格模式 不允许使用with 不允许未声明的变量赋值(a = 1全局变量) arguments变为参数的静态副本,修改arguments[0] = 100不会影响参数 delete参数、函数名报错 对象字面量属性重复报错var obj = {a:1, a:2},非严格模式a被覆盖=2,严格模式会报错 argument.callee和argument.caller被禁用查看全部
举报
0/150
提交
取消