为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 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
提交
取消
课程须知
1.您至少学习了本站“JS入门”、“JS进阶”两门基础课程。 2.如您具备一定实践经验对学习有很大帮助。 3.如您没有脚本编程开发经验,学习过程有可能会受挫部分内容或示例代码,请“暂时略过不懂的部分,后面章节会阐述”,当然想透彻学习,还需大量实践来体会知识的内涵。
老师告诉你能学到什么?
结合实例,深入解析以下知识内容: 1. 数据类型、表达式和运算符、语句; 2. 对象、数组、变量、函数; 3. this、闭包和作用域; 4. OOP; 5. 正则与模式匹配。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!