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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 等于判断
    查看全部
  • typeof适合基本类型及function检测,遇到null失效 {}.toString适合内置对象和基本类型,遇到null和undefined失效 instanceof适合自定义对象,也可以用来检测原生对象,在不同iframe和Window间检测失效
    查看全部
  • enumerable:false, //Object.keys(obj);中不会列举出obj对象中enumerable为false的属性 Object.defineProperties(obj,{property1:{value:'abc', enumerable: true}, property2:{...},property3:{...}}) defineProperties可以接受json型的对象作为参数。除了显式注明的标签(obj.property1.enumerable),其他标签默认值都是false。 defineProperties的参数中,还可以设置属性的get set方法: Object.defineProperties(obj,{property1:{get:function(){}, set: function(value){}}}) configurable为true, writeable为false,要修改属性的值,可以通过修改value标签(因为configurable为true)实现,也可以通过修改writable为true,进而对属性直接赋值。 configurable为false,writable为true时,只能通过直接复制修改属性值,不能编辑value属性,不能修改get set方法 configurable为false时,所有标签都不能被修改,除了将writable从true改为false Object.getOwnPropertyDescriptor(对象名,'属性名');拿到某个属性标签的是否可读写,枚举,配置等 value: 属性值 writable: 该属性是否可写,可改变<br> enumerable:该属性是否可被枚举,就是可在for in中出现<br> configurable: 该属性的标签是否可改变,是否可用delete将该属性删除
    查看全部
  • 第一个截图笔记
    查看全部
  • 原始类型:object number string boolean null underfined
    查看全部
  • 严格模式
    查看全部
  • var foo = {}; foo.x = 1; var obj = Object.create(foo); obj.x = 2; //这里能给予赋值是很正确的,可以通俗理解为obj和foo都是普通对象,普通对象当然能给自己添加属性赋值 //只是obj这个家伙偷懒‘引用’了foo的属性。但不影响obj有权利随意给自己添加属性不受你foo的限制, //所以obj.x可以随意赋值,但注意其实这没有改变foo.x的值 var foo = {}; Object.defineProperty(foo,'x',{value:1}); var obj = Object.create(foo); //这里就不一样了,Object.defineProperty()就是皇上的圣旨,给了foo特权,这个特权就是obj必须服从 //foo的指挥,只要foo说x是什么样子,那obj的x就是什么样子,所以这里不管obj.x赋值是多少对不起你都 //和foo.x的值一样; //obj.x想要翻身当主人怎么办? 当然还是需要Object.defineProperty()给的圣旨才行; Object.defineProperty(obj,'x',{value:2}); 1.原型链上有get或set方法,就不会在当前对象上设置元素。 2.原型上有set方法,则对原型上属性的赋值可以进行,否则不行。
    查看全部
  • 类型检测小结:typeof、[[Class]]、instanceof
    查看全部
  • Object.prototype.toString.apply([]);==="[object Array]"; Object.prototype.toString.apply(function(){});==="[object Function]"; Object.prototype.toString.apply(null);==="[object Null]"; Object.prototype.toString.apply(undefined);==="[object Undefined]";
    查看全部
  • 10.17继续
    查看全部
  • 类型检测
    查看全部
  • 数据分类
    查看全部
  • 此处有疑问 【var getX=module.getX; getX();】
    查看全部
  • 数组增删方法
    查看全部
  • 首先,set方法实在给属性赋值的时候触发的函数,他参数只能传递一个 直接传递多个是不行的。那我们换个思路。把多个参数绑定到一个对象,然后把对象作为参数传给set方法。具体如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 var Person = { name:"Jobs", age:99, //定义一个change方法,可以改变Person的name和age属性,并且输出改变后的属性值 set change(o){ this.name = o.name; this.age=o.age; console.log("The Person's name:"+this.name+",and age:"+this.age+"."); } }; Person.change = {name:"xiaoming",age:88}; //执行结果如下: The Person's name:xiaoming,and age:88. 这样就没有问题了。根据这个,你甚至可以做到传好几个参数给set方法使用。
    查看全部

举报

0/150
提交
取消
课程须知
1.您至少学习了本站“JS入门”、“JS进阶”两门基础课程。 2.如您具备一定实践经验对学习有很大帮助。 3.如您没有脚本编程开发经验,学习过程有可能会受挫部分内容或示例代码,请“暂时略过不懂的部分,后面章节会阐述”,当然想透彻学习,还需大量实践来体会知识的内涵。
老师告诉你能学到什么?
结合实例,深入解析以下知识内容: 1. 数据类型、表达式和运算符、语句; 2. 对象、数组、变量、函数; 3. this、闭包和作用域; 4. OOP; 5. 正则与模式匹配。

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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