摘要:第二章值的數組不需要預設數組大小,可以直接向數組添加任何類型的值,如果形成了稀疏數組,那么未賦值的部分將會是。某些不是數組的對象,如果其有屬性,就是類數組,例如元素列表,,通常用這個將其轉化為數組,而為我們提供了一種新途徑。
從名字上看可能會覺得JS應該和Java是有很緊密的聯系的吧,實際上它們是兩種完全不同的語言,JS是ECMAScript的瀏覽器規范,是一種弱類型的語言,不同于Java這種強類型語言。JS簡單易用,可是它的語言機制又是十分復雜的,我們通常對它是一知半解,深入理解其運行機制和原理,才能得心應手,避免各種令人抓狂問題,例如回調地獄等。
第一章 類型
JS有七大類型,string,number,boolean,object,null,undefine,symbol(es6新增),除了object,其他都是基本類型,可以用typeof運算符查看其對應類型。除了typeof null === “object”//true,以外,其他六種類型都有同名的字符串值一一對應,我們常用的數組和函數,他們的typeof分別是”object”和”function”,他們都有length屬性,數組的length屬性是元素的個數,而函數的length屬性則是參數的個數。最容易混淆的是undefined和undecleare的情況,前者是已經定義了的但沒賦值的變量,而后者則是從沒定義過的變量,雖然在typeof中都返回undefined,但是這個區別還是值得注意。
第二章 值
JS的數組不需要預設數組大小,可以直接向數組添加任何類型的值,如果形成了稀疏數組,那么未賦值的部分將會是undefined。與數組有關的方法有push,pop,shift,unshift,sort,reverse,every,some,filter,forEach,map,concat,slice,splice等。某些不是數組的對象,如果其有length屬性,就是類數組,例如DOM元素列表,arguments,通常用[].slice.call()這個將其轉化為數組,而es6為我們提供了一種新途徑——Array.from()。字符串也是類數組,有length屬性,也有indexof和concat等方法,和數組很相似,在JS中字符串是不可變的,而數組是可變的,不過我們可以借用數組的非變更方法來處理字符串。
JS中只有一種數值類型——number,使用64位二進制的雙精度格式,數字最前面的0和小數點中最后的0是可以省略的,特別大或者特別小的數字用指數形式表示,常用的方法有tofixed(X)——將數字保留X位小數,不足用0補齊,toPresicion(X)——保留X位有效數字。二進制浮點數最大的問題就是0.1和0.2并不是十分精確,因此有0.1+0.2==0.3//false,最常見的判斷小數相等的做法是設置一個誤差范圍值(機器精度),對JS來說是2^-52,最大安全整數是2^53-1,我們可以用a|0來將變量a中的數值轉換為32位有符號整數。數字類型中有幾個特殊的值我們需要注意,NaN——不是一個數字,可以理解為無效值,它和本身不相等,即NaN===NaN//false,無窮數——+Infinity和-Infinity,計算結果溢出時出現。
簡單的基本類型通過值復制來賦值或者傳遞,而復合值(對象等)則會通過引用復制來復制或傳遞,值復制相當于是處理原值的一個副本,而引用復制相當于是將原值的地址傳給了新的引用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93397.html
摘要:本書屬于基礎類書籍,會有比較多的基礎知識,所以這里僅記錄平常不怎么容易注意到的知識點,不會全記,供大家和自己翻閱不錯,下冊的知識點就這么少,非常不推介看下冊上中下三本的讀書筆記你不知道的上讀書筆記你不知道的中讀書筆記你不知道的下讀書筆記第三 本書屬于基礎類書籍,會有比較多的基礎知識,所以這里僅記錄平常不怎么容易注意到的知識點,不會全記,供大家和自己翻閱; 不錯,下冊的知識點就這么少,非...
摘要:關于兩個專業術語的討論起自對你不知道的一書的閱讀學習。遇到,編譯器會詢問作用域是否已經有一個該名稱的變量存在于同一個作用域的集合中。摘錄來自你不知道的。 JS 編譯之 LHS RHS 一、前言 最近和朋友聊技術的時候,聊到 LHS RHS,我竟然沒聽說過 沒聽說過。。。 于是成功引起了我的好奇心。 關于兩個專業術語的討論起自對《你不知道的JavaScript》一書的閱讀學習。 二、編譯...
摘要:但是如果非全局的變量如果被遮蔽了,無論如何都無法被訪問到。但是如果引擎在代碼中找到,就會完全不做任何優化。結構的分句中具有塊級作用域。第四章提升編譯器函數聲明會被提升,而函數表達式不會被提升。 本書屬于基礎類書籍,會有比較多的基礎知識,所以這里僅記錄平常不怎么容易注意到的知識點,不會全記,供大家和自己翻閱; 上中下三本的讀書筆記: 《你不知道的JavaScript》 (上) 讀書筆記...
摘要:如果是聲明中的第一個詞,那么就是一個函數聲明,否則就是一個函數表達式。給函數表達式指定一個函數名可以有效的解決以上問題。始終給函數表達式命名是一個最佳實踐。也有開發者干脆關閉了靜態檢查工具對重復變量名的檢查。 你不知道的JS(上卷)筆記 你不知道的 JavaScript JavaScript 既是一門充滿吸引力、簡單易用的語言,又是一門具有許多復雜微妙技術的語言,即使是經驗豐富的 Ja...
摘要:你不知道的系列第一章類型類型一中的類型中的變量是不存在類型的,只有具體的值才有類型。 你不知道的JavaScript系列---第一章:類型 類型 一、JavaScript中的類型 JavaScript中的變量是不存在類型的,只有具體的值才有類型。 Js不像其他高級語言,如java等,聲明了一個int類型的變量,就必須存放int類型的值,Js中的變量可以存放其允許的所有類型的值,如: ...
下一篇:《你不知道的javascript》筆記_對象&原型 寫在前面 上一篇博客我們知道詞法作用域是由變量書寫的位置決定的,那this又是在哪里確定的呢?如何能夠精準的判斷this的指向?這篇博客會逐條闡述 書中有這樣幾句話: this是在運行時進行綁定的,并不是在編寫時綁定,它的上下文取決于函數調用時的各種條件this的綁定和函數聲明的位置沒有任何關系,只取決于函數的調用方式當一個函數被調用時...
閱讀 3551·2021-11-08 13:15
閱讀 2107·2019-08-30 14:20
閱讀 1386·2019-08-28 18:08
閱讀 977·2019-08-28 17:51
閱讀 1484·2019-08-26 18:26
閱讀 2989·2019-08-26 13:56
閱讀 1484·2019-08-26 11:46
閱讀 2586·2019-08-23 14:22