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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • val = +val;

    这一条语句表示

    如果val是数字,那么+val的+号不起什么作用

    如果val是字符串,那么+val的+号会企图把val转换为数字然后赋值给val

    ( 其实可以理解为数学里的  正号+  和  负号- )

    查看全部
  • 注意:

    对象man里的

    get age() {}

    set age(val) {}

    并不是对象man的方法,而是对象man的属性

    这是因为

    只能使用man.age而不是man.age()

    (但是get和set可以看做是属性的方法???)

    查看全部
  • 数据类型  总共有六种数据类型  5种原始类型  一种对象类型




    查看全部
  • firefox  MDN  docs:


    https://developer.mozilla.org/zh-CN/learn/javascript


    查看全部
  • typeof null 是Object 历史遗留

    查看全部
  • delete

    查看全部
  • 枚举就是使用for..in来输出对象的所有属性

    如果不想让对象输出原型链上的属性

    可以通过if语句使用对象的hasOwnProperty()的方法作为条件来过滤掉原型链上的属性


    查看全部
  • 通过

    Object.defineProperty(对象, 对象的属性, {属性的标签: 对应的值})

    的方法来定义一个对象属性的标签的情况  如

    Object.defineProperty(cat, 'legs', {enumerable : false, value : 1000});

    用来定义对象cat的属性'legs'是不可枚举的!

    使用这种方法定义对象属性的标签,在不写标签的情况下,enumerable都默认为false


    查看全部
  • 对象的一个方法

    propertyIsEnumerable()

    用来判断一个对象的某个属性是不是可以枚举的(也就是是否可以打印出来,显示出来)

    传入形参为对象的某个属性  使用对象调用这个方法  如

    obj.propertyIsEnumerable('toString')  // false

    查看全部
  • 我们无法删除(用var定义的)变量和函数

    试图delete一个(用var定义的)变量或者试图delete一个函数

    都会返回false


    如果在声明一个变量时  没有加var  而是隐式的把这个变量声明为全局变量  如

    test = 1;

    window.test;  // 1

    delete test;  // true

    这样子是可以删除变量的

    查看全部
  • 有些对象属性是无法delete的

    比如Object.prototype

    如何查看一个对象的属性是否可以删除呢?

    用Object的方法getOwnPropertyDescriptor(对象,属性)  查看对象属性的标签

    对象属性的标签之一configurable决定了属性是否可删除!

    查看全部
  • 如果对象obj不存在y属性的话

    obj.y返回的是undefined

    这种情况下试图读或写obj.y.z都会报错


    对     var yz = obj && obj.y && obj.y.z;     的解读

    如果obj不存在  则yz赋值为undefined  如果obj存在  接着判断obj.y

    如果obj.y不存在  则yz赋值为undefined  如果obj.y存在 接着判断obj.y.z

    如果obj.y.z不存在  则yz赋值为undefined  如果obj.y.z存在  则yz赋值为obj.y.z的值

    查看全部
  • typeof

    instanfof

    tostring

    检测函数


    查看全部
  • 属性读写的两种方法

    ①obj.x

    ②obj["x"]

    一般情况下使用obj.x就好

    如果是要使用一般for循环来遍历obj的话,使用obj["x" + i]会比较好(前提是obj的属性都是x开头加上数字)obj["x" + i]会把中括号里面的转换为字符串!

    如果想用for..in..循环遍历obj的属性的话,要注意,for..in是无序的,而且很有可能会把obj原型链上的属性也一起遍历!(遍历对象的属性的话不可以用for..of..)

    查看全部
  • 当我们使用Object.create()方法来创建一个新对象时

    这个对象的原型指向Object.create()里的形参内容!!!

    也就是说

    这个对象的原型proto是传入Object.create()的形参!!!

    而不是  这个对象本身是传入Object.create()的形参!!!


    如果传入Object.create()的形参是null的话(即Object.create(null))

    这个新建的对象指向null(其实这个对象也就是null了,没有一般对象的toString()方法)

    查看全部

举报

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

微信扫码,参与3人拼团

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

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