当前位置: 首页 > news >正文

成都 网站建设 公司单位网站建设费如何入账

成都 网站建设 公司,单位网站建设费如何入账,网站建设遇到哪些问题,关键词搜索工具爱站网系列文章目录 前端系列文章——传送门 JavaScript系列文章——传送门 文章目录系列文章目录对象方法一、Object原型方法1、hasOwnProperty2、isPrototypeOf3、propertyIsEnumerable4、toString5、其他二、Object方法1、assign2、create3、defineProperties4、defineProperty5、…系列文章目录 前端系列文章——传送门 JavaScript系列文章——传送门 文章目录系列文章目录对象方法一、Object原型方法1、hasOwnProperty2、isPrototypeOf3、propertyIsEnumerable4、toString5、其他二、Object方法1、assign2、create3、defineProperties4、defineProperty5、entries6、freeze7、fromEntries8、getOwnPropertyDescriptors9、getOwnPropertySymbols10、getPrototypeOf11、hasOwn12、is13、isExtensible14、isFrozen15、keys16、preventExtensions17、setPrototypeOf18、seal19、values三、ES6的对象操作1、Symbol2、Reflect3、Proxy对象方法 一、Object原型方法 Object构造函数对应的原型中有很多方法比较实用如下 console.log(Object.prototype)图示 1、hasOwnProperty 用于判断某个对象是否具有某个自带属性。自带属性指的是自身就有的而非继承来的语法 对象.hasOwnProperty(非继承属性) // 返回布尔值true表示是false表示否例 function Person(name, age) {this.name namethis.age age }Person.prototype.sex 男var man new Person(张三, 12)console.log( man.hasOwnProperty(name) ); // true console.log( man.hasOwnProperty(sex) ); // false console.log( man.hasOwnProperty(height) ); // false只有自己内非继承的属性才能返回true继承的和不是自己的属性都是false。 2、isPrototypeOf 用于判断一个对象是否在另一个对象的原型链上。语法 对象a.isPrototypeOf(对象b) // 判断对象a是否在对象b的原型链上返回布尔值例 function Animal() {}var ani new Animal()function Bird() {}Bird.prototype anivar maque new Bird()console.log( Object.prototype.isPrototypeOf(maque) ); // true console.log( ani.isPrototypeOf(maque) ); // true var ani1 new Animal() console.log( ani1.isPrototypeOf(maque) ); // false3、propertyIsEnumerable 用于判断是否可以从对象中遍历得到某个属性语法 对象.propertyIsEnumerable(属性名) // 返回布尔值例 function Person(name, age) {this.name namethis.age age }Person.prototype.sex 男var man new Person(张三, 12)console.log( man.propertyIsEnumerable(name) ) // true - 自己的属性可以遍历 console.log( man.propertyIsEnumerable(sex) ) // false - 继承来的属性无法遍历4、toString 用于将对象转成字符串语法 对象.toString() // 返回[object Object]5、其他 toLocaleString和valueOf没有实际的效果是为了让子原型能具备这些方法来实现不同类型数据的功能。 toLocaleString给不同的数据调用会得到不同的数据 // 对象调用 var obj {name: 张三, age: 123456} console.log( obj.toLocaleString() ); // [object Object]// 字符串调用 var str abcdefg console.log( str.toLocaleString() ); // abcdefg// 数字调用 var num 123456789 console.log( num.toLocaleString() ); // 123,456,789// 布尔值调用 var bool true console.log( bool.toLocaleString() ); // true// 时间日期对象调用 var date new Date() console.log( date.toLocaleString() ); // 2022/11/4 09:20:01只有数字和时间日期对象调用的时候能起到作用其他类型的数据调用后会默认调用toString方法转成字符串而已。 valueOf给不同类型的对象调用功能是不同的 // 对象调用 var obj {name: 张三, age: 123456} console.log( obj.valueOf() ); // {name: 张三, age: 123456}// 字符串调用 var str new String(abcdefg) console.log( str.valueOf() ); // abcdefg// 数字调用 var num new Number(123456789) console.log( num.valueOf() ); // 123456789// 布尔值调用 var bool new Boolean(true) console.log( bool.valueOf() ); // true// 时间日期对象调用 var date new Date() console.log( date.valueOf() ); // 1667525014847时间日期对象调用能获取到时间戳其他类型的对象调用会得到具体的值相当于console.log(数组/对象)的值 二、Object方法 Object本身也有一些实用的方法 console.dir(Object)图示 1、assign 用于将一个对象中可遍历的属性复制到另一个目标对象中返回目标对象语法 var 新目标对象 Object.assign(原目标对象, 被复制的对象)例 var obj {name: 张三,age: 12 }var pbj {sex: 男,height: 180 }pbj.__proto__.weight 150 // 不可遍历属性无法复制var qbj Object.assign(obj, pbj) // 将pbj中的属性复制到obj中console.log(obj); // {name: 张三, age: 12, sex: 男, height: 180} console.log(qbj); // {name: 张三, age: 12, sex: 男, height: 180} console.log(obj qbj); // true通常用于做浅克隆将一个对象中的属性复制在另一个空对象中。 2、create 用于创建一个对象并指定这个对象的原型语法 var 对象 Object.create(指定的原型对象, {对象键值对的描述}) // 返回创建好的对象参数1必填例 var obj Object.create()报错如下 表示参数1必填且参数必须是一个对象或null。 参数2是可选项默认是空对象 例 var obj Object.create(null) console.log(obj); // 这个对象没有原型创建的是一个空对象且这个对象没有原型 var pro {name: 张三 }var obj Object.create(pro) console.log(obj);创建的是一个空对象原型为pro对象 参数2中的键是对象要拥有的键值必须是一个对象用于对属性的描述描述的对象语法如下 {value: 123, // 属性的值writable: false, // 属性是否可修改enumerable: true, // 属性是否可遍历configurable: false, // 属性是否可删除get: undefined, // 访问属性值的时候执行什么程序set: undefined // 设置属性值的时候执行什么程序 }例 var obj Object.create(null, {age: {value: 12,writable: true,enumerable: true,configurable: true,}, }) console.log(obj);3、defineProperties 用于给对象添加或修改一个属性语法 Object.defineProperties(对象, {对象键值对的描述}) // 返回处理后的对象例 var pro {name: 张三 }var obj Object.defineProperties(pro, {age: {value: 12,writable: true,enumerable: true,configurable: true,}, }) console.log(obj);4、defineProperty 用于监视对象某个属性被访问或被修改的操作语法 Object.defineProperty(对象, 属性名, {// 对象属性的描述writable: false, // 属性是否可修改enumerable: true, // 属性是否可遍历configurable: false, // 属性是否可删除get: undefined, // 访问属性值的时候执行什么程序set: undefined // 设置属性值的时候执行什么程序 })例 Object.defineProperty(obj, name, {writable: false, // 属性是否可修改enumerable: true, // 属性是否可遍历configurable: false, // 属性是否可删除get: function() { // 访问属性值的时候执行什么程序return 值 // 当访问obj.name的时候会得到这个返回的值},set: function(val){ // 设置属性值的时候执行什么程序// 当给obj.name赋值的时候会在这里截获到他的值为val} }) console.log( obj.name ); obj.name 李四案例数据和视图双向绑定 body input typetext /body script function ViewModel(msg) {this.msg msg }var vm new ViewModel(哈哈)var input document.querySelector(input)input.value vm.msgObject.defineProperty(vm, msg, {configurable: false,enumerable: true,get: function() {return input.value},set: function(val) {input.value val} })input.oninput function() {vm.msg this.value }/script改变文本框的值对象的值会改变改变对象的值文本框的值也会改变。 5、entries 用于将对象中可遍历的键值对组成一个数组并返回语法 Object.entries(对象) // 返回数组例 var obj {name: 张三,age: 12 }Object.defineProperties(obj, {sex: {value: 男,enumerable: false,} })console.log(obj);var arr Object.entries(obj)console.log(arr);6、freeze 用于冻结一个对象让对象不能新增、不能修改、不能删除、不能改原型不能改属性的特性语法 var 对象 Object.freeze(对象) // 返回被冻结的对象例 var obj {name: 张三,age: 12 }obj Object.freeze(obj)console.log(obj);obj.sex 男 console.log(obj);obj.name 李四 console.log(obj);delete obj.age console.log(obj);obj.__proto__ {height: 180} console.log(obj.height);如果对象中的值是一个对象里面的小对象是没有被冻结的也就说这种冻结只是浅冻结 var obj {name: 张三,age: 12,wife: {name: 翠花,age: 13} } obj Object.freeze(obj) obj.wife.sex 女console.log(obj);若要深冻结需要手动写递归函数实现 var obj {name: 张三,age: 12,wife: {name: 翠花,age: 13} }function deepFreeze(data) {for(var key in data) {if({}.toString.call(data[key]) [object Object]) {deepFreeze(data[key])}}return Object.freeze(data) }obj deepFreeze(obj) console.log(obj);obj.wife.sex 女 console.log(obj);冻结数据可以提高性能一个数据确保后面都不会修改的话就可以将他冻结。 7、fromEntries 跟entries的作用相反将一个map格式的数组多个键值对组成的数组转成一个对象语法 Object.fromEntries(map格式的数据) // 返回键值对组成的对象例 var arr [[name, 张三], [{age: 12}, 哈哈] ]var obj Object.fromEntries(arr)console.log(obj);可以将map转成对象。 8、getOwnPropertyDescriptors 获取对象中某个属性对应的描述对象。 9、getOwnPropertySymbols 将对象中所有symbol属性组成一个数组。 10、getPrototypeOf 获取对象的原型对象。 11、hasOwn 判断一个属性是否属于某个对象而不是被继承来的。跟hasOwnProperty的功能一样。 12、is 用来判断两个数据是否相等但是跟和都不一样基本类型数据判断数据看起来是否相等引用数据类型比较地址跟一样语法 Object.is(数据1, 数据2) // 返回布尔值例 // 基本类型 var a NaN var b NaN console.log(a b); // false console.log( Object.is(a ,b) ); // true - 表面看起来一样var a -0 var b 0 console.log(a b); // true console.log( Object.is(a, b) ); // false - 表名看起来不一样// 引用类型 var a {} var b {} console.log(a b); // false console.log( Object.is(a, b) ); // false13、isExtensible 用于判断一个对象是否可扩展是否可以给对象添加属性。冻结对象、密封对象不可以扩展。 14、isFrozen 用于判断一个对象是否被冻结。 15、keys 获取对象中所有键组成的数组。 16、preventExtensions 用于将一个对象变得不可扩展。 17、setPrototypeOf 用于给对象设置原型。 18、seal 封闭一个对象让对象不能添加新属性、不能删除键值对语法 Object.seal(要被封闭的对象) // 返回被封闭的对象例 var obj {name: 张三 }Object.seal(obj)delete obj.name console.log(obj);obj.age 12 console.log(obj);obj.name 李四 console.log(obj);19、values 获取对象中所有值组成的数组。 三、ES6的对象操作 1、Symbol object的键都是字符串且都是唯一的不能重复。假设我们使用一个别人提供的object但是需要给这个object添加一个新的键值对自己添加的键就有可能会跟object中原本的键冲突。symbol的主要作用就是创建对象中独一无二的键可以从根本上防止对象中的键重复。 也就是说对象中的键除了是字符串以外还可以是symbol数据。 symbol数据通过Symbol函数生成语法如下 var s Symbol() console.log(s); console.log(typeof s);Symbol是一个函数但不是一个构造函数如果将Symbol当做构造函数new使用会报错。 var s new Symbol() console.log(s);Symbol函数可以接受字符串参数同一个字符串得出的两个symbol是不相等的这样就保证了每一个symbol数据都是独一无二的 var s Symbol(name) var s1 Symbol(name) console.log(s s1); // false如果symbol的参数是一个对象会默认调用对象的toString方法得到字符串 var obj {name: 张三 }var s Symbol(obj) console.log(s);var pbj {name: 李四,toString: function(){return this.name} }var s1 Symbol(pbj) console.log(s1);symbol数据作为对象的键使用可以保证每个键都是唯一的 var obj {name: 张三,age: 12 } // 想给对象添加name属性和age属性可以对象中已经有了name属性和age属性了此时就将name和age做成symbol数据然后将symbol数据当做对象的键使用 // 通过name和age做成symbol数据 var nameSymbolKey Symbol(name) var ageSymbolKey Symbol(age) // 将symbol数据当做对象的键 obj[nameSymbolKey] 李四 obj[ageSymbolKey] 13 console.log(obj);symbol数据不能跟其他数据进行运算不能进行隐形类型转换 var s Symbol(0) var sum s 2 console.log(sum);其他隐形转换都会报错 var s Symbol(0) var str s abc // 报错console.log(Number(s)) // 报错Symbol可以强制转换成字符串和布尔值 var s Symbol()console.log( String(s) ); console.log(s.toString()); console.log(Boolean(s));通过symbol数据的description属性得到symbol数据创建时的字符串参数 var s Symbol(abc) console.log(s.description) // abc2、Reflect 解决对象访问、修改、删除后我们无法知道是否成功的问题。 问题当一个对象封闭后无法添加属性但我们并不知道是否添加成功 var obj {name: 张三 }Object.seal(obj)obj.age 12 console.log(obj);结果没有给将age添加到obj上假设我们并不知道这个对象是封闭的添加了属性但没添加成功我们会觉得莫名其妙。删除和修改同理。 使用Reflect进行添加、修改、删除就能知道是否成功了语法 Reflect.get(对象, 键) // 返回值或undefined Reflect.set(对象, 键, 值) // 给对象添加键值对返回布尔值 Reflect.deleteProperty(对象, 键) // 删除对象键值对返回布尔值例 ar obj {name: 张三 }Object.seal(obj)// 添加 var bool1 Reflect.set(obj, age, 12) console.log(bool1); // false// 删除 var bool2 Reflect.deleteProperty(obj, name) console.log(bool2); // false// 访问 var bool3 Reflect.get(obj, name) console.log(bool3); // 张三var bool3 Reflect.get(obj, aaa) console.log(bool3); // undefinedvar pbj {name: 李四 }// 添加 var bool1 Reflect.set(pbj, age, 12) console.log(bool1); // true// 删除 var bool2 Reflect.deleteProperty(pbj, name) console.log(bool2); // trueReflect是将对象基本操作换成了函数写法有了返回值方便我们进行判断了。 3、Proxy 创建一个被劫持/监听的对象当访问、设置、删除对象键值对的时候会被监视到和defineProoerty的功能是一样的。语法 var obj {name: 张三 }var pbj new Proxy(obj, {get(object, key) {console.log(object, key);return 111},set(object, key, val) {console.log(object, key, val);} })pbj.name 张三 // {name: 张三} name 张三console.log( pbj.name ); // {name: 张三} name 111实现数据和视图的双向绑定 body input typetext /body script var input document.querySelector(input) var data {msg: 哈哈 } input.value data.msg var vm new Proxy(data, {get(obj, key) {return input.value},set(obj, key, val) {input.value val} }) input.oninput function() {vm.msg this.value } /script
http://www.hkea.cn/news/14268900/

