javascript 容易误解的地方
2015-05-22 11:47
417 查看
(1)使用for…in遍历对象时,不仅会遍历对象中的属性和方法,同时也会遍历类的原型中的属性和方法
运行结果:
![](http://img.blog.csdn.net/20150522110437416)
(2)
运行结果:
报错:ReferenceError: name123 is not defined
alert(name123);
//var name123=”whuang”;
但是:
运行结果:undefined
(3)
预期结果:my name is whuang , age is 24
运行结果:
my name is whuang , age is 23
(4)声明但是不赋值就不会改变原来的值
运行结果:
whuang
经验:当我们不确定变量是否被声明,但是又需要调用时,我们可以声明一下,防止报错.
因为声明但是不赋值就不会改变原来的值
(5)判断变量是否被声明过
通过if判断:
运行结果:
![](http://img.blog.csdn.net/20150523112647863)
总结:通过if判断不保险.
正确的做法是通过typeof 来判断
运行结果:undefined
当然也可以通过下面的方式来判断:
注意:在变量前增加了”window.”
[code]var Person=function(){ this.username="huangweii"; this.age=27; this.sayHello=function() { console.log("username is :"+this.username); } } Person.prototype.sex='man'; Person.prototype.eat=function(){ console.log('eat...'); } var person=new Person(); person.sayHello(); console.log('------------------------'); for(var i in person){ console.log("key:\t"+i); }
运行结果:
(2)
[code]alert(name123);
运行结果:
报错:ReferenceError: name123 is not defined
alert(name123);
//var name123=”whuang”;
但是:
[code]alert(name123); var name123="whuang";
运行结果:undefined
(3)
[code]function sayHello(username,age) { arguments[1]=23; console.log('my name is '+username+" , age is "+age); } sayHello('whuang',24);
预期结果:my name is whuang , age is 24
运行结果:
my name is whuang , age is 23
(4)声明但是不赋值就不会改变原来的值
[code]var username333='whuang'; var username333; console.log(username333);
运行结果:
whuang
经验:当我们不确定变量是否被声明,但是又需要调用时,我们可以声明一下,防止报错.
因为声明但是不赋值就不会改变原来的值
(5)判断变量是否被声明过
通过if判断:
[code]if(abcaa11112)//error { console.log(abcaa11112); }else{ console.log('没有被声明过'); }
运行结果:
总结:通过if判断不保险.
正确的做法是通过typeof 来判断
[code]console.log(typeof abcaa11112);//ok
运行结果:undefined
当然也可以通过下面的方式来判断:
[code]if(window.abcaa11112)//ok { console.log(window.abcaa11112); }else{ console.log('没有被声明过'); }
注意:在变量前增加了”window.”
相关文章推荐
- java 中容易误解的地方
- javascript作用域容易记错的两个地方
- JavaScript容易误解的概念
- android学习记录(六)FragmentTransaction(回退栈)容易误解的地方
- STL set 容易引起误解的一个地方
- 正则表达式中容易误解的地方
- javascript sort方法容易犯错的地方
- Javascript中容易被忽视的地方
- 编写JavaScript时容易出错的几个地方
- golang http.Redirect()函数容易误解的地方
- javascript作用域容易记错的两个地方分析
- Shiro容易误解的地方
- C++中几处容易误解的地方
- python yield send 一个容易犯错的地方
- SQL server 容易让人误解的问题之 聚集表的物理顺序问题
- javascript中使用css需要注意的地方小结
- javascript需要记忆又容易被忽视的基础
- Java中几个容易犯错的地方
- Java向前引用容易出错的地方