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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 逗号运算符 var val = (1,2,3); //val=3 每个从左到右,依次计算表达式的值,最后取最后一个值。 var obj={}; Object.defineProperty(obj,"x",{ configurable:false, value:1 }); delete obj.x;//false obj.x; //1 function Foo(){}; Foo.prototype.x=1; var obj=new Foo(); obj.x; //1 obj.hasOwnProperty("x");//false //x属于Foo类型,obj对象没有x实例,它只是调用了Foo的共享单元 obj.__proto__.hasOwnProperty("x");//true //obj.hasOwnProperty('x')方法检查一个属性是否属于对象本身,而不是属于原型链上。 //obj.__proto__.hasOwnProperty('x') 检查一个属性是属于原型链上,而不是对象本身。
    查看全部
  • 1. 原始表达式 //常量、直接量、关键字、变量 3.14、"test"、null、i、k、j 2. 初始化表达式 //[1,2]、{x:1, y:2} 3. 函数表达式 //var fe = function(){}、(function(){})() 4. 属性访问表达式 //var o = {x:1}、o.x、o['x'] 5. 调用表达式 //func() 6. 对象创建表达式 //new Func(1,2)、new Object
    查看全部
  • var man={ name:"Bosn", weibo:'@Bosn', get age(){ return new Date().getFullYear()-1987; }, set age(val){ console.log("Age can't be set "+val); } } console.log(man.age);//27 man.age=100;//Age can't be set to 100; console.log(man.age);//still 27
    查看全部
  • var o={x:1,y:2,z:3}; 'toString' in o;//true o.propertyIsEnumerable("toString");//false var key; for(key in o){ console.log(key);//x,y,z } var obj=Object.create(o); var obj.a=4; var key; for(key in obj){ console.log(key);//a,x,y,z } var obj=Object.create(o); obj.a=4; var key; for(key in obj){ if(obj.hasOwnProperty(key)){ console.log(key);//a } }
    查看全部
  • defineProperty定义对象属性时,枚举等标签默认都是false Object.defineProperty(cat,"price",{enumerable:false,value:1000}); cat.propertyIsEnumerable("price");//false cat.hasOwnProperty("price");//true
    查看全部
  • var cat=new Object; cat.legs=4; cat.name="Kitty"; 'legs' in cat;//true 'abc' in cat;//false 'toString' in cat;//true .inherited property!!!!!!! cat.hasOwnProperty("legs");//true cat.hasOwnProperty("toString");//false //propertyIsEnumerable()检查是否可被枚举的。属性是否会出现在for in 中 cat.propertyIsEnumerable("legs");//true cat.propertyIsEnumerable("toString");//false
    查看全部
  • 获取对象上某个属性的配置标签信息: var descriptor=Object.getOwnPropertyDescriptor(Object,"prototype"); descriptor.configurable;//false
    查看全部
  • var yz=obj&&obj.y&&obj.y.z; //返回obj.y.z的值或undefined;
    查看全部
  • var obj=Object.create({x:1}); obj.x;//1 typeof obj.toString;//"function" //toString()来源Object源型链 obj.hasOwnProperty("x");//false //原型链继承关系 : obj->{x:1}->Object prototype ->null; 并不是所有对象都有toString()方法 var obj=Object.create(null); obj.toString //undefined 此时原型链继承关系 :obj->null。所以无toString()方法
    查看全部
  • 函数声明: fd();//true function fd(){ return true; } fe();//TypeError 函数表达式 var fe=function(){ }
    查看全部
  • var a=b=1;这样会将b声明为全局变量。 function foo(){ var a=b=1; } foo(); console.log(a);//undefined console.log(b);//1
    查看全部
  • js中没有块级作用域: for(var i=0;i<10;i++){ } 在作用域上等效于 var i=0; for(;i<10;i++) {} 同理: { var a=1; //... } 等效于 var a=1; { //.... }
    查看全部
  • obj.hasOwnProperty('x')方法检查一个属性是否属于对象本身,而不是属于原型链上。 obj.__proto__.hasOwnProperty('x') 检查一个属性是属于原型链上,而不是对象本身。
    查看全部
  • 逗号运算符 var val = (1,2,3); //val=3 每个从左到右,依次计算表达式的值,最后取最后一个值。
    查看全部
  • function Foo(){}; Foo.prototype.x=1; var obj=new Foo(); obj.x; //1 obj.hasOwnProperty("x");//false //x属于Foo类型,obj对象没有x实例,它只是调用了Foo的共享单元 obj.__proto__.hasOwnProperty("x");//true
    查看全部

举报

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

微信扫码,参与3人拼团

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

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