js數據類型分爲兩大類:一 值類型閉包
二 引用類型函數
一 值類型 string number boolean null undefinedthis
eg: spa
var str = 'aaa' var num = 123 var bool = true var n = null var und = undefined console.log(typeof str) //string console.log(typeof num) //number console.log(typeof bool) //boolean console.log(typeof n) //object console.log(typeof und) //undefined
二 引用類型 Array object functioncode
//建立Array的三種方式 //第一種 var arr = new Array() arr[0] ='aa' arr[1] = 'bb' arr[2] = 'cc' console.log(arr) //[ 'aa', 'bb', 'cc' ] //第二種 var arr = new Array('aa', 'bb', 'cc') //第三種 var arr = ['aa','bb','cc']
eg:objectblog
//建立object的三種方式 //第一種 var preson = new Object() preson.name = '張三' preson['age'] = 20 // 方括號中的鍵名加引號,不然會報錯 console.log(preson) // { name: '張三', age: 20 } //第二種 字面量 var preson_one = {} preson_one.name = 'jack' preson_one.action = function(){ console.log(this.name) //jack } preson_one.action() console.log(preson_one) //{ name: 'jack', action: [Function] } //嵌套字面量 簡寫形式 var preson1 = { name: 'jack', action: function(){ console.log(this.name) //jack } } preson1.action() //第三種 工廠模式 function createobj(name){ //原材料 var obj = new Object() // 加工 obj.name = name obj.fun = function(){ console.log(this.name) } return obj } var a = createobj('李四') a.fun() console.log(a) //第四種 構造函授 function createobj2(name){ this.name = name this.fun = function(){ console.log(this.name) } } var a2 =new createobj2('大王') a2.fun() //第五種 公有和私有 閉包的應用 function preson3(name){ //私有 var name = name var fun = function(){ console.log(name) } return{ //公有 //閉包 say:fun } } var a3 = preson3("小美") a3.say()
eg:functionstring
//function //第一種 函數定義 function eg(){ alert(123) } eg() //第二種 函數表達式 var eg2 = function (){ alert(456) } eg2() //函數表達式只能在函數後面調用