js筆記

1.整數(shù)轉(zhuǎn)任意位小數(shù)

? ??function formatToFixed (val){

????????let sNum = val;?

? ? ? ? let nNum = parseFloat(sNum);?

? ? ? ? ?if(!isNaN(nNum)) {?

? ????????? return nNum.toFixed(2);?

? ? ? ? ? ?}else{

? ? ???????????? return val;

? ? ???????? }

????????}

2. reduce函數(shù)可以完成疊加,例:

? ??????var items = [10, 120, 1000];

? ? ? ? //參數(shù)1:回調(diào)函數(shù);? 參數(shù)2: 初始值

? ? ? ? //reduce返回值不是一個數(shù)組,結果類型和形參初始值類型相同

? ? ? ? ?var total = items.reduce((sumSoFar, item)=>sumSoFar + item, 0);

? ? ? ? ?console.log(total); // 1130

3.合并json數(shù)據(jù)

function extend(des, src, override) {

if(src instance of Array) {

for(var i = 0, len = src.length; i < len; i++)

extend(des, src[i], override);

}

for(var i in src) {

if(override || !(i in des)) {

des[i] = src[i];

}

}

return des;

}

var a = {

"a": "1",

"b": "2"

}

var b = {

"c": "3",

"d": "4",

"e": "5"

}

extend(a, b);

console.log(JSON.stringify(a));

4./*解決使用vue進入頁面閃現(xiàn)源碼*/

[v-cloak] {

display: none;

}

在包裹的元素上添加v-cloak即可(例如:<div id="xxx" v-cloak></div>)

5.訪問對象也可以 對象["鍵"],如person["name"]

6.局部 JavaScript 變量

????在 JavaScript 函數(shù)內(nèi)部聲明的變量(使用 var)是局部變量,所以只能在函數(shù)內(nèi)部訪問它焕济。(該變量的作用域是局部的)稳吮。您可以在不同的函數(shù)中使用名稱相同的局部變量闺阱,因為只有聲明過該變量的函數(shù)才能識別出該變量。只要函數(shù)運行完畢,本地變量就會被刪除淑玫。

7.JavaScript 變量的生存期

????JavaScript 變量的生命期從它們被聲明的時間開始。

????局部變量會在函數(shù)運行以后被刪除面睛。

????全局變量會在頁面關閉后被刪除絮蒿。

8.向未聲明的 JavaScript 變量分配值

????如果您把值賦給尚未聲明的變量,該變量將被自動作為 window 的一個屬性叁鉴。如carname="Volvo";將聲明 window 的一個屬性 carname土涝。非嚴格模式下給未聲明變量賦值創(chuàng)建的全局變量,是全局對象的可配置屬性幌墓,可以刪除但壮。

9.作用域

? ??如果變量在函數(shù)內(nèi)沒有聲明(沒有使用 var 關鍵字)冀泻,該變量為全局變量。

? ??在 HTML 中, 全局變量是 window 對象: 所有數(shù)據(jù)變量都屬于 window 對象蜡饵。

10.轉(zhuǎn)義

? ??反斜杠是一個轉(zhuǎn)義字符弹渔。 轉(zhuǎn)義字符將特殊字符轉(zhuǎn)換為字符串字符:轉(zhuǎn)義字符 (\) 可以用于轉(zhuǎn)義撇號,換行溯祸,引號肢专,等其他特殊字符。

11.typeof x :檢測變量數(shù)據(jù)類型,并返回(string/object/array)

12.=== 為絕對相等焦辅,即數(shù)據(jù)類型與值都必須相等博杖。

13.字符串方法

charAt() 返回指定索引位置的字符

charCodeAt() 返回指定索引位置字符的 Unicode 值

concat() 連接兩個或多個字符串,返回連接后的字符串

fromCharCode() 將 Unicode 轉(zhuǎn)換為字符串

indexOf() 返回字符串中檢索指定字符第一次出現(xiàn)的位置

lastIndexOf() 返回字符串中檢索指定字符最后一次出現(xiàn)的位置

localeCompare() 用本地特定的順序來比較兩個字符串

match() 找到一個或多個正則表達式的匹配

replace() 替換與正則表達式匹配的子串

search() 檢索與正則表達式相匹配的值

slice() 提取字符串的片斷氨鹏,并在新的字符串中返回被提取的部分

