Ext江湖笔记:JavaScript基本知识点
1.基本对象:Number,String,Date,Array,Error,RegExp,Math,Boolean
ps:本人基本使用java写代码,常常写出Number n = new Number(2)这样的二货代码,时间javascript是弱类型,统一使用var来定义,var n = new Number(2)
2.Number对象,保留指定小数使用toFixed函数,也有相同性质的toPrecision函数,它多了一个指数的功能(详细介绍)
function fixNumber(){ var n = new Number(10/3); alert(n.toFixed(2));//保留2位小数点 }
3.String对象,基本和Java类似,常用方法都有substring,indexof,replace,但是没有trim,在一些新的浏览器上是支持的ExtJS也定义了String对象,这个对象是有的trim所以使用ExtJS时放心使用.ps:Javascript由于编码的问题,对于字符串的长度统一都按照一个字符一个,对于要这些信息要保存到数据库时应该判断字节数,防止字段空间不够,规则就是非中文长度按1算,中文长度按3算
function substr(){ var str = "旧时王谢堂前燕,飞入平常百姓家"; alert(str.substring(0,8) + " length:" + str.substring(0,8).length); }
4.||运算符
代表或运算,这个和java的||有点区别,javascript的||有时不返回boolean类型,运算规则op1||op2,如果op1为true就返回op1,如果op1为false就返回op2,javascript的布尔运算即使非布尔类型都可以运算,所以||就有了新用法,这种用法ExtJS源代码中常常看到,把默认值放到最后保证不会有参数错误
function orDemo(){ var op1 = 0; var op2 = {x:0}; var op3 = true; var result = op1||op2.x||op3;//前面op1,op2都为false就返回op3的值 alert(result); }
5.类型转换技巧
字符串优先
function transDemo1(){ var s = "1" + 5; alert(s);//5会先转换字符串 var a = ["1","2","3"]; alert(a + "");//先调用Array.toString函数再和""连接 }
对象的key总是字符串
function objkeyDemo1(){ var obj = {10:"objkeyDemo1"} alert(obj["10"]); }
6.for...in语句
for...in语法可以将Object的key遍历出来,书上举出的dump函数的例子,讲div元素的所有属性在table元素中列出来,so一起来看看效果,点击test后将div元素变量,输出属性表格页面
function dump(obj){ var s = window.open("","dump",""); var result = []; for(key in obj){ result.push(key); } result.sort(); var html = "<table border=1>"; for(var i=0;i<result.length;i++){ html+="<tr>"; html+="<td>" + result[i] + "</td><td>" + obj[result[i]] + "</td>"; html+="</tr>"; } html += "</table>"; s.document.body.innerHTML = html; } function getObjToDump(){ var div1 = document.getElementById('test'); dump(div1); }