相关文章:

  • 领导不愿意做招聘网站怎么办免费建站小程序
  • 网站开发 在线报名北京seo执行
  • 福建公司网站开发绚丽网站
  • 大眼睛网站建设流程图制作
  • asp做的网站后台怎么进去做教育机构的设计哪些网站好
  • 德州市市政工程建设总公司网站互联网公司起名
  • 常州网站搭建温州瓯海建设局网站
  • 有特色的企业网站江宁交通建设集团网站
  • 国际版网站可以在国内做推广吗网站移动页面怎么做的
  • 动易网站怎么进入后台建筑材料网站建设
  • 全国集团网站建设建e网室内设计网现代简约
  • 一个微信可以做两个网站支付宝吗医院网站方案
  • 郑州制作网站软件如何申请百度竞价排名
  • 深圳响应式网站价格自学it做网站
  • 建设部网站在哪里报名考试wordpress 数据库挂马
  • 济南网站建设方案书网站网页设计是什么
  • 如何找网站建设客户站长之家psd素材
  • PS网站设计重庆互联网
  • 公司网站建设费分录网站建设如何投放广告
  • h5页面制作网站官网企业站
  • 淘客网站建设要求百度免费推广有哪些方式
  • 深圳哪里可以做物流网站完爆网站开发经典实例
  • 百度网站如何优化排名太原建站网站模板
  • 手机网站备案洛阳企业网站建设
  • 哪里有营销型网站制作百度推广时间段在哪里设置
  • 商务网站建设毕业设计模板下载c 做网站session用法
  • 民宿网站开发数据流图wordpress安装后应该删掉那些文件
  • 做网站普洱一六八互联网站建设
  • 做交易网站什么开发语言seo网络推广公司
  • 开发app需要什么样的团队网站建设价格很 好乐云seo