js学习心得2

来源:互联网 发布:香港阿里云 淘宝 编辑:程序博客网 时间:2024/04/29 08:53

1.用"."或“[ ]”获得对象或数组元素时,符号之前的表达式会先计算,如果得到值为null或undefined则会抛出异常,因为这个值没有任何属性

2.当获得对象的属性名非合法标识符(空字符串,标点,保留字)或者属性名是通过表达式动态计算获得必须用"[ ]"获得对象属性

3.如果构建的对象不需要传入任何参数,"( )"是可以省略的,如new Date;

4.加号的操作规则优先考虑字符串连接

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

对象object.属性的查询

1、可以用"."或者"[ ]"获得属性,但是对于属性石关键字的只能选择用“[ ]”来获得。例如book["name"]

2、只有在查询属性时才体会到继承的存在,在设置属性时则和继承无关

3、当一个对象的自属性有setter方法,当这个对象调用setter方法时,只对该对象的属性进行修改,原型链该属性不会修改

4、查询不存在的属性不会报错,返回undefined,但是查询不存在对象的属性就会报错

5、删除属性 delete book.name,而且delete只能删除自有属性,不能删除继承属性

6、判断一个属性是不是在对象中,可以用in/hasOwnProperty,其区别是对于继承属性,in返回true,hasOwnproperty返回false

7、用in/for对对象的属性进行枚举,但是in/for会把继承属性给枚举出来,因此要添加一些过滤条件,例如

for ( p in o){

       if (!o.hasOwnProperty(p)){

              continue;

     }

      if (typeof o[p] === "function"){

              continue;

      }

}

8、属性getter/setter方法的定义

get r() {},

set r(value){}

9、获得对象的class可以用方法classOf(o);

 

0 0