摘要:包裝對象所謂包裝對象,就是分別與數值字符串布爾值相對應的三個原生對象。是等于的無輸出上面代碼的第一個例子之所以得到,是因為對應的包裝對象實例是一個對象,進行邏輯運算時,被自動轉化成布爾值因為所有對象對應的布爾值都是。
一、基本語法(es5) 1、語句和表達式的區別
前者主要為了進行某種操作,一般情況下不需要返回值;后者則是為了得到返回值,一定會返回一個值。
let a = 1 + 3;// 這一整行表示一個語句 ,并且一行中可以存在多個語句,一條語句以;結束。 // 而后面的1 + 3 是一個表達式2、使用var等關鍵字定義的變量和不使用關健字定義的變量的區別
let a = 1 b = 2 // a和b的區別 從某種程度上講 都能用 區別在于 delete 不能刪除 a // 因為delete可以刪除 windows.b3、switch 語句中的case是執行 === 判斷而不是 == 所以需要注意類型
switch (x) { case true: console.log("x發生類型轉換"); default: console.log("x沒有發生類型轉換"); } // x沒有發生類型轉換二、運算 1、使用“異或運算”可以在不引入臨時變量的前提下,互換兩個變量的值
var a = 10; var b = 99; a ^= b, b ^= a, a ^= b; a // 99 b // 10
es6中 解構賦值也能快速互換變量的值
let x = 1; let y = 2; [x, y] = [y, x];三、對象 1、Number()和toString()轉換規則
(1)Number()方法觸發的對象轉換
調用對象自身的valueOf方法。如果返回原始類型的值,則直接對該值使用Number函數,不再進行后續步驟。
如果valueOf方法返回的還是對象,則改為調用對象自身的toString方法。如果返回原始類型的值,則對該值使用Number函數,不再進行后續步驟。
如果toString方法返回的是對象,就報錯。
if (typeof obj.valueOf() === "object") { Number(obj.toString()); } else { Number(obj.valueOf()); }
(2)String()方法觸發的對象轉換
與Number方法基本相同,只是互換了valueOf方法和toString方法的執行順序。
先調用對象自身的toString方法。如果返回原始類型的值,則對該值使用String函數,不再進行以下步驟。
如果toString方法返回的是對象,再調用valueOf方法。如果返回原始類型的值,則對該值使用String函數,不再進行以下步驟。
如果valueOf方法返回的是對象,就報錯。
2、console對象少用但是很有效的方法(1)dir:該方法對于輸出DOM對象非常有用,因為會顯示DOM對象的所有屬性
console.dir(document.body)
(2)conut:count方法用于計數,輸出它被調用了多少次。
3、包裝對象所謂“包裝對象”,就是分別與數值、字符串、布爾值相對應的Number、String、Boolean三個原生對象。這三個原生對象可以把原始類型的值變成(包裝成)對象。
var v1 = new Number(123); var v2 = new String("abc"); var v3 = new Boolean(true);
(1)new Boolean(false) 是等于true的
if (new Boolean(false)) { console.log("true"); } // true if (new Boolean(false).valueOf()) { console.log("true"); } // 無輸出
上面代碼的第一個例子之所以得到true,是因為false對應的包裝對象實例是一個對象,進行邏輯運算時,被自動轉化成布爾值true(因為所有對象對應的布爾值都是true)。而實例的valueOf方法,則返回實例對應的原始值,本例為false。
4、XMLHttpRequest對象oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword); /* bstrUrl 請求的URL地址,可以為絕對地址也可以為相對地址。 varAsync[可選] 布爾型,指定此請求是否為異步方式,默認為true。如果為真,當狀態改變時會調用onreadystatechange屬性指定的回調函數。 bstrUser[可選] 如果服務器需要驗證,此處指定用戶名,如果未指定,當服務器需要驗證時,會彈出驗證窗口。 bstrPassword[可選] 驗證信息中的密碼部分,如果用戶名為空,則此值將被忽略。 */四、es6小計 1、let聲明的變量不存在“變量提升”現象。
console.log(x); // undefined let x = 10;六、DOM 1、location
// 優先從服務器重新加載 document.location.reload(true) // 優先從本地緩存重新加載(默認值) document.location.reload(false)2、script defer屬性和async屬性到底應該使用哪一個?
一般來說,如果腳本之間沒有依賴關系,就使用async屬性,如果腳本之間有依賴關系,就使用defer屬性。如果同時使用async和defer屬性,后者不起作用,瀏覽器行為由async屬性決定。
五、CSS&HTML 1、margin折疊. margin 折疊元素只發生在塊元素上; . 浮動元素不與其他元素 margin 折疊 . 定義了屬性overflow且值不為visible(即創建了新的塊級格式化上下文)的塊元素,不與它的子元素發生margin 折疊 . 絕對定位元素的 margin 不與任何 margin 發生折疊 . 特殊:根元素的 margin 不與其它任何 margin 發生折疊 . 如果常規流中的一個塊元素沒有 border-top、padding-top,且其第一個浮動的塊級子元素沒有間隙,則該元素的上外邊距會與其常規流中的第一個塊級子元素的上外邊距折疊 . 如果一個元素的 min-height 屬性為0,且沒有上或下邊框以及上或下內邊距,且 height 為0或者 auto,且不包含行框,且其屬于常規流的所有孩子的外邊距都折疊了,則折疊其外邊距2、link 和@import 的區別是
.link屬于HTML標簽,而`@import`是CSS提供的; .頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載; .import只在IE5以上才能識別,而link是HTML標簽,無兼容問題; .link方式的樣式的權重 高于@import的權重.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/86593.html
摘要:說明這篇文章主要介紹的就是一些瀏覽器的小技巧,很簡單,希望對大家有所幫助。顏色的,或十六進制表示。單擊其中一個方塊將顏色更改為該方塊。在當前顏色的,和表示之間切換。 說明 這篇文章主要介紹的就是一些chrome瀏覽器的小技巧,很簡單,希望對大家有所幫助。 這其中的一些小技巧在低版本中是沒有的,所以建議大家用最新版的,目前最新版是62,版本很重要,如果發現有些技巧不起作用,請先查看瀏...
摘要:說明這篇文章主要介紹的就是一些瀏覽器的小技巧,很簡單,希望對大家有所幫助。顏色的,或十六進制表示。單擊其中一個方塊將顏色更改為該方塊。在當前顏色的,和表示之間切換。 說明 這篇文章主要介紹的就是一些chrome瀏覽器的小技巧,很簡單,希望對大家有所幫助。 這其中的一些小技巧在低版本中是沒有的,所以建議大家用最新版的,目前最新版是62,版本很重要,如果發現有些技巧不起作用,請先查看瀏...
摘要:說明這篇文章主要介紹的就是一些瀏覽器的小技巧,很簡單,希望對大家有所幫助。顏色的,或十六進制表示。單擊其中一個方塊將顏色更改為該方塊。在當前顏色的,和表示之間切換。 說明 這篇文章主要介紹的就是一些chrome瀏覽器的小技巧,很簡單,希望對大家有所幫助。 這其中的一些小技巧在低版本中是沒有的,所以建議大家用最新版的,目前最新版是62,版本很重要,如果發現有些技巧不起作用,請先查看瀏...
摘要:忍者級別的函數操作對于什么是匿名函數,這里就不做過多介紹了。我們需要知道的是,對于而言,匿名函數是一個很重要且具有邏輯性的特性。通常,匿名函數的使用情況是創建一個供以后使用的函數。 JS 中的遞歸 遞歸, 遞歸基礎, 斐波那契數列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執行機制 本文的目的就是要保證你徹底弄懂javascript的執行機制,如果...
閱讀 2310·2023-04-26 00:01
閱讀 805·2021-10-27 14:13
閱讀 1835·2021-09-02 15:11
閱讀 3389·2019-08-29 12:52
閱讀 538·2019-08-26 12:00
閱讀 2572·2019-08-26 10:57
閱讀 3413·2019-08-26 10:32
閱讀 2855·2019-08-23 18:29