ExtJS--学习JavaScript

day04
1.--javascript数据类型
6中基本数据类型:
number string boolean object function undefined
number:就是数字值,包括整数,小数,NaN,正负无穷
string:字符串类型,单双引号引起来的内容
boolean:true,false
object:表示所有javascript对象
function:我们熟悉的方法,也就是函数类型,是javascript特有的数据类型
undefined:表示变量声明了但是并没有被赋值

---Ext.onReady(function(){
//Number
var num1 = 10;
var num2 = 10.5;
var num3 = .6; //0.6
var num4 = 070; //56 8进制
var num5 = 1/0; //不报错--正无穷
var num6 = window.parseInt("123viasheushe"); //只显示数字--NaN not a number

//Object
var date = new Date();
var arr = new Array();
var obj = {name:'bjsxt',age:10};
alert(obj.hasOwnProperty('name')); //验证判断有没有name属性,返回true false

//Undefined 变量声明了但是并没有被赋值,其实也等同于Null
var a;
alert(a);//输出undefined
alert(undefined==null);//验证是否等于null-则返回true
alert(typeof null);//表示的就是一个空对象的引用object类型

//Function
function fun(){
console.info('fun....');
}
alert(typeof fun); //fun不加小括号就是一种引用,加小括号表示执行
});

2.javascript变量
声明变量:var关键字+name表示
----javascript变量是弱变量类型,所谓弱变量类型就是根据赋值决定变量的类型
----方法里的声明的是局部变量,方法外的是全局变量(全局变量查找效率-慢,大型开发不安全)
----操作符- typeof操作符是判断数据类型的操作符

3.javascript数组
--类似于java里的容器,可以承装不同类型的元素
--push,pop
--shift,unshift
--splice, slice
--concat , join
--sort , reverse
//循环数组元素 Array
var arr = [1,2,3,4,5];
arr.forEach(function(item){
alert(item);
});

//过滤
var newarr = arr.filter(function(item){
if(item>20){
return true;
}else{
return false;
}
});
alert(newarr);//返回true 的打印

day05
---javascript函数
1.创建函数的三种方式--function语句形式
function fun1(){
alert('func1...');
};

--函数直接量形式
var fun2 = function(){
alert('fun2...');
};
//前两种创建函数的主要区别:function语句形式,javascript解释器直接会去找,其他的代码从上到下顺序执行


--构造函数形式
var fun3 = new Function('x','y','return x+y;');//注意renturnx+y;后的分号,是一个语句
alert(fun3(10,20));//执行,传入10,20参数,输出返回值
//第三种构造函数形式,它具有的作用域与前两种不同,他具有顶级作用域
var k = 1;
function test(){
var k= 2;
function f(){return k;};//第一种返回2
var f= function(){return k;};//第二种返回2
var f= new Function('return k;');//第三种返回1,就相当于在最顶级定义new
alert(f());
};
test();

2.函数中的arguments对象
--每一个函数内部都有一个arguments对象
argument的作用一:接受函数的实际参数
function test(x,y){
//alert(arguments);
alert(arguments.length);//len=3
alert(arguments[2]);//val=3
};
test(1,2,3);

argument的作用二:用于做递归操作
function fact(number){
if(number<=1){
return 1;
}else{
return number*fact(number-1);//改成return number*arguments.callee(number-1);
}
};
var fact2=fact;
fact=null;

alert(fact2(5));//返回120 5*4*3*2*1=120

原文地址:https://www.cnblogs.com/fdxjava/p/10689263.html