每天一篇javascript学习小结(基础知识)
1、字符转换
vars1="01"; vars2="1.1"; vars3="z";//字母'z'无法转换为数字,所以或返回NaN varb=false; varf=1.1; varo={ valueOf:function(){ return-1; } }; s1=-s1;//valuebecomesnumeric-1 s2=-s2;//valuebecomesnumeric-1.1 s3=-s3;//valuebecomesNaN b=-b;//valuebecomesnumeric0 f=-f;//changeto-1.1 o=-o;//1先执行对象的valueOf()方法返回-1,--1为1 o=+o;//-1o的valueOf()值为-1,+-1还是-1
2、特殊字符运算
varresult1=5-true;//4becausetrueisconvertedto1 varresult2=NaN-1;//NaNNaN不是一个数字,和任何数字做任何运算都是NaN varresult3=5-3;//2 varresult4=5-"";//5because""isconvertedto0 varresult5=5-"2";//3because"2"isconvertedto2 varresult6=5-null;//5becausenullisconvertedto0
3、变量转字符串运算
varvalue1=10; varvalue2=true; varvalue3=null; varvalue4;//value4没有赋值就是underfined转换为字符串就是'underfined' alert(String(value1));//"10" alert(String(value2));//"true" alert(String(value3));//"null" alert(String(value4));//"undefined"
4、数字的进制转换
varnum=10; alert(num.toString());//"10"默认十进制 alert(num.toString(2));//"1010"二进制 alert(num.toString(8));//"12"八进制 alert(num.toString(10));//"10"十进制 alert(num.toString(16));//"a"十六进制
5、字符串比较运算
varresult1=5>3;//true varresult2=5<3;//false varresult3="Brick"<"alphabet";//true字符串比较按照字母表顺序进行比较小写字母在大写字母后面 varresult4="Brick".toLowerCase()<"alphabet".toLowerCase();//false字母表顺序比较 varresult5="23"<"3";//true字符2小于字符3 varresult6="23"<3;//false此时'23'转换成23了 varresult7="a"<3;//falsebecause"a"becomesNaN字符'a'无法转换成数字 varresult8=NaN<3;//falseNaN和任何数字比较,都无法转换成数字,所以一直是false varresult9=NaN>=3;//false
6、字符进制转换
varnum1=parseInt("AF",16);//175按照16进制输出十进制数据10*16+15*1 varnum2=parseInt("AF");//NaN没有指定进制,默认按照10进制转换,由于AF不在十进制范围,返回NaN alert(num1); alert(num2);
7、parseInt的使用
varnum1=parseInt("1234blue");//1234 varnum2=parseInt("");//NaN字符''无法转换成数字 varnum3=parseInt("0xA");//10-hexadecimal16进制的A varnum4=parseInt(22.5);//22 varnum5=parseInt("70");//70-decimal varnum6=parseInt("0xf");//1516进制为15
8、Number对象的使用
varnum1=Number("Helloworld!");//NaN varnum2=Number("");//0空字符串可以转换成0这个parseInt()不一样 varnum3=Number("000011");//11 varnum4=Number(true);//1
9、NaN用法
alert(NaN==NaN);//false alert(isNaN(NaN));//true alert(isNaN(10));//false?10isanumber alert(isNaN("10"));//false?canbeconvertedtonumber10 alert(isNaN("blue"));//true?cannotbeconvertedtoanumber alert(isNaN(true));//false?canbeconvertedtonumber1
10、系统最大数字
varresult=Number.MAX_VALUE+1; alert(isFinite(result));//false
11、Infinity无穷大
alert(5*6);//30 alert(5*NaN);//NaN alert(Infinity*0);//NaN alert(Infinity*2);//Infinity alert("5"*5);//25 alert(true*10);//10 alert(false*10);//0 alert(26%5);//1 alert(Infinity%3);//NaN alert(3%0);//NaN alert(5%Infinity);//5 alert(0%10);//0 alert(true%25);//1 alert(3%false);//NaN
12、forin循环
for(varpropNameinwindow){ document.write(propName); document.write("<br/>"); }
13、特殊字符比较
alert(null==undefined);//true alert(null===undefined);//false alert("NaN"==NaN);//false alert("NaN"===NaN);//false alert(NaN==NaN);//false alert(NaN===NaN);//false alert(NaN!=NaN);//true alert(NaN!==NaN);//true alert(false==0);//true alert(false===0);//false alert(true==1);//true alert(true===1);//false alert(null==0);//false alert(undefined==0);//false alert(5=="5");//true alert(5==="5");//false
14、Boolean对象
varmessage="Helloworld!"; varmessageAsBoolean=Boolean(message); alert(messageAsBoolean);//true
15、for循环与标签一起使用
break语句和continue语句都可以与有标签的语句联合使用,返回代码中的特定位置。
通常,当循环内部还有循环时,会这样做,例如:
varnum=0; //返回到特定的位置 outermost: for(vari=0;i<10;i++){ for(varj=0;j<10;j++){ if(i==5&&j==5){ breakoutermost; } num++; } } alert(num);//55
在上面的例子中,标签outermost表示的是第一个for语句。正常情况下,每个for语句执行10次代码块,这意味着num++正常情况下将被执行100次,在执行完成时,num应该等于100。这里的break语句有一个参数,即停止循环后要跳转到的语句的标签。这样break语句不止能跳出内部for语句(即使用变量j的语句),还能跳出外部for语句(即使用变量i的语句)。因此,num最后的值是55,因为当i和j的值都等于5时,循环将终止。
可以以相同的方式使用continue语句:
variNum=0; outermost: for(vari=0;i<10;i++){ for(varj=0;j<10;j++){ if(i==5&&j==5){ continueoutermost; } iNum++; } } alert(iNum);//输出"95"
在上例中,continue语句会迫使循环继续,不止是内部循环,外部循环也如此。当j等于5时出现这种情况,意味着内部循环将减少5次迭代,致使iNum的值为95。
提示:可以看出,与break和continue联合使用的有标签语句非常强大,不过过度使用它们会给调试代码带来麻烦。要确保使用的标签具有说明性,同时不要嵌套太多层循环。
以上就是今天的javascript学习小结,之后每天还会继续更新,希望大家继续关注。