摘要:語法部分屬性默認的就是,所以不必顯式指定為。不強制在每個語句結尾加,會自動加分號,但是在某些情況下會改變程序的語義,所以最好主動加。實際上,默認有一個全局對象。
語法部分:
1.type 屬性: 默認的 type 就是 javascript, 所以不必顯式指定 type 為 javascript。
2.javascript 不強制在每個語句結尾加 “;” , javascript 會自動加分號, 但是在某些情況下會改變程序的語義, 所以最好主動加 “;”。
3.兩個相等運算符比較
‘==’ 相等( 值相等 ), 它會自動轉換數據類型再比較, 很多時候會得到非常詭異的結果
‘===’ 嚴格相等( 數據類型和值都相等 ) , 它不會自動轉換數據類型, 如果數據類型不一致, 返回false, 如果一致, 再比較
4.NaN 與所有其他值都不相等, 包括它自己:
NaN === NaN; // false
唯一能判斷 NaN 的方法是通過 isNaN() 函數
isNaN(NaN); // true
5.浮點數比較
浮點數在運算過程中會產生誤差, 因為計算機無法精確表示無限循環小數。 要比較兩個浮點數是否相等, 只能計算它們之差的絕對值, 看是否小于某個閾值:Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
6.null 和 undefined
大多數情況下,我們都應該用 null , undefined 僅僅在判斷函數參數是否傳遞的情況下有用
7.出于代碼的可讀性考慮,創建數組建議使用 "[ ]",而不使用 "new Array";
8.如果一個變量沒有通過 "var" 聲明就被使用,那么該變量就自動被聲明為全局變量。使用 var 聲明的變量則不是全局變量,它的范圍就該被限制在該變量被聲明的函數體內
9.啟用 strict 模式(強制通過 var 聲明變量)
10.多行字符串用反引號表示
11.使用模版字符串
12.要獲取字符串某個指定位置的字符,使用類似 Array 的下標操作, 索引號從 0 開始。 字符串是不可變的, 如果對字符串的某個索引賦值, 不會有任何錯誤,但是也沒有任何效果
13.直接給 Array 的 length 賦一個新的值會導致 Array 大小的變化
14.如果通過索引賦值時, 索引超過了范圍, 同樣會引起 Array 大小的變化, 但是不會有任何錯誤, 在編寫代碼時, 不建議直接修改 Array 的大小, 訪問索引時要確保索引不會越界
15.數字 1 和字符串 "1" 是不同的元素
16.slice() 的起止參數包括開始索引, 不包括結束索引。
17.如果不給 slice() 傳遞任何參數, 它就會從頭到尾截取所有元素。 利用這一點, 我們可以很容易地復制一個 Array
18.空數組繼續 pop 不會報錯,而是返回 undefined
19.concat() 方法并沒有修改當前 Array, 而是返回了一個新的 Array,concat() 方法可以接收任意個元素和 Array, 并且自動把 Array 拆開, 然后全部添加到新的 Array 里
20.javascript 對象屬性名必須是一個有效的變量名。 如果屬性名包含特殊字符, 就必須用 "" 括起來
21.如果我們要檢測 xiaoming 是否擁有某一屬性, 可以用in操作符, 不過要小心, 如果 in 判斷一個屬性存在, 這個屬性不一定是xiaoming 的, 它可能是 xiaoming 繼承得到的
22.要判斷一個屬性是否是 xiaoming 自身擁有的,而不是繼承得到的,可以用 hasOwnProperty() 方法
23.JavaScript把 null、undefined、0、NaN 和空字符串 "" 視為 false,其他值一概視為 true
24.由于 Array 也是對象, 而它的每個元素的索引被視為對象的屬性, 因此, for ... in 循環可以直接循環出 Array 的索引
25.for ... in 循環由于歷史遺留問題, 它遍歷的實際上是對象的屬性名稱, for ... of` 循環則完全修復了這些問題, 它只循環集合本身的元素
1.函數如果沒有 return 語句, 函數執行完畢后也會返回結果, 只是結果為 undefined
2.由于 JavaScript 允許傳入任意個參數而不影響調用, 因此傳入的參數比定義的參數多也沒有問題, 雖然函數內部并不需要這些參數, 傳入的參數比定義的少也沒有問題
3.關鍵字 arguments 類似 Array 但它不是一個 Array
4.不在任何函數內定義的變量就具有全局作用域。 實際上, JavaScript 默認有一個全局對象 window。 以變量方式 var foo = function () {} 定義的函數實際上也是一個全局變量。
5.用 var that = this; , 你就可以放心地在方法內部定義其他函數,而不是把所有語句都堆到一個方法中。 對于普通函數調用, 通常把 this 綁定為 null。
6.apply() 與 call()的唯一區別
apply() 把參數打包成 Array 再傳入;
call() 把參數按順序傳入。
7.所有實例的原型引用的是函數的 prototype 屬性
8.箭頭函數內部的 this 是詞法作用域( 寫代碼或者定義時確定的 作用域,動態作用域是在運行時確定 ),由上下文確定。箭頭函數完全修復了 this 的指向,this 總是指向詞法作用域
1.如果我們在使用 Number、Boolean 和 String 時, 沒有寫 new ,Number()、Boolean() 和 String() 被當做普通函數,把任何類型的數據轉換為 number、boolean 和 string 類型(注意不是其包裝類型)
2.不要使用 new Number()、new Boolean()、new String() 創建包裝對象;
3.用 parseInt() 或 parseFloat() 來轉換任意類型到 number;
4.用 String() 來轉換任意類型到 string ,或者直接調用某個對象的 toString() 方法;
5.通常不必把任意類型轉換為 boolean 再判斷,因為可以直接寫 if (myVar) {...} ;
6.typeof 操作符可以判斷出 number 、boolean、string、function 和 undefined ;
7.判斷 Array 要使用 Array.isArray(arr);
8.判斷 null 請使用 myVar === null;
9.判斷某個全局變量是否存在用 typeof window.myVar === "undefined";
10.函數內部判斷某個變量是否存在用 typeof myVar === "undefined"。
11.任何對象都有 toString() 方法嗎? null 和 undefined 就沒有!
12.number 對象調用 toString() 報 SyntaxError
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92468.html
摘要:的碼點被稱為基本字符區域。關于的介紹,我準備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數前不能使用命令,否則會報錯。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完...
摘要:的碼點被稱為基本字符區域。關于的介紹,我準備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數前不能使用命令,否則會報錯。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完...
摘要:的碼點被稱為基本字符區域。關于的介紹,我準備用文檔阮一峰來做一些介紹,具體的可以參考文檔引入的原因的對象屬性名都是字符串,這容易造成屬性名的沖突。其他的一些屬性可以去看文檔阮一峰注意函數前不能使用命令,否則會報錯。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完...
摘要:代碼示例語法和方法類似,不同的是,傳入調用函數的參數變成以數組的形式傳入,即改造上面的示例就是方法用于將函數體內的綁定到某個對象,然后返回一個新函數。類型包裝對象數值字符串布爾值在一定條件下,也會自動轉為對象,也就是原始類型的包裝對象。 現在的前端框架層出不窮,3個月就要重新入門一次前端的現狀,讓我們來不及學好基礎就開始上手框架。常常就因為這樣,我們會很快到達基礎基礎技術瓶頸,基礎是所...
閱讀 1391·2023-04-26 03:04
閱讀 2325·2019-08-30 15:44
閱讀 3727·2019-08-30 14:15
閱讀 3507·2019-08-27 10:56
閱讀 2703·2019-08-26 13:53
閱讀 2616·2019-08-26 13:26
閱讀 3075·2019-08-26 12:11
閱讀 3609·2019-08-23 18:21