摘要:操作符包括算數操作符加號減號等,位操作符,關系操作符和相等操作符。語法此語法會導致性能下降,不建議使用。所有傳遞都是值的傳遞,沒有值的自動賦予值。
1、
可一次定義多變量(,號分隔)
var message = "h1", found = false, age = 20;
3、數據類型:
5種基本數據類型 : undefined,Null,Boolean,Number,String;
1種復雜數據類型 : Object;
使用 typeof 可檢測變量的數據類型
例 : Alert( typeof(message) ) // "String";
typeof 為操作符不是函數,所以可以省略 ()
typepf null // Object;
4、Undefined : 定義但未賦初值。
var message;
alert(message); // undefined
alert(age); // error
5、NUll類型: 一個空對象指針
alert(null == undefiend) // true
6、Boolean類型.
true不一定等于1,false也不一定等于0.
大小寫敏感。
可對任何變量使用轉型函數 Boolean。
轉換規則:
if語句自動轉換:
var message = "hello";
if(message) { //轉為true
alert ( "value id true");
}
7、Number 類型:
* 浮點數值 var float Num3 = .1 // 有效,但不推薦 * e 表示指數冪 3.125 e7 ; // 等于 3125000 : 3.125 * 10的7次冪 最高精度是17位小數,計算精度不如整數。 例 : 0.1 + 0.2 ≠ 0.3 而是 等于 0.3000000……4。 if (a+b == 0.3) { } // 永遠不要用float做測試 * NaN : 即非數值,是一個特殊的數值
任何數除以非數值都返回NaN,因此不影響其他代碼執行。
NaN 的兩個特點 :
任何涉及到NaN的操作都返回NaN,(如 NaN / 10)
NaN與任何值都不相等,包括本身。alet(NaN == NaN) ; //falseisNaN() ; 判斷是否“不是數值”。
數值轉換 : Number(),parseInt(),parseFloat();
對于任何類型可用第一個,后兩個用于字符串;
Number()轉換字符串復雜且不合理,處理整數用parseInt();處理浮點數用parserFloat();
例 : parseInt(“1234blue”); // 12348、String 類型
* 字符字面量
/n : 換行 /t 制表 /r 回車
* 特點
不可變,只能銷毀重建。
* 轉為字符串
tostring() : null 和 undefined 沒有此方法,要用String()方法;
簡便轉換方法 : 值與字符串相加 (“ ”)。
注意 : 0.9 - "0.4" = 0.5 // 隱式類型轉換;
1 + “2” = "12";
9、Object 類型 : 一組數據和功能的組合
Object 類型是所有它的實例的基礎,所具有的任何屬性和方法同樣存在更具體的對象中。每個實例都具有以下屬性和方法 :
* constructor() : 構造函數,保存著用于創造當前對象的函數; * hasOwnProperty( property ) : 檢查給定屬性在當前對象實例中(不是在原型中) 是否存在; * isPropertyOf(object) : 對象是否是當前對象原型; * toLocalString() : 返回對象的字符串表示,與地區對應; * toString() : 返回對象的字符串表示; * valueof() : 返回對象的字符串、數值、布爾值表示,通常與tostring()一樣。
10、操作符 包括算數操作符(加號、減號等),位操作符,關系操作符和相等操作符。
* 一元操作符
++i : i = i + 1; // 先自加再賦值
* 一元加減
該操作符對非數值應用時,會像Number()轉型函數一樣對值進行轉換。
對對象先調用valueof和tostring方法。
可用于基本算數運算,也可以用于轉換數據類型。
* 位操作符
整數的補碼為本身,負數的補碼為取反加一;
按位 非 (NOT) : ~ 表示,反碼;
按位 與 (AND) : & 表示,同為1得1,其他為0;
按位 或 (OR) : | 表示,同為0得0,其他為1;
按位 異或 (XOR) : ^ 表示,同為0,異為1;
左移 : << 以0補位,32位;
有符號右移 : >> 保留符號位 0 : 正 1 : 負;
無符號右移 >>> 負數以絕對值二進制補碼表示;
* 布爾操作符 : 非(NOT) 與(AND) 或(OR)
邏輯非(!) :
可用于任何值,無論類型都返回布爾值,先轉為布爾值,再求反;
邏輯與(&) :
同真為真,其他為假;
短路操作:第一個能決定結果,后邊就不用求值,如第一個為false,結果直接為false;
邏輯或(||) :同假為假,其他為真有一個操作符不是布爾值,結果不一定返回布爾值;
與邏輯與一樣,短路運算;
可用短路邏輯為變量賦值避免賦null和undefined。如 : var result = (A || B) // 當A不為null,賦值A,否則為B;
* 乘性操作符
乘法 : (*)除法 : (/)求模 : (%) // 余數
* 加性操作符
5 + 5 = 10 5 + "5" = "55" "str" + 5 + 5 = "str55" "str" + (5 + 5) = "str10"
* 減性操作符 : 先進行隱式類型轉換(Number()): 注意轉換規則對number類型友好優先
5 - "2" = 3 5 - true = 4 5 - "" = 5 NaN - 1 = NaN
* 關系操作符 : > < >= <=
比較字符串時比較的事字符編碼值,例 : a 為 97 , B 為 66“B” < "a" // true "23" < 3 // true
* 相等操作符 : == != === !==
相等和不相等 ---- 先轉換再比較全等和不全等 ---- 比較但不轉換,比較數據類型
* 條件操作符(三目運算符)
A ? b : c // A為真時值為b,否則為c
* 賦值操作符 : =
= 右邊的值賦給左邊變量賦值復合操作符 : *= /= %= += -= <<= >>= >>>=
* 逗號操作符
一條語句執行多個操作 : var num1 = 1 , num2 = 2,num3= 3;用于賦值時,總是返回表達式最后一個值 : var num = (5,1,4,8,0) //返回011、語句
* if語句 : 先用Boolean轉換
推薦使用代碼塊 : { }
* do - while 語句 : 后測試循環語句,循環內代碼至少執行一次
let i = 0;do {i +=2} while
* while語句 : 前測試循環語句,有可能不會被執行
var i = 0;while(i<10){i += 2;}
* for語句 : var定義的變量會污染全局,之后盡量使用let * var count = 10;
for(var i = 0;i < count;i++){alert(i);}alert(i); //10
* for-in語句 :
一種精準的迭代語句,可用來枚舉對象屬性,例 : for(property in expression) {} 返回的屬性無序,因瀏覽器而異;
* label語句
可在代碼中加標簽,以便將來使用 ;
* break 和 continue :
break直接跳出循環,continue跳到下一次循環;
* with語句 :
將代碼的作用域設置到一個特定對象中。語法 : with(expression){ } : 此語法會導致性能下降,不建議使用。
* switch語句 :
switch(expression){ case value : statement break; default : statement}12、函數function functionName(org1,org2...){statements}
* 調用 : functionName();
可加return設置返回值;執行return后停止并立即退出,位于return后的代碼永遠不會執行。
* 理解參數
不介意傳遞的參數的種類和個數,因內部用數組來表示,函數體內可以用arguments對象來訪問參數數組。命名參數只是提供便利,不是必須的,可在內部判斷參數的長度完成重載。所有傳遞都是值的傳遞,沒有值的自動賦予undefined值。
* 沒有重載
重載:函數名相同,參數的數量和類型不同。es中定義兩個同名函數,后者會覆蓋前者,通過檢查傳入參數的種類和數量可以模仿重載。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102850.html
摘要:自我學習目前有成千上萬的年輕人在學習和開發,希望獲得一份工作。知道的綁定規則。知道和原型屬性是什么以及它們的作用。高階函數了解函數是中的一級對象,這意味著什么知道從另一個函數返回函數是完全合法的。了解閉包和高階函數允許我們使用的情況。 翻譯原文出處:10 JavaScript concepts you need to know for interviews 之前不是鬧得沸沸揚揚的大漠窮...
摘要:是文檔的一種表示結構。這些任務大部分都是基于它。這個實踐的重點是把你在前端練級攻略第部分中學到的一些東西和結合起來。一旦你進入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進行操作。它是在前端系統像今天這樣復雜之前編寫的。 本文是 前端練級攻略 第二部分,第一部分請看下面: 前端練級攻略(第一部分) 在第二部分,我們將重點學習 JavaScript 作為一種獨立的語言,如...
摘要:基礎鞏固基礎總結使用已經好幾年了,由于工作主要是做服務端開發,在工作中逐漸發現的使用范圍原來越廣泛。這里要注意,務必將基礎部分掌握牢靠,磨刀不誤砍柴功,只有將基礎部分掌握并建立起系統的知識體系,在后面學習衍生的其他模式才能游刃有余。 基礎鞏固:JavaScript基礎總結 使用JavaScript已經好幾年了,由于工作主要是做服務端開發,在工作中逐漸發現JavaScript的使用范圍原...
摘要:本文建議有基礎的人看,由于內容過多,所以建議配合高級程序設計服用。一共由三部分組成,分別是最新版本是,簡稱,,。 本文建議有html基礎的人看,由于js內容過多,所以建議配合《javascript高級程序設計》服用。 在開始前我先簡單介紹一下javascript這門語言吧。 javascript誕生于1995年,主要是用來表單的驗證,雖然名字里面有java,但是和java毫無關系,甚至...
閱讀 3024·2021-09-22 15:52
閱讀 2903·2019-08-30 15:55
閱讀 2700·2019-08-30 15:53
閱讀 2454·2019-08-30 13:21
閱讀 1621·2019-08-30 13:10
閱讀 2481·2019-08-26 12:09
閱讀 2564·2019-08-26 10:33
閱讀 1802·2019-08-23 18:06