/**************************************该文档内容长期更新***********************************************/
1.由于浏览器对于解析js不同数据类型之间的差异,不建议对同一个变量进行反复换数据类型
如 var message="felayman";
如下操作不建议:
message=100;
message=99.9;
message=false;
messsage = null;
这样做会增加浏览器解析成本,而且更改次数多了,会不利于开发。
因此建议,变量最好只保持一种数据类型。
如下面操作:
var message="hello":
message="wolrd":
message="helloworld";
2.在定义变量的时候我们要注意作用域
如:
//全局变量
function fun(){
message="hello": //全局变量,函数结束后不会销毁该变量
}
fun();
alert(message);//依然会谭吹message
//局部变量
function fun(){
var message="hello";
}
fun();
alert();//什么都不会弹出,因为该变量在函数结束后被销毁
3.变量的定义方法和c,java一样的方式定义,即在一个var关键字后定义多个变量
如:
var name1,name2,name3,....;
或者
var name1="name1",
name2="name2"
...................
namen="namen";
4.搞清楚js的六种数据类型
@1 undefined 就是在定义某个变量后没有为其赋值
如:
var message;
alert(message==undefined);//会弹出ture
@2 NULL 不能误解为'',一般是指定某个变量的值为null,或者null空对象
如:
var obj=null;
alert(obj);
或者
var obj=null;
alert(typeof obj);//会弹出object
@3 boolean 该值表示true或false
表示true的情况:
1.true本身
var bool=true;
if(bool)
alert(bool);
2.非空字符串
var str = "hi";
if(str)
alert(str);
3.非零数字
var str = -1;
if(str)
alert(str);
4.对象(非null对象)
var str = new String("hello");
if(str)
alert(str);
5.js里创建对象的三种方式
@1: 普通的面向对象的思想来创建对象
var obj1 = new Object();
obj1.name="felayman":
obj1.age=22;
obj1.hobby="篮球";
alert(obj1.name+obj1.age+obj1.hobby);
@2:利用JSON格式来创建对象
var obj2 ={
name:"felayman",
age:23,
hobby:"足球"
};
alert(obj2.name+obj2.age+obj2.hobby);
@3:直接这么写
var obj = {};//等效于var obj = new Object();
obj.name="felayman";
alert(obj);
@4:对象的可复制性
var obj3 = obj2;
alert(obj3);//属性和obj2一样
下面给出一个经典案例:要求是对于传入不同的参数,会给出不同的输出
function displayInfo(args){
var output='';
if(typeof args.name=="string"){
output +="name:"+args.name+"\n";
}
if(typeof args.age=="number"){
output +="age:"+args.age+"\n";
}
alert(output);
}
displayInfo({
name:"felayman",
age:22
});
displayInfo({
name:"felay"
});
这样就有点向java了,传入的不是单纯的数据类型了,而是一个复杂的对象了,通过将
对象传入到函数的参数中,我们就可以对该参数对象的属性进行操作了。同时这也是现在对于数据
传输的最好方式,可以通过对象的封装进行大量数据的传输了。
当获取到对象参数时,我们可以通过两种方式来获取其属性
@1:args['name']
@2:args.name
这两种方式都可以获取到我们想要的参数。,一般的书籍会说这两种方式没有区别,但是还是有一个小的区别
如:一个属性中含有空格的时候,就只能通过[]来获取了。
var obj = {};
obj['first name']="felayman";
alert(obj['first name']);//会弹出felayman
alert(obj.first name);//这样就错了。