split() 把字符串分割為子字符串數(shù)組

substr() 從起始索引號提取字符串中指定數(shù)目的字符

substring() 提取字符串中兩個指定的索引號之間的字符

toLocaleLowerCase() 根據(jù)主機的語言環(huán)境把字符串轉(zhuǎn)換為小寫欧募,只有幾種語言(如土耳其語)具有地方特有的大小寫映射

toLocaleUpperCase() 根據(jù)主機的語言環(huán)境把字符串轉(zhuǎn)換為大寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射

toLowerCase() 把字符串轉(zhuǎn)換為小寫

toString() 返回字符串對象值

toUpperCase() 把字符串轉(zhuǎn)換為大寫

trim() 移除字符串首尾空白

valueOf() 返回某個字符串對象的原始值

14.null是一個只有一個值的特殊類型仆抵。表示一個空對象引用跟继。用 typeof 檢測 null 返回是object。你可以設置為 null 來清空對象

? ??var?person =?null;?// 值為 null(空), 但類型為對象

15.你可以設置為 undefined 來清空對象:

????????var?person = undefined;?// 值為 undefined, 類型為 undefined

16.undefined?是一個沒有設置值的變量,typeof?一個沒有值的變量會返回?undefined镣丑。

undefined 和 null 的區(qū)別:

? ??null?用于對象,?undefined?用于變量 ;

? ? 對象只有被定義才有可能為 null舔糖,否則為 undefined;?

? ??null 和 undefined 的值相等,但類型不等:

? ??typeof?undefined?????????????// undefined

? ??typeof?null??????????????????// object

? ? ?null?=== undefined???????????// false? ? ??

? ? ?null?== undefined????????????// true??

請注意:NaN 的數(shù)據(jù)類型是 number

? ? ? ? ? ? ??數(shù)組(Array)的數(shù)據(jù)類型是 object

? ????????????日期(Date)的數(shù)據(jù)類型為 object

? ????????????null 的數(shù)據(jù)類型是 object? ?

? ? ? ? ? ? ? ?未定義變量的數(shù)據(jù)類型為 undefined? ?

17.constructor?屬性返回所有 JavaScript 變量的構造函數(shù)莺匠。

? ??????????"John".constructor?// 返回函數(shù) String()? { [native code] }

18.全局方法?String()?可以將數(shù)字轉(zhuǎn)換為字符串金吗。

19.Date方法

????????getDate() 從? Date 對象返回一個月中的某一天 (1 ~ 31)。

????????getDay() 從? Date 對象返回一周中的某一天 (0 ~ 6)趣竣。

????????getFullYear()? 從 Date 對象以四位數(shù)字返回年份摇庙。

????????getHours()? 返回 Date 對象的小時 (0 ~ 23)。

????????getMilliseconds()? 返回 Date 對象的毫秒(0 ~ 999)遥缕。

????????getMinutes()? 返回 Date 對象的分鐘 (0 ~ 59)卫袒。

????????getMonth()? 從 Date 對象返回月份 (0 ~ 11)。

????????getSeconds()? 返回 Date 對象的秒數(shù) (0 ~ 59)单匣。

????????getTime()? 返回 1970 年 1 月 1 日至今的毫秒數(shù)夕凝。

????????getTime()? 返回 1970 年 1 月 1 日至今的毫秒數(shù)。

20.全局方法?Number()?可以將字符串轉(zhuǎn)換為數(shù)字户秤÷氡空字符串轉(zhuǎn)換為 0。

其他的字符串會轉(zhuǎn)換為 NaN (不是個數(shù)字)鸡号。

? ??????Number(" ")?// 返回 0?

????????Number("")?// 返回 0

????????Number("99 88")?// 返回 NaN

21.parseFloat()解析一個字符串转砖,并返回一個浮點數(shù)。

? ? ? parseInt()解析一個字符串鲸伴,并返回一個整數(shù)堪藐。

22.+?可用于將變量轉(zhuǎn)換為數(shù)字

? ??????var?y =?"5";?// y 是一個字符串

????????var?x = + y;?// x 是一個數(shù)字

23.全局方法?Number()?可將布爾值轉(zhuǎn)換為數(shù)字莉兰。

????????Number(false)?????// 返回 0

