變量類型(值類型坤次、引用類型)
1.值類型的特點(diǎn):不會(huì)因?yàn)橘x值相互干擾
var a =100;
var b = a;//b=100
a =200;
var c = b;//c=100
b =300;
alert(c);
2.引用類型{對(duì)象驶悟、數(shù)組焊夸、function}
1.可以無限制擴(kuò)展屬性,節(jié)省空間
//對(duì)象
//abc三個(gè)變量同時(shí)把指針指向真實(shí)的對(duì)象
var a = {age:20};
var b = a;
b.age = 21;
c = b;
c.age = 22;
alert(b.age);//b.age=22;a.age=22;
2.引用類型可以無限制擴(kuò)展屬性
a.name ='lucy';
a.bb = true;
a.ccc=10000;
console.log(a);//object{age:20,name:'lucy',bb:true,ccc:100}
//數(shù)組
var arr =[1,2,3];
arr.age = 21;//arr[1,2,3,age:21]
var arr2 = arr;
arr2.age = 22;//arr[1,2,3,age:22]
console.log(arr);//[1,2,3,age:22]
//function
function fn(){};
fn.age = 21;
var fn1 = fn;
fn1.age = 22;
console.log(fn.age);//22
*typeof
//1.可以區(qū)分值類型的強(qiáng)制類型(string,number,undefined,boolean)
//2.不能區(qū)分引用類型(除了function)苛败,typeof null---->object
//3.
typeof null;//object
typeof fn;//function
typeof a;//object
3.變量計(jì)算(強(qiáng)制類型轉(zhuǎn)換)
1.字符串拼接的時(shí)候會(huì)有強(qiáng)制類型轉(zhuǎn)換
var a = 100 +10;//110
var b =100 +'10';//'10010'
2.==
100=='100';//true
''==0;//true
null == undefined;//true
3.===
100==='100';//false
''===0;//false
null === undefined;//false
4.if的強(qiáng)制類型轉(zhuǎn)換
if(100){console.log(110)}//110
if(''){console.log(110)}//undefined
5..邏輯運(yùn)算
10 && 0;//0
''|| 'abc';//'abc'
6.用一個(gè)簡單的方式知道它在if里是true還是false
var a = 100;
!!a//true
var b = '';
!!b;//false
1.在常見的變量中那些會(huì)在if里邊當(dāng)false用
if(0){} //false
if(NaN){} //(nots a number)false
if(''){} //false
if(null){}//false
if(false){}//false
if(undefined){}//false
2.在if中當(dāng)true用:
!!100;//true
!!'abc';//true
7.內(nèi)置函數(shù)
Object
//function object(){native code}
Array
//function Array(){native code}
Function
//function Function(){native code}
8.內(nèi)置對(duì)象
Math
JSON
9.== 和 ===
var obj = {};
//看一個(gè)對(duì)象的屬性存不存在的時(shí)候用==
if(obj.a == null){}
//在一個(gè)函數(shù)中看a的參數(shù)是否存在的時(shí)候用==
function (a,b){
if(a == null){}
}
* 這兩種情況的共同點(diǎn):
要保證這個(gè)==前面的不管是a是obj.a它是定義的