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元素变量,输出属性表格页面

2014-10-12_235443      2014-10-12_235632

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);
}
posted @ 2014-10-13 01:28  huchaolan  阅读(355)  评论(0编辑  收藏  举报