<body>
<!--
單詞記憶 argument:實參 assignment:賦值 instance:實例
1.JS中的數據類型分為以下類型
*值類型(基本類型)*String:可以為任何字符串*Number:可以為任何數字*boolean:false/true*undefined:undefined 代表定義了但沒賦值*null:null 代表定義了也賦值,只是值為null
*引用類型(對象類型)*Object:任意對象(對象不能執行)*Function:是一種特別的對象(右邊加括號,可以執行)*Array:也是一種特別的對象(數值下標,其中的數據是有序的)
2.判斷*typeof:返回的是數據類型的字符串,可以判斷undefined,number,string,boolean,還可以判斷function,*不能判斷null與Object,Object和Array*instanceof:用來判斷對象的具體類型*===:可以判斷undefined,null,不能判斷數值類型
--><script type="javascript">//1*基本類型var aconsole.log(a,typeof a,typeof a==='undefined',a===undefined)//打印出來的是undefined而第二個是"undefined",true,truevar a=3console.log(typeof a==='number')//注意這里number要加引號表示一個number類型,返回的是truevar a='jxb'console.log(typeof a==='string')//truevar a=trueconsole.log(typeof a==='boolean')//truevar a=trueconsole.log(typeof a==='boolean')//Objectvar a=nullconsole.log(typeof a)//Objectvar a=nullconsole.log(a===null)//true//2對象類型var b1={b2:['a',11,console.log],b3:function() {console.log('b3');return function() {//返回值居然可以是一個function函數(千萬不能說是方法,以前老是說成方法了)return 'jxb';}}}console.log(typeof b1.b2)//'Object'所以不能判斷Object和Arrayconsole.log(b1 instanceof Object,b1 instanceof Array)/*翻譯xx是不是yy類型的實例,那么yy是一個構造函數(new Object()),true,false*/console.log(b1.b2 instanceof Array,b1.b3 instanceof Object)//true,trueconsole.log(b1.b2 instanceof Object,b1.b2 instanceof Function)//true,true 注意這里Function開頭必須是大寫console.log(typeof b1.b3==='function')//注意加了引號都是小寫開頭,true
console.log(b1.b3,typeof b1.b3)/*? () {console.log('b3');} "function"*/console.log(typeof b1.b2==='function')//其中typeof返回的是"function"字符串,trueb1.b2[2](4)//打印出來居然是4,說明括號右邊是一個函數,函數是什么?函數的右邊可以加括號執行調用,其中 b1.b2[2]是一個表達式console.log(b1.b3()()); //返回的是b3,jxb,到前面一個括號結束表示return后面函數,再加一個括號得到的是jxbvar obj={//對象是用來存數據的,這個存的數據不能執行name:'Tom',age:12}function fn(){//而函數是用來存代碼的,代碼可以執行
}//小知識點:undefined和nullvar aconsole.log(a)a=nullconsole.log(a)//返回的是null</script>
</body>
?