? ??????Number(true)? ????// 返回 1

24.全局方法?Number()?可將日期轉(zhuǎn)換為數(shù)字。

25.debugger?關鍵字用于停止執(zhí)行 JavaScript礁竞,并調(diào)用調(diào)試函數(shù)。

這個關鍵字與在調(diào)試工具中設置斷點的效果是一樣的杉辙。

如果沒有調(diào)試可用模捂,debugger 語句將無法工作。

26.變量提升:函數(shù)聲明和變量聲明總是會被解釋器悄悄地被"提升"到方法體的最頂部蜘矢。

? ??????JavaScript 中狂男,函數(shù)及變量的聲明都將被提升到函數(shù)的最頂部。

????????JavaScript 中品腹,變量可以在使用后聲明岖食,也就是變量可以先使用再聲明。

JavaScript 只有聲明的變量會提升舞吭,初始化的不會泡垃。
var?x =?5;?// 初始化 x

elem = document.getElementById("demo");?// 查找元素?

elem.innerHTML = x +?" "?+ y;// 顯示 x 和 y? // x為5,y為undefind

var?y =?7;?// 初始化 y

實例的 y 輸出了?undefined,這是因為變量聲明 (var y) 提升了羡鸥,但是初始化(y = 7) 并不會提升蔑穴,所以 y 變量是一個未定義的變量。

27.函數(shù)提升

????????1惧浴、函數(shù)提升:就是把函數(shù)聲明提到作用域的頂部

????????2存和、函數(shù)有兩種表達方式:函數(shù)聲明方式和函數(shù)表達方式

? ? ? ? 3、只有函數(shù)聲明方式才能提升

28.** 塊級作用域**

? ??????在每個代碼塊中 JavaScript 不會創(chuàng)建一個新的作用域衷旅,一般各個代碼塊的作用域都是全局的捐腿。ES5只有全局作用域和函數(shù)作用域,沒有塊級作用域柿顶,這帶來很多不合理的場景

? ?? 1茄袖、避免由于變量提升,內(nèi)層變量可能會覆蓋外層變量九串;?

? ??2绞佩、避免用來計數(shù)的循環(huán)變量泄露為全局變量;??

? ??3猪钮、ES6允許塊級作用域的任意嵌套, 外層作用域無法讀取內(nèi)層作用域的變量, 內(nèi)層作用域可以定義外層作用域的同名變量品山;??

? ??4、塊級作用域可以替代立即執(zhí)行的匿名函數(shù)的功能?

? ??5烤低、ES5(嚴格模式)規(guī)定肘交,函數(shù)只能在頂層作用域和函數(shù)作用域之中聲明,不能在塊級作用域聲明

? ???6扑馁、ES6允許在塊級作用域之中聲明函數(shù)涯呻,只在大括號情況下可行凉驻,沒有大括號會報錯;函數(shù)聲明類似于var复罐,存在函數(shù)提升??

