最近因为某种需要,正在学习JavaScript。选了一本书是O'REILLY出的叫<<JavaScript学习指南>>。感觉书很不错,看书过程中有些小问题我会记下来,所以这篇博客会持续更新。
1. var strValue="4"+3+1; //结果是“431”,+操作符也被重载了。
var strValueTwo=4+3+"1"; //结果为“71”,和java一样,先执行了+。
var firstResult="35"-3; //减法操作,结果32,-操作符没被重载。java中非法。
var secondResult=30/"3"; //除法操作,结果10. js可真是灵活。
2. 布尔值不需要引号,所以“false”和false是完全不同的。
3. 对于等于操作符==,如果一个数值为数字型,而另一个为字符型,那么相等操作符会转换变量的数据类型,判断同类型的时候数值是否相等。
而全等操作符===,是判断两个数值是否类型相同并且表示的数值也相等。
4. for in循环可以遍历某个对象的所有属性,如:
var MyText={
one : "one",
two : "two",
three : "three"
};
for(var prop in MyText){
document.writeln(prop);
}
for...in循环也可以用于数组,然而该循环的属性值是每个数组元素的索引,与一般的for循环较为不同。
var tsts=new Array('onw','two','three');
for(indx in tsts){
alert(tsts[index]);
}
5.创建String对象,要使用new关键字。若省略了该关键字,那么它将只是字符串基本类型,而不是String对象。所以,下面的两行是等价的,都是创建了字符串基本类型:
var strName="Shelley";
var strName2=String("Shelley");
所以,要想创造String对象应该像这样(var strName3=new String("Shelley");)
6.对于String的split函数,java和js有点不同。比如:
//对于java:
String string="hello,world,android,nima";
String[] arrayStrings=string.split(",",2);
for(int i=0;i<arrayStrings.length;i++){
System.out.println(arrayStrings[i]);
}
//运行结果:
hello
world,android,nima
//而对于js,结果为:
hello
world
7. js中的数组,创建数组的方式以下两种方式效果相同:
var newArray = new Array('one','two');
var newArray=['one','two'];