Ext江湖笔记:JavaScript基本知识点

时间:2023-03-09 07:19:38
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元素变量,输出属性表格页面

Ext江湖笔记:JavaScript基本知识点      Ext江湖笔记:JavaScript基本知识点

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);
}