1.在javascript中,注释有两种:
(1)块注释 /* xxx */
(2)行注释 //
但推荐使用行注释,因为块注释在某些情况下会是个糟糕的选择:
例: /* var r = /abc*/.match(s); */ 会导致产生语法错误
2.js 中如果想要遍历一个对象中的所有属性有两种方法:
(1)使用 for in 语句:
使用for in会列出所有的属性(包括函数和你可能不关心的原型中的属性),所以有必要过滤掉那些不想要的值
一般使用 hasOwnProperty 方法(过滤属性)和 typeof 操作符(过滤方法)
如:
- var obj = {
- name:'Lucy',
- sex:'M',
- walk:function(){
- alert("I'm walking!");
- }
- };
- for(var k in obj){
- if(typeof obj[k]!='function'){
- alert(obj[k]);
- }
- }
在这里属性名出现的顺序是不确定的,因此要对任何可能出现的顺序有所准备。如果想要确保属性以特定的顺序出现,最好的办法就是完全避免使用 for in 语句,而是使用 for 语句
(2)使用 for 语句
此时需要创建一个数组,在其中以正确的顺序包含属性名:
- var props = ['name','sex'];
- var obj = {
- name:'Lucy',
- sex:'M',
- walk:function(){
- alert("I'm walking!");
- }
- };
- for(var i=0;i<props.length;i++){
- alert(obj[props[i]]);
- }
总结:由此可见,通过使用 for 而不是 for in ,可以得到我们想要的属性,而不用担心可能发掘出原型链中的属性,并且可以按正确的顺序取得了它们的值
3.delete 运算符可以用来删除对象的属性。它将会移除对象中确定包含的属性,但不会触及原型链中的任何对象
(删除对象的属性可能会让来自原型链中的属性浮现出来)