js ——>>
display:隱藏元素,不保留所占空間
visivility:隱藏元素,保留所占空間
{name:xh,year:10}:對象
[1,2,3]:數(shù)組
is精度帶來的表述問題
0.3-0.2 不等于0.1
toFixed()進(jìn)行四舍五入或者嘗試《js精度達(dá)不到解決方法》
getDay():0為周日1為周一~6為周六
getMonth():從0計數(shù)eg:1月獲取值為0,2月為1以此類推
getUTCHours():世界標(biāo)準(zhǔn)時間
lastIndexOf():字符最后出現(xiàn)的位置,區(qū)別與IndexOf()
算數(shù)表達(dá)式 a++的執(zhí)行機制 p82譯注1
var i=1;
i++ --> 1
++i -->3
i++后增量
++i前增量
===嚴(yán)格相等、恒等運算符
js中所有大寫字母都小于小寫字母,js嚴(yán)格區(qū)分大小寫,嚴(yán)格按照ASCII碼表排序
Evsal() :不能被賦予別名、若通過別名調(diào)用直接拋EvalError異常
通過delete刪除對象不僅是設(shè)置了一個undefined值
continue:執(zhí)行下一次循環(huán)
break:退出循環(huán)
在for與wile循環(huán)中有區(qū)別
while中使用continue如果不做循環(huán)變量修改會陷入死循環(huán)、因為continue后是回到while頭部再次執(zhí)行。而在for循環(huán)中continue后會執(zhí)行增加或修改變量值。所以while循環(huán)并不能完全等價
for/in循環(huán):更方便地遍歷對象屬性成員
短路算法:多用于避免錯誤
eg:
var a = -1, b = 2, c = -3, d = -1;
d =? a+1>0 && ++b>0 &&? c-4>0;
結(jié)果:a=-1,b=2,c=-3.d=false
當(dāng)執(zhí)行到第一個‘a(chǎn)+1>0’是得到值fase,停止執(zhí)行后面數(shù)據(jù)
從0開始的不連續(xù)數(shù)組
Array.join()將所有元素轉(zhuǎn)換為字符串拼接到一起,返回最后生成的字符串
Array.reverse()將元素顛倒順序,返回逆序數(shù)組
Array.sort()將元素排序并返回排序后的數(shù)組
Array.concat()創(chuàng)建并返回一個新數(shù)組
Array.slice()返回指定數(shù)組的一個片段或子數(shù)組
Array.splice()插入或刪除元素
Array.push()在數(shù)組尾部添加一個或多個元素,返回數(shù)組新長度
Array.pop()在數(shù)組的尾部刪除最后一個元素并返回他刪除的值
Array.unshift()在數(shù)組的頭部添加一個或多個元素 --與push類似
Array.shift()在數(shù)組的頭部刪除一個元素 --與pop類似
toLocaleString()將元素轉(zhuǎn)換為字符傳且使用本地化(自定義)分隔符將這些字符串連接起來。用法【https://blog.csdn.net/weixin_39749820/article/details/82869537】
eg:
var a = [1,3,5,2,4];
a.join("-");// => "1-3-5-2-4"
a.reverse();// =>?[4, 2, 5, 3, 1]
a.sort();// =>[1, 2, 3, 4, 5]
a.concat(6,7);// =>[1, 3, 5, 2, 4, 6, 7]
a.slice(1,3);// =>[3, 5]
a.splice(2);// =>[5, 2, 4]
a.splice(2,1);// =>[5]
var b = [];
b.push(1,2);// =>?[1, 2]
b.push([3,4]);// =》[1,2,[3,4]]
b.pop();// =>[1, 2] 返回?[3,4]
b.unshift(0);// =>[0, 1, 2]
b.shift();// =>[1, 2] 返回0
var c = 12345678;
c.toLocaleString();// =>12,345,678
var dates = new Date();
dates.toLoacaleString();// =>2019/12/6 下午5:27:28
...(未完待續(xù))
slice(開始位置,結(jié)束位置)
地圖:反應(yīng)巨慢。。。。
pushState、replaceState:改變網(wǎng)址(存在跨域限制)而不刷新頁面
pushState:向瀏覽器歷史添加了一個狀態(tài)(增加一個記錄)
replaceState:把當(dāng)前的頁面的歷史記錄替換掉
防止事件多次觸發(fā),建議使用閉包。表單提交使用flag加鎖
節(jié)流:throttle 無論點擊多少次都只在固定間隔執(zhí)行一次
閉包:保證私有變量不被修改和污染,與static類似
實例對象一旦創(chuàng)建,將自動引用prototype對象的屬性和方法.
"!!"將表達(dá)式進(jìn)行強制轉(zhuǎn)化為bool值的運算,運算結(jié)果為true或者false。
const aa = 'xx';
const bb = !!aa; // bb輸出為true
const cc = !!(NaN || undefined || null || 0 || '' ); // cc為false;
\\表轉(zhuǎn)義
\\\\表’\‘