js的一些方法
一、defineProperty方法
Object.defineProperty 需要三个参数(object , propName , descriptor)
1 object 对象 => 给谁加
2 propName 属性名 => 要加的属性的名字 【类型:String】
3 descriptor 属性描述 => 加的这个属性有什么样的特性【类型:Object】
Object.defineProperty(object , propName , {
value: n, // 添加的数据类型 可以添加任何数据类型
enumerable: !0, // 是否可以遍历 默认false
configurable: !0,//属性是否可以被删除 默认false
writable: !0 //是否可以被重新赋值 默认false
})
// 封装的defineProperty方法
function _defineProperty(obj, pName,desc) {
return pName in object ? Object.defineProperty(obj , pName , {
value: desc,
enumerable: !0,
configurable: !0,
writable: !0
}) : obj[pName] = desc, obj ;
}
二、in 方法
1、判断属性属于对象
var str = { name:'小萝莉',age:25,sex:'女' }
'name' in str ? console.log("str有此属性"):console.log("str没有此属性")
//、str有此属性
2、 for in遍历对象属性
var str = { name:'小萝莉',age:25,sex:'女' }
for (var item in str) {
console.log(item, str[item])
//name 小萝莉 age 25 sex 女
}
三、indexof 判断某个字符出现的位置,判断是否有这个字段
var str="Hello world!"
console.log(str.indexOf("Hello")) //0
console.log(str.indexOf("World")) //-1判断是否有World,如果没有返回 -1
console.log(str.indexOf("world")) //6 从0开始数
四、escape 编码字符串 和unescape解码字符串
var test1 = "Visit W3School!"
var test2 = escape(test1)
var test3 = unescape(test2)
console.log(test1 + " <111>") // Visit W3School! <111>
console.log(test2 + " <222>") // Visit%20W3School%21 <222>
console.log(test3 + " <333>") // Visit W3School! <333>