? ? ? ?例:?{{{{ {let insane = 'Hello World'} console.log(insane); // 報錯}}}};

? ? ? ? ? ? ?{{{{ let insane = 'Hello World'; {let insane = 'Hello World'}}}}};???

注意:環(huán)境導致的行為差異太大涝登,應該避免在塊級作用域內(nèi)聲明函數(shù)。 若需要效诅,也應該寫成函數(shù)表達式胀滚,而不是函數(shù)聲明語句

28.href="#"與href="javascript:void(0)"的區(qū)別

? ??????#?包含了一個位置信息,默認的錨是#top?也就是網(wǎng)頁的上端乱投。在頁面很長的時候會使用?#?來定位頁面的具體位置咽笼,格式為:# + id

????????而javascript:void(0), 僅僅表示一個死鏈接戚炫。

29.** 暫時性死區(qū)**

????????只要一進入當前作用域剑刑,所要使用的變量就已經(jīng)存在,但是不可獲取双肤,只有等到聲明變量的那一行代碼出現(xiàn)施掏,才可以獲取和使用該變量。

30.** let與var區(qū)別**

//不同之處

????1杨伙、let聲明的變量只在let所在的代碼塊內(nèi)有效

????2其监、var有變量提升,則聲明之前使用不會報錯限匣;let沒有變量提升抖苦,聲明前使用會報錯

????3、let存在暫時性死區(qū)米死,只要塊級作用域內(nèi)存在let命令锌历,它所聲明的變量就“綁定”(binding)這個區(qū)域,不再受外部的影響

? ???4.ES6規(guī)定峦筒,若區(qū)塊中存在let和const命令究西,這個區(qū)塊對這些命令聲明的變量,從一開始就形成了封閉作用域物喷。凡在聲明前就使用這些變量卤材,均報錯。

????5.ES6規(guī)定暫時性死區(qū)和let峦失、const語句不出現(xiàn)變量提升扇丛,主要是為了減少運行時錯誤。

? ? 6.let不允許在相同作用域內(nèi)尉辑,重復聲明同一個變量 ,var可以

31.在( )和[ ]前的語句不加分號會報錯;

32:原型鏈(也叫隱式原型鏈):

? ? ? ? 訪問一個對象的屬性時,先在自身里面找,找到了返回;如果沒有在沿著__proto__這條鏈yi一級一級向上找,如果找不到返回undefined;

? ? ? ? 1>.函數(shù)的顯示原型指向的對象默認是空的Object對象實例對象(但Object不滿足);

????????2>.所有函數(shù)都是Function的實例(包含F(xiàn)unction);

? ? ? ? 3>.Object的原型對象是原型鏈的盡頭;

33.閉包理解:

? ? ? ? 閉包是嵌套的內(nèi)部函數(shù)

? ? 產(chǎn)生閉包的條件:

? ? ? ? ? ? 1>.函數(shù)嵌套;

? ? ? ? ? ? 2>.內(nèi)部函數(shù)引用外部函數(shù)的變量或函數(shù);

? ? ? ? ? ? 3>.執(zhí)行定義內(nèi)部函數(shù)就會產(chǎn)生閉包,不用執(zhí)行內(nèi)部函數(shù);

? ? ? ?外部函數(shù)調(diào)用幾次就產(chǎn)生幾個閉包(外部函數(shù)調(diào)用,才會聲明內(nèi)部函數(shù));

? ? 閉包的生命周期:

? ? ? ? ? ? ? ? 產(chǎn)生:定義內(nèi)部函數(shù)時產(chǎn)生;

? ? ? ? ? ? ? ? 死亡:在嵌套的內(nèi)部函數(shù)成為垃圾對象時消失;

? ? 閉包缺點:會造成內(nèi)存泄漏:

? ? ? ? ? ? 解決辦法: 1>.能不用閉包就不用

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2>.要及時釋放;

? ? 內(nèi)存溢出:所需要的內(nèi)存空間大于剩余的內(nèi)存時,就會拋出內(nèi)存溢出的錯誤

? ? 內(nèi)存泄漏:占用的內(nèi)存空間沒有及時釋放;

? ? ? ? ? ? ? ? ? ? 內(nèi)存泄漏的積累最終會導致內(nèi)存溢出;

? ? ?造成內(nèi)存泄漏的可能:

? ? ? ? ? ? ? ? 1>.定時器或回調(diào)函數(shù)沒有及時清理;

? ? ? ? ? ? ? ? 2>.意外的全局變量;

? ? ? ? ? ? ? ? 3>.閉包

34.//獲取請求信息

var curPath = window.document.location.href;

//http://localhost:8070/map/ztreemap.html

var pathName = window.document.location.pathname;

///map/ztreemap.html

var pos = curPath.indexOf(pathName);

//獲取請求地址

var Host = curPath.substring(0, pos);

//http://localhost:8070

35. 子頁面中調(diào)用父頁面中函數(shù):

? ??????window.parent.window.父頁面函數(shù)();

36.添加請求頭

? ?? var param = { channel: "1", plate: "豫AB8309" };

? ? param = JSON.stringify(param);

? ? $.ajax({

? ? ? ? type: "POST",

? ? ? ? timeout: 10000,

? ? ? ? //dataType: 'json',

? ? ? ? cache: false,

? ? ? ? async: 'true',

? ? ? ? beforeSend: function (xhr) {

? ? ? ? ? ? xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE1NTkwMzM2NjAsInVzZXIiOnsieWhJZCI6MjIyMjIyLCJ5aExvZ29ubmFtZSI6ImdkcyIsInloUGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUwNTdmMjBmODgzZSIsInloTmFtZSI6ImdkcyIsInF4SWQiOjUsInloVGVsIjpudWxsLCJkc0lkIjoxLCJ5eklkIjoxLCJzaW1Db2RlIjoiMSIsIm1zZyI6bnVsbCwidmVyaWZ5IjpmYWxzZX0sInN1YiI6ImdkcyJ9.2H7DFLdRE5NzPvqa96UVIxtMUNXZ_VhfMn0JwMq3dasB12oF-aB4mioiavYoFS1L6umBOQPltZMbSCYGV0qnuA");

? ? ? ? ? ? xhr.setRequestHeader("Content-Type", "application/json");

? ? ? ? },

? ? ? ? url: "http://192.168.0.174:8080/api/video/getVideoUrl",

? ? ? ? data: param,

? ? ? ? success: function (data) {

? ? ? ? ? ? console.log(data);

? ? ? ? },

? ? ? ? error: function (err) {

? ? ? ? },

? ? ? ? complete: function () {

? ? ? ? }

37.select設置默認選中

? ??var select = document.getElementById("clId");

????for(var i=0;i<select.length;i++){

????????if(select[i].value == checkedCarNO){

????????????select[i].selected = true;

????????}

????}

38.校驗車牌號碼

//新能源車牌號正則

var xreg=/^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;

//普通車牌號正則

var creg=/^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9掛學警港澳]{1}$/;

/**

* 校驗車牌號碼

* @param carNo 車牌號碼

* @returns

*/

function carNoReg(carNo){

if(carNo.length == 7){

return creg.test(carNo);

}else if(carNo.length == 8){

return xreg.test(carNo);

}

}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帆精,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卓练,老刑警劉巖隘蝎,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異襟企,居然都是意外死亡嘱么,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門顽悼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拱撵,“玉大人,你說我怎么就攤上這事表蝙。” “怎么了乓旗?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵府蛇,是天一觀的道長。 經(jīng)常有香客問我屿愚,道長汇跨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任妆距,我火速辦了婚禮穷遂,結果婚禮上,老公的妹妹穿的比我還像新娘娱据。我一直安慰自己蚪黑,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布中剩。 她就那樣靜靜地躺著忌穿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪结啼。 梳的紋絲不亂的頭發(fā)上掠剑,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音郊愧,去河邊找鬼朴译。 笑死,一個胖子當著我的面吹牛属铁,可吹牛的內(nèi)容都是我干的眠寿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼红选,長吁一口氣:“原來是場噩夢啊……” “哼澜公!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤坟乾,失蹤者是張志新(化名)和其女友劉穎迹辐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甚侣,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡明吩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了殷费。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片印荔。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖详羡,靈堂內(nèi)的尸體忽然破棺而出仍律,到底是詐尸還是另有隱情,我是刑警寧澤实柠,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布水泉,位于F島的核電站,受9級特大地震影響窒盐,放射性物質(zhì)發(fā)生泄漏草则。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一蟹漓、第九天 我趴在偏房一處隱蔽的房頂上張望炕横。 院中可真熱鬧,春花似錦葡粒、人聲如沸份殿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伯铣。三九已至,卻和暖如春轮纫,著一層夾襖步出監(jiān)牢的瞬間腔寡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工掌唾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留放前,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓糯彬,卻偏偏與公主長得像凭语,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撩扒,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 第一章1,什么叫程序:程序就是計算機按照人類完成事物的步驟和邏輯似扔,通過計算機命令來逐步執(zhí)行最終實現(xiàn)目標的一種機器語...
    悟名先生閱讀 942評論 0 4
  • 1吨些、isArray方法Array.isArray方法用來判斷一個值是否為數(shù)組。var a = [1,2];type...
    秋秋秋web閱讀 248評論 0 0
  • js簡介 Js是一種基于事件和對象驅(qū)動的解釋性炒辉、松散性的語言豪墅。 一切皆對象 javascript 布蘭登艾奇 ...
    塔庫納瑪哈哈閱讀 1,194評論 0 2
  • js 基礎 var val = (1,2,4)val //4 var obj = {}Object.defineP...
    jobn_joy閱讀 336評論 0 1
  • 在JavaScript中,一切都是對象黔寇。 使用深度優(yōu)先遍歷,element是一個DOM元素偶器,selectors是一...
    garble閱讀 563評論 0 1