什么是变量
变量与其他程序设计语言相同,用来临时存储信息
创建方法如下:(弱数据类型)
var x;
x = 123;
alert(x+1);
//上述会弹出124
var x;
x="123";
alert(x+1);
//上述会弹出1231
变量的规则
一次:哪里需要就写哪里
多次:保存数据的容器 变量
什么是标识符
变量、函数、属性的名字,或者函数的参数
标识符的命名规则
- 可以用字母、数字、下划线_、美元$组成
- 不能以数字开头
- 不能用关键字(string if for var…)保留字(go class…)作为标识符
变量的相等比较
基本数据类型比较
var xmScore = 4;
var xhScroe = 4;
console.log(xmScore==xhScroe);//true
console.log(xmScore===xhScroe);//true 都是number类型
引用数据类型比较
var xm = {age:18,score:4};
var xh = {age:18,score:4};
console.log(xm==xh);//false
console.log(xm===xh);//false 一般引用数据类型用 === 比较
var xm = {age:18,score:4};
var xh = xm;
console.log(xm===xh);//true
比较两个对象的值相等
var xm = {age:18,score:4};
var xh = {age:18,score:4};
function equalObjs(a,b){
for(var p in a){ //p在数组里是代表 索引,在对象里是代表 属性名
console.log(a[p]+"-"+p);
console.log(b[p]+"-"+p);
if(a[p]!==b[p]){
return false;
}
return true;
}
}
console.log(equalObjs(xm,xh));//true
用数组的方法判断对象的值相等
var xm = {age:18,score:4};
var xh = {age:18,score:4};
function equalArray(a,b){
if(a.length!==b.length){
return false;
}
for(var i = 0; i<a.length ; i++){
if (a[i]!==b[i]){
return false;
}
return true;
}
}
复制变量的值
var xmScore = 4;
var xhScore = xmScore;
console.log(xhScore);//4
//引用数据类型
var xm = {age:18,score:4};
var xh = xm;
xh.score++;
console.log(xh.score);//5
console.log(xm.score);//5
只想单纯的复制一份,不想指向同一个引用
var xm = {age:18,score:4};
function copyObj(obj){
var newObj = {};
for (var p in obj){
newObj[p] = obj[p];
}
return newObj;
}
xh = copyObj(xm);
console.log(xh);//age:18,score:4
console.log(xh===xm);//false 不是同一个对象