千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

數(shù)據(jù)類型
1基礎(chǔ)數(shù)據(jù)類型
一、數(shù)值,注意NAN和任何數(shù)比較相等得到的結(jié)果都為false,parseInt可以轉(zhuǎn)化小數(shù)點(diǎn)的整數(shù)部分,parseFloat轉(zhuǎn)化的是帶有小數(shù)點(diǎn)的浮點(diǎn)數(shù),Number只能整體轉(zhuǎn)化,undefinde轉(zhuǎn)數(shù)值為NaN,null轉(zhuǎn)化為數(shù)值為0。
二、字符串 除了方法以外,還需注意字符串的 一些方法,且使用這些方法時(shí),原字符串不會(huì)發(fā)生改變,substring substr slice 三種裁剪方法的區(qū)別,通過trim方法去除前后空格,字符串有部分方法和數(shù)組通用。若想快速去除字符串中的敏感字,可以使用正則表達(dá)式。通過split轉(zhuǎn)化為數(shù)組。在使用+運(yùn)算符時(shí),若運(yùn)算符一端數(shù)據(jù)為字符串,另一個(gè)數(shù)據(jù)會(huì)通過隱式轉(zhuǎn)換為字符串,然后兩個(gè)字符串進(jìn)行拼接 。
三、布爾 布爾值一共有兩個(gè)值,一種為true,一種為false,在條件語句中,其他類型的數(shù)據(jù)會(huì)自動(dòng)隱式轉(zhuǎn)換為布爾類型。
四、undefind 變量只定義不賦值所得到的結(jié)果
五 null 這個(gè)值是我們手動(dòng)賦予的 用typeof檢測結(jié)果為objecct。
六、symbol es6新增的一種基礎(chǔ)數(shù)據(jù)類型 需要有一個(gè)獨(dú)一無二的值 就要使用Symbol
? ? ? ? 對象的鍵名唯一性,想要使用別人提供的一個(gè)對象 在別人提供對象的基礎(chǔ)上給這個(gè)對象添加屬性和方法
? ? ? ?保證原有對象里面數(shù)據(jù)不會(huì)被我們添加的數(shù)據(jù)所覆蓋,可以利用Symbol當(dāng)成對象的key
? ? ? ?
2、復(fù)雜數(shù)據(jù)類型
一、數(shù)組,在數(shù)組中有很多重要的方法,
1. forEach( )
該方法等同于for循環(huán),沒有返回值
arr.forEach(function(item,index,arr){
}
//里面的function是一個(gè)回調(diào)函數(shù),
//item: 數(shù)組中的每一項(xiàng);
//index:item 對應(yīng)的下標(biāo)索引值
//arr: 就是調(diào)用該方法的數(shù)組本身
2.map( )
映射,該方法使用和forEach大致相同,但是該方法有返回值,返回一個(gè)新數(shù)組,新數(shù)組的長度和原數(shù)組長度相等
arr.map(function(item,index,arr){
}
//里面的function是一個(gè)回調(diào)函數(shù),
//item: 數(shù)組中的每一項(xiàng);
//index:item 對應(yīng)的下標(biāo)索引值
//arr: 就是調(diào)用該方法的數(shù)組本身
3. filter( )
filter方法: 有返回值, 過濾出符合條件的元素
arr.filter(function(item,index,arr){
}
過濾出布爾類型為true的項(xiàng)
4. some
判斷數(shù)組中有沒有符合條件的項(xiàng)(只要有,就返回true),如果一個(gè)都沒有,才返回false
arr.some(function(item,index,arr){
}
5. every
判斷數(shù)組中所有的項(xiàng)是否滿足要求,如果全都滿足,才返回true,否則返回false
arr.every(function(item,index,arr){
}
類型轉(zhuǎn)換
1. 對象和布爾值比較 對象和布爾值進(jìn)行比較時(shí),對象先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換為數(shù)字,布爾值直接轉(zhuǎn)換為數(shù)字 [] == true; //false []轉(zhuǎn)換為字符串'',然后轉(zhuǎn)換為數(shù)字0,true轉(zhuǎn)換為數(shù)字1,所以為false 2. 對象和字符串比較 對象和字符串進(jìn)行比較時(shí),對象轉(zhuǎn)換為字符串,然后兩者進(jìn)行比較。 [1,2,3] == '1,2,3' // true [1,2,3]轉(zhuǎn)化為'1,2,3',然后和'1,2,3', so結(jié)果為true; 3. 對象和數(shù)字比較 對象和數(shù)字進(jìn)行比較時(shí),對象先轉(zhuǎn)換為字符串,然后轉(zhuǎn)換為數(shù)字,再和數(shù)字進(jìn)行比較。 [1] == 1; // true `對象先轉(zhuǎn)換為字符串再轉(zhuǎn)換為數(shù)字,二者再比較 [1] => '1' => 1 所以結(jié)果為true 4. 字符串和數(shù)字比較 字符串和數(shù)字進(jìn)行比較時(shí),字符串轉(zhuǎn)換成數(shù)字,二者再比較。 '1' == 1 // true 5. 字符串和布爾值比較 字符串和布爾值進(jìn)行比較時(shí),二者全部轉(zhuǎn)換成數(shù)值再比較。 '1' == true; // true 6. 布爾值和數(shù)字比較 布爾值和數(shù)字進(jìn)行比較時(shí),布爾轉(zhuǎn)換為數(shù)字,二者比較。 true == 1 // true